Commit 6f1e8b12 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull ACPI updates from Rafael Wysocki:
 "These update the ACPICA kernel code to upstream revision 20210730,
  clean up the ACPI companion binding code, optimize the I2C handling in
  the XPower PMIC driver, add 16550-compatible Serial Port Subtype
  support to the SPCR parsing code, add a few LoongArch support bits,
  add a ne quirk to the button driver, add new PCH FIVR methods to the
  DPTF code, replace deprecated CPU-hotplug functions in the processor
  driver, improve the acpi_os_map_memory() handling on non-x86 and do
  some assorted cleanups.

  Specifics:

   - Update ACPICA code in the kernel to upstream revision 20210730
     including the following changes:
       - Add support for the AEST table (data compiler) to iASL (Bob
         Moore)
       - Fix an if statement (add parens) (Bob Moore)
       - Drop trailing semicolon from some macros (Bob Moore)
       - Fix compilation of WPBT table with no command-line arguments in
         iASL (Bob Moore)
       - Add method name "_DIS" for use with aslmethod.c (Bob Moore)
       - Add new DBG2 Serial Port Subtypes (Marcin Wojtas)

   - Add new PCH FIVR methods to the DPTF code (Srinivas Pandruvada)

   - Add support for the new 16550-compatible Serial Port Subtype to the
     SPCR table parsing code (Marcin Wojtas)

   - Add DMI quirk for Lenovo Yoga 9 (14INTL5) to the ACPI button driver
     (Ulrich Huber)

   - Add LoongArch support for ACPI_PROCESSOR/ACPI_NUMA (Huacai Chen)

   - Add memory semantics to acpi_os_map_memory() (Lorenzo Pieralisi)

   - Replace deprecated CPU-hotplug functions in the ACPI processor
     driver (Sebastian Andrzej Siewior)

   - Optimize I2C-bus handling in the XPower PMIC driver (Hans de Goede)

   - Make platform-profile catch profile changes initiated by user space
     and notify user processes of them (Hans de Goede)

   - Clean up the ACPI companion binding and unbinding code and update
     debug messaging in the ACPI power resources code (Rafael Wysocki)

   - Clean up a couple of code pieces related to configfs (Andy
     Shevchenko)

   - Rearrange the FPDT table parsing code to avoid printing warning
     messages for reserved record types (Adrian Huang)"

* tag 'acpi-5.15-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (27 commits)
  ACPI: power: Drop name from struct acpi_power_resource
  ACPI: power: Use acpi_handle_debug() to print debug messages
  ACPI: tables: FPDT: Do not print FW_BUG message if record types are reserved
  ACPI: button: Add DMI quirk for Lenovo Yoga 9 (14INTL5)
  ACPI: Add memory semantics to acpi_os_map_memory()
  ACPI: SPCR: Add support for the new 16550-compatible Serial Port Subtype
  ACPI: platform-profile: call sysfs_notify() from platform_profile_store()
  ACPICA: Update version to 20210730
  ACPICA: Add method name "_DIS" For use with aslmethod.c
  ACPICA: iASL: Fix for WPBT table with no command-line arguments
  ACPICA: Headers: Add new DBG2 Serial Port Subtypes
  ACPICA: Macros should not use a trailing semicolon
  ACPICA: Fix an if statement (add parens)
  ACPICA: iASL: Add support for the AEST table (data compiler)
  ACPI: processor: Replace deprecated CPU-hotplug functions
  ACPI: DPTF: Add new PCH FIVR methods
  ACPI: configfs: Make get_header() to return error pointer
  ACPI: configfs: Use sysfs_emit() in "show" functions
  driver core: Split device_platform_notify()
  software nodes: Split software_node_notify()
  ...
parents 5cbba605 2cbd4070
Loading
Loading
Loading
Loading
+40 −0
Original line number Diff line number Diff line
@@ -111,3 +111,43 @@ Contact: linux-acpi@vger.kernel.org
Description:
		(RW) The PCH FIVR (Fully Integrated Voltage Regulator) switching frequency in MHz,
		when FIVR clock is 38.4MHz.

What:		/sys/bus/platform/devices/INTC1045:00/pch_fivr_switch_frequency/fivr_switching_freq_mhz
Date:		September, 2021
KernelVersion:	v5.15
Contact:	linux-acpi@vger.kernel.org
Description:
		(RO) Get the FIVR switching control frequency in MHz.

What:		/sys/bus/platform/devices/INTC1045:00/pch_fivr_switch_frequency/fivr_switching_fault_status
Date:		September, 2021
KernelVersion:	v5.15
Contact:	linux-acpi@vger.kernel.org
Description:
		(RO) Read the FIVR switching frequency control fault status.

