Commit 08573a86 authored by Kristen Carlson Accardi's avatar Kristen Carlson Accardi Committed by Jeff Garzik

[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: default avatarKristen Carlson Accardi <kristen.c.accardi@intel.com>
Signed-off-by: default avatarJeff Garzik <jeff@garzik.org>
(cherry picked from 89d74215e1e5b79ea084385b5c83d0e33cf2d655 commit)
parent 7ea1fbc2
...@@ -1568,6 +1568,16 @@ int ata_dev_configure(struct ata_device *dev) ...@@ -1568,6 +1568,16 @@ int ata_dev_configure(struct ata_device *dev)
ata_dev_printk(dev, KERN_DEBUG, "%s: ENTER, host %u, dev %u\n", ata_dev_printk(dev, KERN_DEBUG, "%s: ENTER, host %u, dev %u\n",
__FUNCTION__, ap->id, dev->devno); __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 */ /* print device capabilities */
if (ata_msg_probe(ap)) if (ata_msg_probe(ap))
ata_dev_printk(dev, KERN_DEBUG, ata_dev_printk(dev, KERN_DEBUG,
...@@ -1737,14 +1747,6 @@ int ata_dev_configure(struct ata_device *dev) ...@@ -1737,14 +1747,6 @@ int ata_dev_configure(struct ata_device *dev)
if (ap->ops->dev_config) if (ap->ops->dev_config)
ap->ops->dev_config(ap, dev); 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)) if (ata_msg_probe(ap))
ata_dev_printk(dev, KERN_DEBUG, "%s: EXIT, drv_stat = 0x%x\n", ata_dev_printk(dev, KERN_DEBUG, "%s: EXIT, drv_stat = 0x%x\n",
__FUNCTION__, ata_chk_status(ap)); __FUNCTION__, ata_chk_status(ap));
...@@ -1790,9 +1792,6 @@ int ata_bus_probe(struct ata_port *ap) ...@@ -1790,9 +1792,6 @@ int ata_bus_probe(struct ata_port *ap)
/* reset and determine device classes */ /* reset and determine device classes */
ap->ops->phy_reset(ap); 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++) { for (i = 0; i < ATA_MAX_DEVICES; i++) {
dev = &ap->device[i]; dev = &ap->device[i];
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment