[PATCH 5.16 regression fix 0/5] ACPI: scan: Skip turning off some unused objects during scan

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Rafael,

Commit c10383e8ddf4 ("ACPI: scan: Release PM resources blocked by
unused objects") adds a:

	bus_for_each_dev(&acpi_bus_type, NULL, NULL, acpi_dev_turn_off_if_unused);

call to acpi_scan_init(). On some devices with buggy DSDTs calling
_PS3 for one device may result in it turning off another device.

Specifically the DSDT of the GPD win and GPD pocket devices has a
"\\_SB_.PCI0.SDHB.BRC1" device for a non existing SDIO wifi module
which _PS3 method sets a GPIO causing the PCI wifi card to turn off.

I've an earlier, in some ways simpler, fix for this here:
https://fedorapeople.org/~jwrdegoede/0001-ACPI-scan-Skip-turning-off-some-unused-objects-durin.patch

But the sdhci-acpi.c MMC host code already has an older workaround
for it to not toggle power on this broken ACPI object; and this
simpler fix would require keeping that workaround. So then we would
have 2 workarounds for the same issue in the kernel.

Thus instead I've come up with a slightly different approach which
IMHO has ended up pretty well.

Patches 1-3 of this series are this different approach and assuming
they are considered ok must be merged into 5.16 to fix the regression
caused by commit c10383e8ddf4 on these devices.

Patch 4 removes the now no longer necessary workaround for the same
issue from the sdhci-acpi.c code. Once 1-3 are merged this could
also go to 5.16 but 5.17 is fine too.

Patch 5 is a small bonus cleanup to the sdhci-acpi.c code.

Regards,

Hans


Hans de Goede (5):
  ACPI: Change acpi_device_always_present() into
    acpi_device_override_status()
  ACPI: x86: Allow specifying acpi_device_override_status() quirks by
    path
  ACPI: x86: Add not-present quirk for the PCI0.SDHB.BRC1 device on the
    GPD win
  mmc: sdhci-acpi: Remove special handling for GPD win/pocket devices
  mmc: sdhci-acpi: Use the new soc_intel_is_byt() helper

 drivers/acpi/bus.c            |   4 +-
 drivers/acpi/x86/utils.c      | 114 ++++++++++++++++++++++++----------
 drivers/mmc/host/sdhci-acpi.c |  78 ++---------------------
 include/acpi/acpi_bus.h       |   5 +-
 4 files changed, 91 insertions(+), 110 deletions(-)

-- 
2.31.1




[Index of Archives]     [Linux Memonry Technology]     [Linux USB Devel]     [Linux Media]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux