• Mika Westerberg's avatar
    ACPI / hotplug / PCI: Relax the checking of _STA return values · 72820594
    Mika Westerberg authored
    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: default avatarPeter Wu <lekensteyn@gmail.com>
    Cc: 3.12+ <stable@vger.kernel.org> # 3.12+
    [rjw: Subject and changelog, minor code modifications]
    Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
    72820594
acpiphp_glue.c 29.7 KB