linux/drivers/pci/hotplug
Mika Westerberg 7282059489 ACPI / hotplug / PCI: Relax the checking of _STA return values
The ACPI specification (ACPI 5.0A, Section 6.3.7) says:

 _STA may return bit 0 clear (not present) with bit 3 set (device is
 functional). This case is used to indicate a valid device for which
 no device driver should be loaded (for example, a bridge device.)
 Children of this device may be present and valid. OSPM should
 continue enumeration below a device whose _STA returns this bit
 combination.

Evidently, some BIOSes follow that and return 0x0A from _STA, which
causes problems to happen when they trigger bus check or device check
notifications for those devices too.  Namely, ACPIPHP thinks that they
are gone and may drop them, for example, if such a notification is
triggered during a resume from system suspend.

To fix that, modify ACPICA to regard devies as present and
functioning if _STA returns both the ACPI_STA_DEVICE_ENABLED
and ACPI_STA_DEVICE_FUNCTIONING bits set for them.

Reported-and-tested-by: Peter Wu <lekensteyn@gmail.com>
Cc: 3.12+ <stable@vger.kernel.org> # 3.12+
[rjw: Subject and changelog, minor code modifications]
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
2014-02-12 12:45:57 +01:00
..
Kconfig PCI: Fix whitespace, capitalization, and spelling errors 2013-11-14 11:28:18 -07:00
Makefile PCI: Fix whitespace, capitalization, and spelling errors 2013-11-14 11:28:18 -07:00
acpi_pcihp.c ACPI: Eliminate the DEVICE_ACPI_HANDLE() macro 2013-11-14 23:17:21 +01:00
acpiphp.h ACPI / hotplug / PCI: Use global PCI rescan-remove locking 2014-01-14 12:14:25 -07:00
acpiphp_core.c ACPI / hotplug / PCI: Use global PCI rescan-remove locking 2014-01-14 12:14:25 -07:00
acpiphp_glue.c ACPI / hotplug / PCI: Relax the checking of _STA return values 2014-02-12 12:45:57 +01:00
acpiphp_ibm.c ACPI: Clean up inclusions of ACPI header files 2013-12-07 01:03:14 +01:00
cpci_hotplug.h PCI: Remove "extern" from function declarations 2013-04-17 10:21:17 -06:00
cpci_hotplug_core.c PCI: Fix whitespace, capitalization, and spelling errors 2013-11-14 11:28:18 -07:00
cpci_hotplug_pci.c PCI: hotplug: Use global PCI rescan-remove locking 2014-01-14 12:14:25 -07:00
cpcihp_generic.c PCI: Fix whitespace, capitalization, and spelling errors 2013-11-14 11:28:18 -07:00
cpcihp_zt5550.c PCI: Fix whitespace, capitalization, and spelling errors 2013-11-14 11:28:18 -07:00
cpcihp_zt5550.h PCI: Fix whitespace, capitalization, and spelling errors 2013-11-14 11:28:18 -07:00
cpqphp.h PCI: Remove "extern" from function declarations 2013-04-17 10:21:17 -06:00
cpqphp_core.c PCI: Fix whitespace, capitalization, and spelling errors 2013-11-14 11:28:18 -07:00
cpqphp_ctrl.c PCI: Fix whitespace, capitalization, and spelling errors 2013-11-14 11:28:18 -07:00
cpqphp_nvram.c PCI Hotplug: cpqphp: fix comment style 2009-06-11 12:04:08 -07:00
cpqphp_nvram.h PCI: Remove "extern" from function declarations 2013-04-17 10:21:17 -06:00
cpqphp_pci.c PCI: hotplug: Use global PCI rescan-remove locking 2014-01-14 12:14:25 -07:00
cpqphp_sysfs.c cpqphp_sysfs: switch to fixed_size_llseek() 2013-06-29 12:57:52 +04:00
ibmphp.h PCI: Fix whitespace, capitalization, and spelling errors 2013-11-14 11:28:18 -07:00
ibmphp_core.c PCI: hotplug: Use global PCI rescan-remove locking 2014-01-14 12:14:25 -07:00
ibmphp_ebda.c PCI: Fix whitespace, capitalization, and spelling errors 2013-11-14 11:28:18 -07:00
ibmphp_hpc.c PCI: Fix whitespace, capitalization, and spelling errors 2013-11-14 11:28:18 -07:00
ibmphp_pci.c PCI: Fix whitespace, capitalization, and spelling errors 2013-11-14 11:28:18 -07:00
ibmphp_res.c PCI: Fix whitespace, capitalization, and spelling errors 2013-11-14 11:28:18 -07:00
pci_hotplug_core.c PCI: Fix whitespace, capitalization, and spelling errors 2013-11-14 11:28:18 -07:00
pciehp.h ACPI and power management updates for 3.14-rc1 2014-01-24 15:51:02 -08:00
pciehp_acpi.c PCI updates for v3.13: 2013-11-22 10:53:47 -08:00
pciehp_core.c Merge branch 'pci/dead-code' into next 2014-01-13 16:47:08 -07:00
pciehp_ctrl.c PCI: pciehp: Move Attention & Power Indicator support tests to accessors 2013-12-15 18:00:00 -07:00
pciehp_hpc.c PCI: pciehp: Move Attention & Power Indicator support tests to accessors 2013-12-15 18:00:00 -07:00
pciehp_pci.c PCI: hotplug: Use global PCI rescan-remove locking 2014-01-14 12:14:25 -07:00
pcihp_skeleton.c PCI: Fix whitespace, capitalization, and spelling errors 2013-11-14 11:28:18 -07:00
pcihp_slot.c PCI: Simplify pcie_bus_configure_settings() interface 2013-08-22 10:47:02 -06:00
rpadlpar.h PCI: Remove "extern" from function declarations 2013-04-17 10:21:17 -06:00
rpadlpar_core.c PCI: hotplug: Use global PCI rescan-remove locking 2014-01-14 12:14:25 -07:00
rpadlpar_sysfs.c PCI: introduce pci_slot 2008-06-10 14:37:03 -07:00
rpaphp.h PCI: Fix whitespace, capitalization, and spelling errors 2013-11-14 11:28:18 -07:00
rpaphp_core.c PCI: hotplug: Use global PCI rescan-remove locking 2014-01-14 12:14:25 -07:00
rpaphp_pci.c PCI: Fix whitespace, capitalization, and spelling errors 2013-11-14 11:28:18 -07:00
rpaphp_slot.c PCI: Fix whitespace, capitalization, and spelling errors 2013-11-14 11:28:18 -07:00
s390_pci_hpc.c PCI: hotplug: Use global PCI rescan-remove locking 2014-01-14 12:14:25 -07:00
sgi_hotplug.c PCI: hotplug: Use global PCI rescan-remove locking 2014-01-14 12:14:25 -07:00
shpchp.h PCI: Fix whitespace, capitalization, and spelling errors 2013-11-14 11:28:18 -07:00
shpchp_core.c PCI: Fix whitespace, capitalization, and spelling errors 2013-11-14 11:28:18 -07:00
shpchp_ctrl.c PCI: shpchp: Use per-slot workqueues to avoid deadlock 2013-01-14 10:23:22 -07:00
shpchp_hpc.c PCI: Fix whitespace, capitalization, and spelling errors 2013-11-14 11:28:18 -07:00
shpchp_pci.c PCI: hotplug: Use global PCI rescan-remove locking 2014-01-14 12:14:25 -07:00
shpchp_sysfs.c PCI: Remove __must_check from definitions 2013-04-17 10:20:58 -06:00