[patch] libata: change order of _SDD/_GTF execution (resend #3)

From: Kristen Carlson Accardi
Date: Fri Nov 10 2006 - 19:15:35 EST


Make the sdd call come before gtf. _SDD is used to provide
input to the _GTF file, so it should be executed first.

Signed-off-by: Kristen Carlson Accardi <kristen.c.accardi@xxxxxxxxx>

---
drivers/ata/libata-core.c | 21 ++++++++++-----------
1 file changed, 10 insertions(+), 11 deletions(-)

--- 2.6-mm.orig/drivers/ata/libata-core.c
+++ 2.6-mm/drivers/ata/libata-core.c
@@ -1411,6 +1411,16 @@ int ata_dev_configure(struct ata_device
ata_dev_printk(dev, KERN_DEBUG, "%s: ENTER, host %u, dev %u\n",
__FUNCTION__, ap->id, dev->devno);

+ /* set _SDD */
+ rc = ata_acpi_push_id(ap, dev->devno);
+ if (rc) {
+ ata_dev_printk(dev, KERN_WARNING, "failed to set _SDD(%d)\n",
+ rc);
+ }
+
+ /* retrieve and execute the ATA task file of _GTF */
+ ata_acpi_exec_tfs(ap);
+
/* print device capabilities */
if (ata_msg_probe(ap))
ata_dev_printk(dev, KERN_DEBUG,
@@ -1568,14 +1578,6 @@ int ata_dev_configure(struct ata_device
if (ap->ops->dev_config)
ap->ops->dev_config(ap, dev);

- /* set _SDD */
- rc = ata_acpi_push_id(ap, dev->devno);
- if (rc) {
- ata_dev_printk(dev, KERN_WARNING, "failed to set _SDD(%d)\n",
- rc);
- goto err_out_nosup;
- }
-
if (ata_msg_probe(ap))
ata_dev_printk(dev, KERN_DEBUG, "%s: EXIT, drv_stat = 0x%x\n",
__FUNCTION__, ata_chk_status(ap));
@@ -1621,9 +1623,6 @@ int ata_bus_probe(struct ata_port *ap)
/* reset and determine device classes */
ap->ops->phy_reset(ap);

- /* retrieve and execute the ATA task file of _GTF */
- ata_acpi_exec_tfs(ap);
-
for (i = 0; i < ATA_MAX_DEVICES; i++) {
dev = &ap->device[i];

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/