[GIT PULL] ACPI material for v4.9-rc1

From: Rafael J. Wysocki
Date: Sun Oct 02 2016 - 18:57:57 EST


Hi Linus,

This goes early as I will be traveling for a good part of the next week.

Please pull from the tag

git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git \
acpi-4.9-rc1

with top-most commit 8c4b172123c08a7138ee01675c130c83f9c1117c

Merge branches 'acpi-button', 'acpi-battery' and 'acpi-doc'

on top of commit 08895a8b6b06ed2323cd97a36ee40a116b3db8ed

Linux 4.8-rc8

to receive ACPI updates for v4.9-rc1.

First off, the ACPICA code in the kernel is updated to upstream revision
20160831 that brings in a few bug fixes and cleanups. In particular, it is
possible to mask GPEs now (and the sysfs interface for GPE control is fixed
on top of that), problems related to the table loading mechanism are fixed
and all code related to FADT version 2 (which has never been part of the ACPI
specification) is dropped.

On the new features front, there is a new watchdog driver based on the ACPI
WDAT (ACPI Watchdog Action Table), needed on some platforms to replace the
iTCO watchdog that doesn't work there, and some UART devices get new definitions
of built-in properties (to be accessed via the generic device properties API).

Also, included is a fix for an ACPI-related PCI resorces allocation issue and a
few problems in the EC driver and in the button and battery drivers are fixed.

In addition to that, the ACPI CPPC library is updated to make batching of
requests sent over the PCC channel possible (which reduces the PCC usage
overhead substantially in some cases) and to support functional fixed hardware
(FFH) type of CPPC registers access (which will allow CPPC to be used on x86
too in the future).

As usual, there are some assorted fixes and cleanups too.

Specifics:

- Update of the ACPICA code in the kernel to upstream revision 20160831 with
the following major changes:
* New mechanism for GPE masking.
* Fixes for issues related to the LoadTable operator and table loading.
* Fixes for issues related to so-called module-level code (MLC), that is
AML that doesn't belong to any methods.
* Change of the return value of the _OSI method to reflect the Windows
behavior.
* GAS (Generic Address Structure) support fix related to 32-bit FADT
addresses.
* Elimination of unnecessary FADT version 2 support.
* ACPI tools fixes and cleanups.
From Bob Moore, Lv Zheng, and Jung-uk Kim.

- ACPI sysfs interface updates to fix GPE handling (on top of the new GPE
masking mechanism in ACPICA) and issues related to table loading (Lv Zheng).

- New watchdog driver based on the ACPI WDAT (ACPI Watchdog Action Table),
needed on some platforms to replace the iTCO watchdog that doesn't work there
and related updates of the intel_pmc_ipc, i2c/i801 and MFD/lcp_ich drivers
(Mika Westerberg).

- Driver core fix to prevent it from leaking secondary fwnode objects during
device removal (Lukas Wunner).

- New definitions of built-in properties for UART in ACPI-based x86 SoC drivers
and a 8250_dw driver quirk for the APM X-Gene SoC (Heikki Krogerus).

- New device ID for the Vulcan SPI controller and constification of local
strucures in the AMD SoC (APD) ACPI driver (Kamlakant Patel, Julia Lawall).

- Fix for a bug causing the allocation of PCI resorces to fail if
ACPI-enumerated child platform devices are registered below the PCI
devices in question (Mika Westerberg).

- Change of the default polarity for PCI legacy IRQs to high on systems
booting wth ACPI on platforms with a GIC interrupt controller model
fixing the discrepancy between the specification and HW behavior (Lorenzo
Pieralisi).

- Fixes for the handling of system suspend/resume in the ACPI EC driver and
update of that driver to make it cope with the cases when the EC device
defined in the ECDT has to be used throughout the entire system life cycle
(Lv Zheng).

- Update of the ACPI CPPC library to allow it to batch requests sent over the
PCC channel (to reduce overhead), to support the fixed functional hardware
(FFH) CPPC registers access type, to notify the mailbox framework about TX
completions when the interrupt flag is set for the PCC mailbox, and to
support HW-Reduced Communication Subspace type 2 (Ashwin Chaugule, Prashanth
Prakash, Srinivas Pandruvada, Hoan Tran).

- ACPI button driver fix and documentation update related to the handling of
laptop lids (Lv Zheng).

- ACPI battery driver initialization fix (Carlos Garnacho).

- ACPI GPIO enumeration documentation update (Mika Westerberg).

- Assorted updates of the core ACPI bus type code (Lukas Wunner, Lv Zheng).

- Assorted cleanups of the ACPI table parsing code and the x86-specific ACPI
code (Al Stone).

- Fixes for assorted ACPI-related issues found in linux-next (Wei Yongjun).

Thanks!

---------------

Al Stone (5):
ACPI / tables: fix incorrect counts returned by acpi_parse_entries_array()
ACPI / tables: fix acpi_parse_entries_array() so it traverses
all subtables
ACPI / tables: do not report the number of entries ignored by
acpi_parse_entries()
x86: ACPI: remove extraneous white space after semicolon
x86: ACPI: make variable names clearer in acpi_parse_madt_lapic_entries()

Ashwin Chaugule (2):
ACPI / CPPC: restructure read/writes for efficient sys mapped reg ops
ACPI / CPPC: add sysfs support to compute delivered performance

Bob Moore (13):
ACPICA: Interpreter: Remove temporary code for External() opcode
ACPICA: Debugger: Extend some max line lengths
ACPICA: Disassembler: Add option to emit embedded External
operators/opcodes
ACPICA: Simplify configuration for "Max Loops" system parameter
ACPICA: iASL/Disassembler: Add a check for missing filename
ACPICA: Use os_allocate_zeroed
ACPICA: FADT support cleanup
ACPICA: Update version to 20160729
ACPICA: Debugger: Add subcommand for predefined name execution
ACPICA: Cleanup for all string-to-integer conversions
ACPICA: Add a couple of casts to uthex.c
ACPICA: Update return value for intenal _OSI method
ACPICA: Update version to 20160831

Carlos Garnacho (1):
ACPI / battery: Add sysfs representation after checking _BST

Heikki Krogerus (3):
ACPI / APD: Provide build-in properties of the UART
ACPI / LPSS: Provide build-in properties of the UART
serial: 8250_dw: Add quirk for APM X-Gene SoC

Hoan Tran (1):
ACPI / CPPC: Support PCC with interrupt flag
mailbox: pcc: Support HW-Reduced Communication Subspace type 2

Julia Lawall (1):
ACPI / APD: constify local structures

Jung-uk Kim (2):
ACPICA: Fix deconstification warnings (-Wcast-qual) with function traces.
ACPICA: Fix deconstification warnings (-Wcast-qual) with
acpi_ns_root_initialize().

Kamlakant Patel (1):
ACPI / APD: Add device HID for Vulcan SPI controller

Lorenzo Pieralisi (1):
ACPI / PCI: fix GIC irq model default PCI IRQ polarity

Lukas Wunner (2):
ACPI / bus: Make acpi_get_first_physical_node() public
driver core: Don't leak secondary fwnode on device removal

Lv Zheng (46):
ACPICA: Utilities: Introduce facility to allow Linux to set
correct logging levels
ACPICA: Divergence: Port declarators back to ACPICA
ACPICA: Events: Introduce acpi_mask_gpe() to implement GPE
masking mechanism
ACPICA: Debugger: Fix wrong inclusions in dbfileio.c
ACPICA: OSL: Add correct acpi_gbl_debug_timeout export to allow
acpiexec to link
ACPICA: acpidump: Fix a duplicate variable definition
ACPICA: Applications: Enable USE_NATIVE_ALLOCATE_ZEROED
environment for all applications
ACPICA: Clib: Fix build issues when ACPI_USE_STANDARD_HEADERS is
not defined by converting size_t to acpi_size
ACPICA: Clib: Cleanup va_arg related code
ACPICA: Clib: Fix wrong mini C library usage
ACPICA: Clib/EFI: Fix wrong order of standard integer types/IO handles
ACPICA: MSVC9: Fix <sys/stat.h> inclusion order issue
ACPICA: Clib: Add -nostdinc support for EFI layer
ACPICA: Clib: Eliminate acpi_os_XXXFile()/acpi_log_error and
link clibrary fxxx()/errno/perror() instead
ACPICA: Applications: Fix a potential issue that help messages
may be dumped to acpi_gbl_debug_file
ACPICA: EFI: Port acpidump to EDK2 environment
ACPICA: OSL: Cleanup the inclusion order of the compiler-specific headers
ACPICA: OSL: Fix a regression that old GCC requires a workaround
for strchr()
ACPI / sysfs: Use new GPE masking mechanism in GPE interface
ACPI / EC: Add PM operations for suspend/resume noirq stage
ACPI / EC: Add EC_FLAGS_QUERY_ENABLED to reveal a hidden logic
ACPI / EC: Fix an issue that SCI_EVT cannot be detected after
event is enabled
ACPI / EC: Add PM operations to improve event handling for resume process
ACPI / EC: Add PM operations to improve event handling for suspend process
ACPI / EC: Enable event freeze mode to improve event handling
for suspend process
ACPI / button: Fix an issue in button.lid_init_state=ignore mode
ACPI / button: Add document for ACPI control method lid device
restrictions
ACPI / EC: Cleanup first_ec/boot_ec code
ACPI / EC: Fix a memory leakage issue in acpi_ec_add()
ACPI / EC: Fix a gap that ECDT EC cannot handle EC events
ACPI / EC: Fix issues related to boot_ec
ACPICA: Tables: Remove acpi_tb_install_fixed_table()
ACPICA: Tables: Remove wrong table event macros
ACPICA: Tables: Add new table events indicating table
installation/uninstallation
ACPICA: Tables: Override all 64-bit GAS fields when
acpi_gbl_use32_bit_fadt_addresses is TRUE
ACPICA: Interpreter: Fix MLC issues by switching to new
term_list grammar for table loading
ACPICA: Namespace: Add acpi_ns_get_node_unlocked()
ACPICA: Namespace: Fix dynamic table loading issues
ACPICA: Dispatcher: Fix a mutex issue for method auto serialization
ACPICA: Tables: Tune table mutex to be a leaf lock
ACPICA: Tables: Fix a regression in acpi_tb_find_table()
ACPI / sysfs: Fix an issue for LoadTable opcode
ACPI / sysfs: Update sysfs signature handling code
ACPICA: Tables: Fix "UNLOAD" code path lock issues
ACPICA: Parser: Fix a regression in LoadTable support
ACPI / bus: Adjust ACPI subsystem initialization for new table
loading mode

Mika Westerberg (7):
PCI: Add pci_find_resource()
ACPI / platform: Pay attention to parent device's resources
ACPI / watchdog: Add support for WDAT hardware watchdog
mfd: lpc_ich: Do not create iTCO watchdog when WDAT table exists
i2c: i801: Do not create iTCO watchdog when WDAT table exists
platform/x86: intel_pmc_ipc: Do not create iTCO watchdog when
WDAT table exists
ACPI / documentation: Use recommended name in GPIO property names

Prakash, Prashanth (5):
ACPI / CPPC: acquire pcc_lock only while accessing PCC subspace
ACPI / CPPC: support for batching CPPC requests
ACPI / CPPC: set a non-zero value for transition_latency
ACPI / CPPC: move all PCC related information into pcc_data
ACPI / CPPC: check for error bit in PCC status field

Srinivas Pandruvada (4):
ACPI / CPPC: Allow build with ACPI_CPU_FREQ_PSS config
ACPI / CPPC: Don't return on CPPC probe failure
ACPI / CPPC: Add support for functional fixed hardware address
ACPI / CPPC: Add prefix cppc to cpudata structure name

Wei Yongjun (3):
ACPI / tables: Remove duplicated include from tables.c
watchdog: wdat_wdt: fix return value check in wdat_wdt_probe()
watchdog: wdat_wdt: Fix warning for using 0 as NULL

---------------

Documentation/acpi/acpi-lid.txt | 96 +++
Documentation/acpi/gpio-properties.txt | 10 +-
arch/x86/kernel/acpi/Makefile | 1 +
arch/x86/kernel/acpi/boot.c | 6 +-
arch/x86/kernel/acpi/cppc_msr.c | 58 ++
drivers/acpi/Kconfig | 4 +-
drivers/acpi/Makefile | 1 +
drivers/acpi/acpi_apd.c | 27 +-
drivers/acpi/acpi_lpss.c | 17 +
drivers/acpi/acpi_platform.c | 20 +-
drivers/acpi/acpi_watchdog.c | 123 ++++
drivers/acpi/acpica/Makefile | 1 +
drivers/acpi/acpica/acapps.h | 10 +-
drivers/acpi/acpica/acdebug.h | 2 +-
drivers/acpi/acpica/acevents.h | 3 +
drivers/acpi/acpica/acglobal.h | 2 +
drivers/acpi/acpica/aclocal.h | 2 +
drivers/acpi/acpica/acnamesp.h | 8 +
drivers/acpi/acpica/acparser.h | 2 +
drivers/acpi/acpica/actables.h | 12 +-
drivers/acpi/acpica/acutils.h | 53 +-
drivers/acpi/acpica/dbconvert.c | 7 +-
drivers/acpi/acpica/dbexec.c | 62 +-
drivers/acpi/acpica/dbfileio.c | 20 +-
drivers/acpi/acpica/dbinput.c | 2 +
drivers/acpi/acpica/dbmethod.c | 132 ++++
drivers/acpi/acpica/dbobject.c | 4 +-
drivers/acpi/acpica/dsmethod.c | 14 +-
drivers/acpi/acpica/dsutils.c | 17 +-
drivers/acpi/acpica/dswexec.c | 3 +-
drivers/acpi/acpica/dswload2.c | 7 +-
drivers/acpi/acpica/evgpe.c | 57 ++
drivers/acpi/acpica/evgpeinit.c | 7 +-
drivers/acpi/acpica/evrgnini.c | 3 +-
drivers/acpi/acpica/evxfgpe.c | 43 ++
drivers/acpi/acpica/exconcat.c | 2 +-
drivers/acpi/acpica/exconfig.c | 141 ++---
drivers/acpi/acpica/exconvrt.c | 8 +-
drivers/acpi/acpica/exmisc.c | 4 +-
drivers/acpi/acpica/exoparg1.c | 23 +-
drivers/acpi/acpica/exresop.c | 11 +-
drivers/acpi/acpica/extrace.c | 25 -
drivers/acpi/acpica/exutils.c | 8 +
drivers/acpi/acpica/hwgpe.c | 23 +-
drivers/acpi/acpica/nsaccess.c | 6 +-
drivers/acpi/acpica/nsconvert.c | 1 -
drivers/acpi/acpica/nsdump.c | 2 +-
drivers/acpi/acpica/nsload.c | 30 +-
drivers/acpi/acpica/nsparse.c | 165 ++++-
drivers/acpi/acpica/nsutils.c | 66 +-
drivers/acpi/acpica/psparse.c | 6 +-
drivers/acpi/acpica/psxface.c | 84 +++
drivers/acpi/acpica/tbdata.c | 147 ++++-
drivers/acpi/acpica/tbfadt.c | 136 ++---
drivers/acpi/acpica/tbfind.c | 12 +-
drivers/acpi/acpica/tbinstal.c | 73 +--
drivers/acpi/acpica/tbutils.c | 3 +-
drivers/acpi/acpica/tbxface.c | 4 +-
drivers/acpi/acpica/tbxfload.c | 66 +-
drivers/acpi/acpica/tbxfroot.c | 5 +-
drivers/acpi/acpica/utaddress.c | 8 -
drivers/acpi/acpica/utbuffer.c | 30 +-
drivers/acpi/acpica/utdebug.c | 61 +-
drivers/acpi/acpica/utdecode.c | 2 +-
drivers/acpi/acpica/uthex.c | 46 +-
drivers/acpi/acpica/utinit.c | 2 +-
drivers/acpi/acpica/utnonansi.c | 357 +----------
drivers/acpi/acpica/utosi.c | 22 +-
drivers/acpi/acpica/utpredef.c | 2 -
drivers/acpi/acpica/utprint.c | 105 +++-
drivers/acpi/acpica/utstrtoul64.c | 348 +++++++++++
drivers/acpi/acpica/uttrack.c | 4 +-
drivers/acpi/acpica/utxface.c | 2 +-
drivers/acpi/acpica/utxfinit.c | 9 +-
drivers/acpi/battery.c | 10 +-
drivers/acpi/bus.c | 6 +-
drivers/acpi/button.c | 85 ++-
drivers/acpi/cppc_acpi.c | 664 ++++++++++++++++-----
drivers/acpi/ec.c | 468 ++++++++++++---
drivers/acpi/internal.h | 15 +-
drivers/acpi/pci_irq.c | 10 +-
drivers/acpi/processor_driver.c | 4 +-
drivers/acpi/scan.c | 2 +
drivers/acpi/sleep.c | 6 +-
drivers/acpi/sysfs.c | 99 +--
drivers/acpi/tables.c | 16 +-
drivers/base/core.c | 1 +
drivers/cpufreq/cppc_cpufreq.c | 15 +-
drivers/i2c/busses/i2c-i801.c | 4 +-
drivers/mailbox/pcc.c | 316 +++++++---
drivers/mfd/lpc_ich.c | 4 +
drivers/pci/pci.c | 24 +
drivers/platform/x86/intel_pmc_ipc.c | 12 +-
drivers/tty/serial/8250/8250_dw.c | 15 +-
drivers/watchdog/Kconfig | 13 +
drivers/watchdog/Makefile | 1 +
drivers/watchdog/wdat_wdt.c | 526 ++++++++++++++++
include/acpi/acconfig.h | 4 +
include/acpi/acoutput.h | 6 +-
include/acpi/acpiosxf.h | 43 +-
include/acpi/acpixf.h | 44 +-
include/acpi/actbl.h | 164 ++---
include/acpi/actypes.h | 64 +-
include/acpi/cppc_acpi.h | 18 +-
include/acpi/platform/acenv.h | 90 ++-
include/acpi/platform/acenvex.h | 21 +-
include/acpi/platform/acgcc.h | 17 +-
include/acpi/platform/acgccex.h | 58 ++
include/acpi/platform/aclinux.h | 22 +-
include/acpi/platform/aclinuxex.h | 2 +-
include/linux/acpi.h | 13 +
include/linux/pci.h | 4 +
tools/power/acpi/common/cmfsize.c | 13 +-
tools/power/acpi/common/getopt.c | 4 +-
.../acpi/os_specific/service_layers/oslibcfs.c | 217 -------
.../acpi/os_specific/service_layers/osunixxf.c | 3 -
tools/power/acpi/tools/acpidump/Makefile | 3 +-
tools/power/acpi/tools/acpidump/acpidump.h | 12 +-
tools/power/acpi/tools/acpidump/apdump.c | 75 +--
tools/power/acpi/tools/acpidump/apfiles.c | 56 +-
tools/power/acpi/tools/acpidump/apmain.c | 37 +-
121 files changed, 4263 insertions(+), 1928 deletions(-)