Commit 7e71a133 authored by Rafael J. Wysocki's avatar Rafael J. Wysocki
Browse files

Merge branches 'pm-cpuidle', 'pm-core' and 'pm-sleep'

Merge cpuidle updates, PM core updates and changes related to system
sleep handling for 6.3-rc1:

 - Make the TEO cpuidle governor check CPU utilization in order to refine
   idle state selection (Kajetan Puchalski).

 - Make Kconfig select the haltpoll cpuidle governor when the haltpoll
   cpuidle driver is selected and replace a default_idle() call in that
   driver with arch_cpu_idle() which allows MWAIT to be used (Li
   RongQing).

 - Add Emerald Rapids Xeon support to the intel_idle driver (Artem
   Bityutskiy).

 - Add ARCH_SUSPEND_POSSIBLE dependencies for ARMv4 cpuidle drivers to
   avoid randconfig build failures (Arnd Bergmann).

 - Make kobj_type structures used in the cpuidle sysfs interface
   constant (Thomas Weißschuh).

 - Make the cpuidle driver registration code update microsecond values
   of idle state parameters in accordance with their nanosecond values
   if they are provided (Rafael Wysocki).

 - Make the PSCI cpuidle driver prevent topology CPUs from being
   suspended on PREEMPT_RT (Krzysztof Kozlowski).

 - Document that pm_runtime_force_suspend() cannot be used with
   DPM_FLAG_SMART_SUSPEND (Richard Fitzgerald).

 - Add EXPORT macros for exporting PM functions from drivers (Richard
   Fitzgerald).

 - Drop "select SRCU" from system sleep Kconfig (Paul E. McKenney).

 - Remove /** from non-kernel-doc comments in hibernation code (Randy
   Dunlap).

* pm-cpuidle:
  cpuidle: psci: Do not suspend topology CPUs on PREEMPT_RT
  cpuidle: driver: Update microsecond values of state parameters as needed
  cpuidle: sysfs: make kobj_type structures constant
  cpuidle: add ARCH_SUSPEND_POSSIBLE dependencies
  intel_idle: add Emerald Rapids Xeon support
  cpuidle-haltpoll: Replace default_idle() with arch_cpu_idle()
  cpuidle-haltpoll: select haltpoll governor
  cpuidle: teo: Introduce util-awareness
  cpuidle: teo: Optionally skip polling states in teo_find_shallower_state()

* pm-core:
  PM: Add EXPORT macros for exporting PM functions
  PM: runtime: Document that force_suspend() is incompatible with SMART_SUSPEND

* pm-sleep:
  PM: sleep: Remove "select SRCU"
  PM: hibernate: swap: don't use /** for non-kernel-doc comments
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -721,6 +721,7 @@ void arch_cpu_idle(void)
{
	x86_idle();
}
EXPORT_SYMBOL_GPL(arch_cpu_idle);

/*
 * We use this if we don't have any better idle routine..
+4 −0
Original line number Diff line number Diff line
@@ -1864,6 +1864,10 @@ static bool pm_runtime_need_not_resume(struct device *dev)
 * sure the device is put into low power state and it should only be used during
 * system-wide PM transitions to sleep states.  It assumes that the analogous
 * pm_runtime_force_resume() will be used to resume the device.
 *
 * Do not use with DPM_FLAG_SMART_SUSPEND as this can lead to an inconsistent
 * state where this function has called the ->runtime_suspend callback but the
 * PM core marks the driver as runtime active.
 */
int pm_runtime_force_suspend(struct device *dev)
{
+1 −0
Original line number Diff line number Diff line
@@ -74,6 +74,7 @@ endmenu
config HALTPOLL_CPUIDLE
	tristate "Halt poll cpuidle driver"
	depends on X86 && KVM_GUEST
	select CPU_IDLE_GOV_HALTPOLL
	default y
	help
	 This option enables halt poll cpuidle driver, which allows to poll
+10 −0
Original line number Diff line number Diff line
@@ -24,6 +24,14 @@ config ARM_PSCI_CPUIDLE
	  It provides an idle driver that is capable of detecting and
	  managing idle states through the PSCI firmware interface.

	  The driver has limitations when used with PREEMPT_RT:
	  - If the idle states are described with the non-hierarchical layout,
	    all idle states are still available.

	  - If the idle states are described with the hierarchical layout,
	    only the idle states defined per CPU are available, but not the ones
	    being shared among a group of CPUs (aka cluster idle states).

config ARM_PSCI_CPUIDLE_DOMAIN
	bool "PSCI CPU idle Domain"
	depends on ARM_PSCI_CPUIDLE
@@ -102,6 +110,7 @@ config ARM_MVEBU_V7_CPUIDLE
config ARM_TEGRA_CPUIDLE
	bool "CPU Idle Driver for NVIDIA Tegra SoCs"
	depends on (ARCH_TEGRA || COMPILE_TEST) && !ARM64 && MMU
	depends on ARCH_SUSPEND_POSSIBLE
	select ARCH_NEEDS_CPU_IDLE_COUPLED if SMP
	select ARM_CPU_SUSPEND
	help
@@ -110,6 +119,7 @@ config ARM_TEGRA_CPUIDLE
config ARM_QCOM_SPM_CPUIDLE
	bool "CPU Idle Driver for Qualcomm Subsystem Power Manager (SPM)"
	depends on (ARCH_QCOM || COMPILE_TEST) && !ARM64 && MMU
	depends on ARCH_SUSPEND_POSSIBLE
	select ARM_CPU_SUSPEND
	select CPU_IDLE_MULTIPLE_DRIVERS
	select DT_IDLE_STATES
+1 −1
Original line number Diff line number Diff line
@@ -32,7 +32,7 @@ static int default_enter_idle(struct cpuidle_device *dev,
		local_irq_enable();
		return index;
	}
	default_idle();
	arch_cpu_idle();
	return index;
}

Loading