ACPI fixes for 5.0-rc3

- Restore the ACPI initialization ordering changed implicitly by the
    module-level AML handling rework during the 4.17 development cycle
    that caused the EC address space handler based on information from
    ECDT to be set up before loading AML definition blocks, making it
    effectively not accessible by AML on some systems that don't work
    as expected any more (Rafael Wysocki).
 
  - Add direct dependencies on PCI to Kconfig in multiple places for
    code that depends on both ACPI and PCI, but the PCI dependency
    was implicitly satisfied by the ACPI dependency before, to prevent
    invalid configurations from being created, for example by
    randconfig (Sinan Kaya).
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v2
 
 iQIcBAABCAAGBQJcQa4DAAoJEILEb/54YlRxpIgQAIs35RTfUtGZHm4ripw6fOli
 6NAK9NaBGcJ6OEPUkD+O3dqCtMU+dZapv3qLxqs5q+VTpJUPWKmV1QJTkaeyiuJ/
 BiY0Ftkg/QRDXVV1jlMSSxWadDKsuK/B+QbWFH2JRXJMtS1659XMW1pTPoYGfdt4
 Q8VUF5ITa7uN6uZMEsCFWAztDFlmMff2w+YO3Lr0gUNLrTFmo+aQgJHY3PGgsNWj
 Ev0JF+IhRYXerSGDQOiCh8VHQfa1scockUbHyYuUxiWVbB83OD1pODPAX2St9dTl
 dW/agYDzAGEE9DItLNdX3UBWeWj2qRfzWeiDrBa80C5CbRD6e7GoDW+tM4xVQdkn
 kXns9xCeXNQZOwJO/KM5G6u8zLs+oehRsBdz5vi/+DaCv9yuhGGdHAIU3Tj1qWwr
 IIFrZf2mfpS2WSjSoHP93l7S5l4dSu8hmGyvOfcjevkFA9qVWcieOlNpvoP80bpl
 ctSRYCaLLxXEvLvv9dNUVsYwuLiO8fccSSnCf/SzMdyeAiHc2yPY+pX5jeGn3b0g
 w5SMW/OkMmWPWoanBnx0OEg8K+nlD+0qhF2Yn0+wKHRaSKgj/wU7H5+NmrXU4gxn
 LaPYOCPmij7V7Sexxxty0zfEPLcvig4cMtApMZar3lNtyIr6q6i4FscTk+CrUNL/
 /Kl2vkiHIHJNW6+oDuBP
 =t7iI
 -----END PGP SIGNATURE-----

Merge tag 'acpi-5.0-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm

Pull ACPI fixes from Rafael Wysocki:
 "These fix an ACPI initialization ordering issue introduced in the 4.17
  time frame and causing functional problems to appear on multiple
  systems and fix some fallout of the recent change to enable building
  kernels with ACPI support and without PCI.

  Specifics:

   - Restore the ACPI initialization ordering changed implicitly by the
     module-level AML handling rework during the 4.17 development cycle
     that caused the EC address space handler based on information from
     ECDT to be set up before loading AML definition blocks, making it
     effectively not accessible by AML on some systems that don't work
     as expected any more (Rafael Wysocki).

   - Add direct dependencies on PCI to Kconfig in multiple places for
     code that depends on both ACPI and PCI, but the PCI dependency was
     implicitly satisfied by the ACPI dependency before, to prevent
     invalid configurations from being created, for example by
     randconfig (Sinan Kaya)"

* tag 'acpi-5.0-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
  ACPI: EC: Look for ECDT EC after calling acpi_load_tables()
  drivers: thermal: int340x_thermal: Make PCI dependency explicit
  x86/intel/lpss: Make PCI dependency explicit
  platform/x86: apple-gmux: Make PCI dependency explicit
  platform/x86: intel_pmc: Make PCI dependency explicit
  platform/x86: intel_ips: make PCI dependency explicit
  vga-switcheroo: make PCI dependency explicit
  ata: pata_acpi: Make PCI dependency explicit
  ACPI / LPSS: Make PCI dependency explicit
This commit is contained in:
Linus Torvalds 2019-01-19 05:46:00 +12:00
commit 6e434bf2e3
8 changed files with 25 additions and 19 deletions

View File

