]> git.proxmox.com Git - mirror_ubuntu-artful-kernel.git/blobdiff - drivers/ata/libata-core.c
libata: Implement support for sense data reporting
[mirror_ubuntu-artful-kernel.git] / drivers / ata / libata-core.c
index 55e257c268ddde37677cf4ff85472f65e9a63c97..f991f786227ef92c0a3b42bfa607cc91401bfe64 100644 (file)
@@ -2148,6 +2148,24 @@ static int ata_dev_config_ncq(struct ata_device *dev,
        return 0;
 }
 
+static void ata_dev_config_sense_reporting(struct ata_device *dev)
+{
+       unsigned int err_mask;
+
+       if (!ata_id_has_sense_reporting(dev->id))
+               return;
+
+       if (ata_id_sense_reporting_enabled(dev->id))
+               return;
+
+       err_mask = ata_dev_set_feature(dev, SETFEATURE_SENSE_DATA, 0x1);
+       if (err_mask) {
+               ata_dev_dbg(dev,
+                           "failed to enable Sense Data Reporting, Emask 0x%x\n",
+                           err_mask);
+       }
+}
+
 /**
  *     ata_dev_configure - Configure the specified ATA/ATAPI device
  *     @dev: Target device to configure
@@ -2370,7 +2388,7 @@ int ata_dev_configure(struct ata_device *dev)
                                        dev->devslp_timing[i] = sata_setting[j];
                                }
                }
-
+               ata_dev_config_sense_reporting(dev);
                dev->cdb_len = 16;
        }