diff options
author | Aaron Lu <aaron.lu@intel.com> | 2012-11-26 13:55:25 +0800 |
---|---|---|
committer | Jeff Garzik <jgarzik@redhat.com> | 2012-12-03 04:57:15 -0500 |
commit | 0d0cdb028f9d9771e2b346038707734121f906e3 (patch) | |
tree | 0bae4e559e963bdc1b487806848b5df7021a3283 /include/linux/libata.h | |
parent | a52f514c911978dee418f19d1d0103e3bc25fa62 (diff) | |
download | linux-stable-0d0cdb028f9d9771e2b346038707734121f906e3.tar.gz linux-stable-0d0cdb028f9d9771e2b346038707734121f906e3.tar.bz2 linux-stable-0d0cdb028f9d9771e2b346038707734121f906e3.zip |
libata: restore acpi disable functionality
Commit 66fa7f215 "libata-acpi: improve ACPI disabling" introdcued the
behaviour of disabling ATA ACPI if ata_acpi_on_devcfg failed the 2nd
time, but commit 30dcf76ac dropped this behaviour and this caused
problem for Dimitris Damigos, where his laptop can not resume correctly.
The bugzilla page for it is:
https://bugzilla.kernel.org/show_bug.cgi?id=49331
The problem is, ata_dev_push_id will fail the 2nd time it is invoked,
and due to disabling ACPI code is dropped, ata_acpi_on_devcfg which
calls ata_dev_push_id will keep failing and eventually made the device
disabled.
This patch restores the original behaviour, if acpi failed the 2nd time,
disable acpi functionality for the device(and we do not event need to
add a debug message for this as it is still there ;-).
Reported-by: Dimitris Damigos <damigos@freemail.gr>
Signed-off-by: Aaron Lu <aaron.lu@intel.com>
Cc: <stable@vger.kernel.org>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
Diffstat (limited to 'include/linux/libata.h')
-rw-r--r-- | include/linux/libata.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/include/linux/libata.h b/include/linux/libata.h index 77eeeda2b6e2..e931c9ad1078 100644 --- a/include/linux/libata.h +++ b/include/linux/libata.h @@ -163,6 +163,7 @@ enum { ATA_DFLAG_DA = (1 << 26), /* device supports Device Attention */ ATA_DFLAG_DEVSLP = (1 << 27), /* device supports Device Sleep */ + ATA_DFLAG_ACPI_DISABLED = (1 << 28), /* ACPI for the device is disabled */ ATA_DEV_UNKNOWN = 0, /* unknown device */ ATA_DEV_ATA = 1, /* ATA device */ |