From: Shaohua Li Date: Tue, 25 Mar 2008 08:50:45 +0000 (+0800) Subject: ata-acpi: don't call _GTF for disabled drive X-Git-Tag: v2.6.26-rc1~1150^2 X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=48feb3c419508487becfb9ea3afcc54c3eac6d80;p=linux-2.6 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 Signed-off-by: Jeff Garzik --- diff --git a/drivers/ata/libata-acpi.c b/drivers/ata/libata-acpi.c index f88a4f940e..8c1cfc645c 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) */ ata_link_for_each_dev(dev, &ap->link) { ata_acpi_clear_gtf(dev); - if (ata_dev_get_GTF(dev, NULL) >= 0) + if (ata_dev_enabled(dev) && + ata_dev_get_GTF(dev, NULL) >= 0) dev->flags |= ATA_DFLAG_ACPI_PENDING; } } else { @@ -849,7 +850,8 @@ void ata_acpi_on_resume(struct ata_port *ap) */ ata_link_for_each_dev(dev, &ap->link) { ata_acpi_clear_gtf(dev); - dev->flags |= ATA_DFLAG_ACPI_PENDING; + if (ata_dev_enabled(dev)) + dev->flags |= ATA_DFLAG_ACPI_PENDING; } } }