aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/ata/libata-acpi.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/ata/libata-acpi.c')
-rw-r--r--drivers/ata/libata-acpi.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/drivers/ata/libata-acpi.c b/drivers/ata/libata-acpi.c
index bf98a566adac..8c1cfc645c85 100644
--- a/drivers/ata/libata-acpi.c
+++ b/drivers/ata/libata-acpi.c
@@ -77,7 +77,7 @@ void ata_acpi_associate_sata_port(struct ata_port *ap)
77{ 77{
78 WARN_ON(!(ap->flags & ATA_FLAG_ACPI_SATA)); 78 WARN_ON(!(ap->flags & ATA_FLAG_ACPI_SATA));
79 79
80 if (!ap->nr_pmp_links) { 80 if (!sata_pmp_attached(ap)) {
81 acpi_integer adr = SATA_ADR(ap->port_no, NO_PORT_MULT); 81 acpi_integer adr = SATA_ADR(ap->port_no, NO_PORT_MULT);
82 82
83 ap->link.device->acpi_handle = 83 ap->link.device->acpi_handle =
@@ -839,7 +839,8 @@ void ata_acpi_on_resume(struct ata_port *ap)
839 */ 839 */
840 ata_link_for_each_dev(dev, &ap->link) { 840 ata_link_for_each_dev(dev, &ap->link) {
841 ata_acpi_clear_gtf(dev); 841 ata_acpi_clear_gtf(dev);
842 if (ata_dev_get_GTF(dev, NULL) >= 0) 842 if (ata_dev_enabled(dev) &&
843 ata_dev_get_GTF(dev, NULL) >= 0)
843 dev->flags |= ATA_DFLAG_ACPI_PENDING; 844 dev->flags |= ATA_DFLAG_ACPI_PENDING;
844 } 845 }
845 } else { 846 } else {
@@ -849,7 +850,8 @@ void ata_acpi_on_resume(struct ata_port *ap)
849 */ 850 */
850 ata_link_for_each_dev(dev, &ap->link) { 851 ata_link_for_each_dev(dev, &ap->link) {
851 ata_acpi_clear_gtf(dev); 852 ata_acpi_clear_gtf(dev);
852 dev->flags |= ATA_DFLAG_ACPI_PENDING; 853 if (ata_dev_enabled(dev))
854 dev->flags |= ATA_DFLAG_ACPI_PENDING;
853 } 855 }
854 } 856 }
855} 857}