libata-acpi: allow _GTF on SATA, but disable on PATA for now
authorKristen Accardi <kristen.c.accardi@intel.com>
Fri, 9 Mar 2007 23:15:33 +0000 (18:15 -0500)
committerLen Brown <len.brown@intel.com>
Fri, 9 Mar 2007 23:15:33 +0000 (18:15 -0500)
The ACPI specification states, and BIOS implementations depend on,
_STM being called before _GTF.

SATA does this, but PATA does not.  So for now, simply
prevent execution of _GTF on PATA devices.  Longer term we
should implement ACPI support for PATA devices in libata.

Signed-off-by: Kristen Accardi <kristen.c.accardi@intel.com>
Signed-off-by: Len Brown <len.brown@intel.com>
drivers/ata/libata-acpi.c

index d14a48e75f1b50414c3cbfba2afff82ce8c853d2..89aaf749cd102c0ff5c10a265000fab2de5ac842 100644 (file)
@@ -561,6 +561,13 @@ int ata_acpi_exec_tfs(struct ata_port *ap)
 
        if (noacpi)
                return 0;
+       /*
+        * TBD - implement PATA support.  For now,
+        * we should not run GTF on PATA devices since some
+        * PATA require execution of GTM/STM before GTF.
+        */
+       if (!(ap->cbl == ATA_CBL_SATA))
+               return 0;
 
        for (ix = 0; ix < ATA_MAX_DEVICES; ix++) {
                if (!ata_dev_enabled(&ap->device[ix]))