aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/ata/libata-core.c
diff options
context:
space:
mode:
authorKristen Carlson Accardi <kristen.c.accardi@intel.com>2006-11-10 19:14:47 -0500
committerJeff Garzik <jeff@garzik.org>2007-02-16 13:32:41 -0500
commit08573a86c8da1379b4f341ab4781bb7c8685d5b6 (patch)
tree23596bfef66a165d52d452ce57c9109971563278 /drivers/ata/libata-core.c
parent7ea1fbc2a2449bc034a3d255f36f2e5486d52fe8 (diff)
[PATCH] libata: change order of _SDD/_GTF execution (resend #3)
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@intel.com> Signed-off-by: Jeff Garzik <jeff@garzik.org> (cherry picked from 89d74215e1e5b79ea084385b5c83d0e33cf2d655 commit)
Diffstat (limited to 'drivers/ata/libata-core.c')
-rw-r--r--drivers/ata/libata-core.c21
1 files changed, 10 insertions, 11 deletions
diff --git a/drivers/ata/libata-core.c b/drivers/ata/libata-core.c
index 90081e5ea80e..e900c5edefc4 100644
--- a/drivers/ata/libata-core.c
+++ b/drivers/ata/libata-core.c
@@ -1568,6 +1568,16 @@ int ata_dev_configure(struct ata_device *dev)
1568 ata_dev_printk(dev, KERN_DEBUG, "%s: ENTER, host %u, dev %u\n", 1568 ata_dev_printk(dev, KERN_DEBUG, "%s: ENTER, host %u, dev %u\n",
1569 __FUNCTION__, ap->id, dev->devno); 1569 __FUNCTION__, ap->id, dev->devno);
1570 1570
1571 /* set _SDD */
1572 rc = ata_acpi_push_id(ap, dev->devno);
1573 if (rc) {
1574 ata_dev_printk(dev, KERN_WARNING, "failed to set _SDD(%d)\n",
1575 rc);
1576 }
1577
1578 /* retrieve and execute the ATA task file of _GTF */
1579 ata_acpi_exec_tfs(ap);
1580
1571 /* print device capabilities */ 1581 /* print device capabilities */
1572 if (ata_msg_probe(ap)) 1582 if (ata_msg_probe(ap))
1573 ata_dev_printk(dev, KERN_DEBUG, 1583 ata_dev_printk(dev, KERN_DEBUG,
@@ -1737,14 +1747,6 @@ int ata_dev_configure(struct ata_device *dev)
1737 if (ap->ops->dev_config) 1747 if (ap->ops->dev_config)
1738 ap->ops->dev_config(ap, dev); 1748 ap->ops->dev_config(ap, dev);
1739 1749
1740 /* set _SDD */
1741 rc = ata_acpi_push_id(ap, dev->devno);
1742 if (rc) {
1743 ata_dev_printk(dev, KERN_WARNING, "failed to set _SDD(%d)\n",
1744 rc);
1745 goto err_out_nosup;
1746 }
1747
1748 if (ata_msg_probe(ap)) 1750 if (ata_msg_probe(ap))
1749 ata_dev_printk(dev, KERN_DEBUG, "%s: EXIT, drv_stat = 0x%x\n", 1751 ata_dev_printk(dev, KERN_DEBUG, "%s: EXIT, drv_stat = 0x%x\n",
1750 __FUNCTION__, ata_chk_status(ap)); 1752 __FUNCTION__, ata_chk_status(ap));
@@ -1790,9 +1792,6 @@ int ata_bus_probe(struct ata_port *ap)
1790 /* reset and determine device classes */ 1792 /* reset and determine device classes */
1791 ap->ops->phy_reset(ap); 1793 ap->ops->phy_reset(ap);
1792 1794
1793 /* retrieve and execute the ATA task file of _GTF */
1794 ata_acpi_exec_tfs(ap);
1795
1796 for (i = 0; i < ATA_MAX_DEVICES; i++) { 1795 for (i = 0; i < ATA_MAX_DEVICES; i++) {
1797 dev = &ap->device[i]; 1796 dev = &ap->device[i];
1798 1797