diff options
Diffstat (limited to 'drivers/ata/libata-acpi.c')
-rw-r--r-- | drivers/ata/libata-acpi.c | 8 |
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 | } |