[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)
This commit is contained in:
committed by
Jeff Garzik
parent
7ea1fbc2a2
commit
08573a86c8
@@ -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)
|
|||||||
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)
|
|||||||
/* 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];
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user