@ -617,7 +617,7 @@ config X86_INTEL_QUARK
config X86_INTEL_LPSS
bool "Intel Low Power Subsystem Support"
depends on X86 && ACPI
depends on X86 && ACPI && PCI
select COMMON_CLK
select PINCTRL
select IOSF_MBI

View File

@ -41,7 +41,8 @@ acpi-y += ec.o
acpi-$(CONFIG_ACPI_DOCK) += dock.o
acpi-$(CONFIG_PCI) += pci_root.o pci_link.o pci_irq.o
obj-$(CONFIG_ACPI_MCFG) += pci_mcfg.o
acpi-y += acpi_lpss.o acpi_apd.o
acpi-$(CONFIG_PCI) += acpi_lpss.o
acpi-y += acpi_apd.o
acpi-y += acpi_platform.o
acpi-y += acpi_pnp.o
acpi-$(CONFIG_ARM_AMBA) += acpi_amba.o

View File

@ -1054,18 +1054,6 @@ void __init acpi_early_init(void)
goto error0;
}
/*
* ACPI 2.0 requires the EC driver to be loaded and work before
* the EC device is found in the namespace (i.e. before
* acpi_load_tables() is called).
*
* This is accomplished by looking for the ECDT table, and getting
* the EC parameters out of that.
*
* Ignore the result. Not having an ECDT is not fatal.
*/
status = acpi_ec_ecdt_probe();
#ifdef CONFIG_X86
if (!acpi_ioapic) {
/* compatible (0) means level (3) */
@ -1142,6 +1130,18 @@ static int __init acpi_bus_init(void)
goto error1;
}
/*
* ACPI 2.0 requires the EC driver to be loaded and work before the EC
* device is found in the namespace.
*
* This is accomplished by looking for the ECDT table and getting the EC
* parameters out of that.
*
* Do that before calling acpi_initialize_objects() which may trigger EC
* address space accesses.
*/
acpi_ec_ecdt_probe();
status = acpi_enable_subsystem(ACPI_NO_ACPI_ENABLE);
if (ACPI_FAILURE(status)) {
printk(KERN_ERR PREFIX

View File

@ -81,7 +81,11 @@ void acpi_debugfs_init(void);
#else
static inline void acpi_debugfs_init(void) { return; }
#endif
#ifdef CONFIG_PCI
void acpi_lpss_init(void);
#else
static inline void acpi_lpss_init(void) {}
#endif
void acpi_apd_init(void);

View File

@ -1091,7 +1091,7 @@ comment "Generic fallback / legacy drivers"
config PATA_ACPI
tristate "ACPI firmware driver for PATA"
depends on ATA_ACPI && ATA_BMDMA
depends on ATA_ACPI && ATA_BMDMA && PCI
help
This option enables an ACPI method driver which drives
motherboard PATA controller interfaces through the ACPI

View File

@ -21,6 +21,7 @@ config VGA_SWITCHEROO
bool "Laptop Hybrid Graphics - GPU switching support"
depends on X86
depends on ACPI
depends on PCI
select VGA_ARB
help
Many laptops released in 2008/9/10 have two GPUs with a multiplexer

View File

@ -1009,7 +1009,7 @@ config INTEL_MFLD_THERMAL
config INTEL_IPS
tristate "Intel Intelligent Power Sharing"
depends on ACPI
depends on ACPI && PCI
---help---
Intel Calpella platforms support dynamic power sharing between the
CPU and GPU, maximizing performance in a given TDP. This driver,
@ -1135,7 +1135,7 @@ config SAMSUNG_Q10
config APPLE_GMUX
tristate "Apple Gmux Driver"
depends on ACPI
depends on ACPI && PCI
depends on PNP
depends on BACKLIGHT_CLASS_DEVICE
depends on BACKLIGHT_APPLE=n || BACKLIGHT_APPLE
@ -1174,7 +1174,7 @@ config INTEL_SMARTCONNECT
config INTEL_PMC_IPC
tristate "Intel PMC IPC Driver"
depends on ACPI
depends on ACPI && PCI
---help---
This driver provides support for PMC control on some Intel platforms.
The PMC is an ARC processor which defines IPC commands for communication

View File

@ -4,7 +4,7 @@
config INT340X_THERMAL
tristate "ACPI INT340X thermal drivers"
depends on X86 && ACPI
depends on X86 && ACPI && PCI
select THERMAL_GOV_USER_SPACE
select ACPI_THERMAL_REL
select ACPI_FAN