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>
 
                /* 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,
 
 #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)
 {