diff options
author | Kristen Carlson Accardi <kristen.c.accardi@intel.com> | 2006-11-10 19:14:47 -0500 |
---|---|---|
committer | Jeff Garzik <jeff@garzik.org> | 2007-02-16 13:32:41 -0500 |
commit | 08573a86c8da1379b4f341ab4781bb7c8685d5b6 (patch) | |
tree | 23596bfef66a165d52d452ce57c9109971563278 /drivers/ata/libata-core.c | |
parent | 7ea1fbc2a2449bc034a3d255f36f2e5486d52fe8 (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.c | 21 |
1 files changed, 10 insertions, 11 deletions
diff --git a/drivers/ata/libata-core.c b/drivers/ata/libata-core.c index 90081e5ea80..e900c5edefc 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 | ||