What:		/sys/bus/platform/devices/INTC1045:00/pch_fivr_switch_frequency/ssc_clock_info
Date:		September, 2021
KernelVersion:	v5.15
Contact:	linux-acpi@vger.kernel.org
Description:
		(RO) Presents SSC (spread spectrum clock) information for EMI
		(Electro magnetic interference) control. This is a bit mask.
		Bits	Description
		[7:0]	Sets clock spectrum spread percentage:
			0x00=0.2% , 0x3F=10%
			1 LSB = 0.1% increase in spread (for
			settings 0x01 thru 0x1C)
			1 LSB = 0.2% increase in spread (for
			settings 0x1E thru 0x3F)
		[8]	When set to 1, enables spread
			spectrum clock
		[9]	0: Triangle mode. FFC frequency
			walks around the Fcenter in a linear
			fashion
			1: Random walk mode. FFC frequency
			changes randomly within the SSC
			(Spread spectrum clock) range
		[10]	0: No white noise. 1: Add white noise
			to spread waveform
		[11]	When 1, future writes are ignored.
+7 −0
Original line number Diff line number Diff line
@@ -26,3 +26,10 @@ Contact: Hans de Goede <hdegoede@redhat.com>
Description:	Reading this file gives the current selected profile for this
		device. Writing this file with one of the strings from
		platform_profile_choices changes the profile to the new value.

		This file can be monitored for changes by polling for POLLPRI,
		POLLPRI will be signalled on any changes, independent of those
		changes coming from a userspace write; or coming from another
		source such as e.g. a hotkey triggered profile change handled
		either directly by the embedded-controller or fully handled
		inside the kernel.
+3 −0
Original line number Diff line number Diff line
@@ -50,6 +50,9 @@ pgprot_t __acpi_get_mem_attribute(phys_addr_t addr);
void __iomem *acpi_os_ioremap(acpi_physical_address phys, acpi_size size);
#define acpi_os_ioremap acpi_os_ioremap

void __iomem *acpi_os_memmap(acpi_physical_address phys, acpi_size size);
#define acpi_os_memmap acpi_os_memmap

typedef u64 phys_cpuid_t;
#define PHYS_CPUID_INVALID INVALID_HWID

+16 −3
Original line number Diff line number Diff line
@@ -273,7 +273,8 @@ pgprot_t __acpi_get_mem_attribute(phys_addr_t addr)
	return __pgprot(PROT_DEVICE_nGnRnE);
}

void __iomem *acpi_os_ioremap(acpi_physical_address phys, acpi_size size)
static void __iomem *__acpi_os_ioremap(acpi_physical_address phys,
				       acpi_size size, bool memory)
{
	efi_memory_desc_t *md, *region = NULL;
	pgprot_t prot;
@@ -299,9 +300,11 @@ void __iomem *acpi_os_ioremap(acpi_physical_address phys, acpi_size size)
	 * It is fine for AML to remap regions that are not represented in the
	 * EFI memory map at all, as it only describes normal memory, and MMIO
	 * regions that require a virtual mapping to make them accessible to
	 * the EFI runtime services.
	 * the EFI runtime services. Determine the region default
	 * attributes by checking the requested memory semantics.
	 */
	prot = __pgprot(PROT_DEVICE_nGnRnE);
	prot = memory ? __pgprot(PROT_NORMAL_NC) :
			__pgprot(PROT_DEVICE_nGnRnE);
	if (region) {
		switch (region->type) {
		case EFI_LOADER_CODE:
@@ -361,6 +364,16 @@ void __iomem *acpi_os_ioremap(acpi_physical_address phys, acpi_size size)
	return __ioremap(phys, size, prot);
}

void __iomem *acpi_os_ioremap(acpi_physical_address phys, acpi_size size)
{
	return __acpi_os_ioremap(phys, size, false);
}

void __iomem *acpi_os_memmap(acpi_physical_address phys, acpi_size size)
{
	return __acpi_os_ioremap(phys, size, true);
}

/*
 * Claim Synchronous External Aborts as a firmware first notification.
 *
+2 −2
Original line number Diff line number Diff line
@@ -280,9 +280,9 @@ config ACPI_CPPC_LIB

config ACPI_PROCESSOR
	tristate "Processor"
	depends on X86 || IA64 || ARM64
	depends on X86 || IA64 || ARM64 || LOONGARCH
	select ACPI_PROCESSOR_IDLE
	select ACPI_CPU_FREQ_PSS if X86 || IA64
	select ACPI_CPU_FREQ_PSS if X86 || IA64 || LOONGARCH
	default y
	help
	  This driver adds support for the ACPI Processor package. It is required
Loading