Revert "libata: check SATA_SETTINGS log with HW Feature Ctrl"
authorJeff Garzik <jeff@garzik.org>
Fri, 14 Dec 2012 14:34:01 +0000 (09:34 -0500)
committerJeff Garzik <jgarzik@redhat.com>
Fri, 14 Dec 2012 14:34:01 +0000 (09:34 -0500)
This reverts commit de90cd71f68e947d3bd6c3f2ef5731ead010a768.

Shane Huang writes:

  Please suspend this patch because I just received two new
  DevSlp drives but found word 78 bit 5 is _not_ set.

  I'm checking with the drive vendor whether he gave me
  the wrong information. If bit 5 is not the necessary and
  sufficient condition, I will implement another patch to
  replace ata_device->sata_settings into ->devslp_timing.

Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
drivers/ata/libata-core.c
include/linux/ata.h

index 47d59616fe3da7d38ecdb329c76c2ff71651c9e7..9e8b99af400dc53539ba4e8d45d36696e4818b65 100644 (file)
@@ -2331,8 +2331,9 @@ int ata_dev_configure(struct ata_device *dev)
 
                /* Obtain SATA Settings page from Identify Device Data Log,
                 * which contains DevSlp timing variables etc.
+                * Exclude old devices with ata_id_has_ncq()
                 */
-               if (ata_id_has_hw_feature_ctrl(dev->id)) {
+               if (ata_id_has_ncq(dev->id)) {
                        err_mask = ata_read_log_page(dev,
                                                     ATA_LOG_SATA_ID_DEV_DATA,
                                                     ATA_LOG_SATA_SETTINGS,
index 18cbb93fdbcaff0e33c88595c5ab68a834c72649..408da9502177bd18a3ba88e2831701e916e800aa 100644 (file)
@@ -593,7 +593,6 @@ static inline int ata_is_data(u8 prot)
 #define ata_id_cdb_intr(id)    (((id)[ATA_ID_CONFIG] & 0x60) == 0x20)
 #define ata_id_has_da(id)      ((id)[ATA_ID_SATA_CAPABILITY_2] & (1 << 4))
 #define ata_id_has_devslp(id)  ((id)[ATA_ID_FEATURE_SUPP] & (1 << 8))
-#define ata_id_has_hw_feature_ctrl(id) ((id)[ATA_ID_FEATURE_SUPP] & (1 << 5))
 
 static inline bool ata_id_has_hipm(const u16 *id)
 {