diff options
author | Shaohua Li <shaohua.li@intel.com> | 2008-03-25 04:50:45 -0400 |
---|---|---|
committer | Jeff Garzik <jgarzik@redhat.com> | 2008-04-17 15:56:29 -0400 |
commit | 48feb3c419508487becfb9ea3afcc54c3eac6d80 (patch) | |
tree | a2fb97368937e20a4f4a837d67543ea816186c7b /drivers/ata | |
parent | 094e50b2f74146d8ee924fea4808e58c4ed2f163 (diff) |
ata-acpi: don't call _GTF for disabled drive
I got below log after a S3 resume in a ASUS A6VC laptop. The system has
only one IDE drive. It appears there is no reason calling _GTF for
disabled drive.
ACPI Error (dsopcode-0483): Attempt to CreateField of length zero [20070126]
ACPI Error (psparse-0537): Method parse/execution failed [\_SB_.PCI0.IDE0.RATA] (Node df822a7c), AE_AML_OPERAND_VALUE
ACPI Error (psparse-0537): Method parse/execution failed [\_SB_.PCI0.IDE0.CHN1.DRV0._GTF] (Node df822bd0), AE_AML_OPERAND_VALUE
ata2.00: _GTF evaluation failed (AE 0x3006)
ACPI Error (dsopcode-0483): Attempt to CreateField of length zero [20070126]
ACPI Error (psparse-0537): Method parse/execution failed [\_SB_.PCI0.IDE0.RATA] (Node df822a7c), AE_AML_OPERAND_VALUE
ACPI Error (psparse-0537): Method parse/execution failed [\_SB_.PCI0.IDE0.CHN1.DRV1._GTF] (Node df822b94), AE_AML_OPERAND_VALUE
ata2.01: _GTF evaluation failed (AE 0x3006)
Signed-off-by: Shaohua Li <shaohua.li@intel.com>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
Diffstat (limited to 'drivers/ata')
-rw-r--r-- | drivers/ata/libata-acpi.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/ata/libata-acpi.c b/drivers/ata/libata-acpi.c index f88a4f940e11..8c1cfc645c85 100644 --- a/drivers/ata/libata-acpi.c +++ b/drivers/ata/libata-acpi.c | |||
@@ -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 | } |