Commit f6235eb1 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull more power management updates from Rafael Wysocki:
 "These are mostly ARM cpufreq driver updates plus a cpufreq core
  cleanup, an ARM-wide change to make schedutil the default scaling
  governor, an intel_pstate driver fix and some runtime PM changes
  regarding kerneldoc comments.

  Specifics:

   - Add adaptive voltage scaling (AVS) support to the brcmstb cpufreq
     driver and clean it up (Florian Fainelli, Markus Mayer).

   - Add a new Tegra cpufreq driver and clean up the existing one (Jon
     Hunter, Sumit Gupta).

   - Add bandwidth level support to the Qcom cpufreq driver along with
     OPP changes (Sibi Sankar).

   - Clean up the sti, cpufreq-dt, ap806, CPPC cpufreq drivers (Viresh
     Kumar, Lee Jones, Ivan Kokshaysky, Sven Auhagen, Xin Hao).

   - Make schedutil the default governor for ARM (Valentin Schneider).

   - Fix dependency issues for the imx cpufreq driver (Walter Lozano).

   - Clean up cached_resolved_idx handlihng in the cpufreq core (Viresh
     Kumar).

   - Fix the intel_pstate driver to use the correct maximum frequency
     value when MSR_TURBO_RATIO_LIMIT is 0 (Srinivas Pandruvada).

   - Provide kenrneldoc comments for multiple runtime PM helpers and
     improve the pm_runtime_get_if_active() kerneldoc (Rafael Wysocki)"

* tag 'pm-5.9-rc1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (22 commits)
  cpufreq: intel_pstate: Fix cpuinfo_max_freq when MSR_TURBO_RATIO_LIMIT is 0
  PM: runtime: Improve kerneldoc of pm_runtime_get_if_active()
  PM: runtime: Add kerneldoc comments to multiple helpers
  cpufreq: make schedutil the default for arm and arm64
  cpufreq: cached_resolved_idx can not be negative
  cpufreq: Add Tegra194 cpufreq driver
  dt-bindings: arm: Add NVIDIA Tegra194 CPU Complex binding
  cpufreq: imx: Select NVMEM_IMX_OCOTP
  cpufreq: sti-cpufreq: Fix some formatting and misspelling issues
  cpufreq: tegra186: Simplify probe return path
  cpufreq: CPPC: Reuse caps variable in few routines
  cpufreq: ap806: fix cpufreq driver needs ap cpu clk
  cpufreq: cppc: Reorder code and remove apply_hisi_workaround variable
  cpufreq: dt: fix oops on armada37xx
  cpufreq: brcmstb-avs-cpufreq: send S2_ENTER / S2_EXIT commands to AVS
  cpufreq: brcmstb-avs-cpufreq: Support polling AVS firmware
  cpufreq: brcmstb-avs-cpufreq: more flexible interface for __issue_avs_command()
  cpufreq: qcom: Disable fast switch when scaling DDR/L3
  cpufreq: qcom: Update the bandwidth levels on frequency change
  OPP: Add and export helper to set bandwidth
  ...
parents 2f12d440 0873ad92
Loading
Loading
Loading
Loading
+69 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: "http://devicetree.org/schemas/arm/nvidia,tegra194-ccplex.yaml#"
$schema: "http://devicetree.org/meta-schemas/core.yaml#"

title: NVIDIA Tegra194 CPU Complex device tree bindings

maintainers:
  - Thierry Reding <thierry.reding@gmail.com>
  - Jonathan Hunter <jonathanh@nvidia.com>
  - Sumit Gupta <sumitg@nvidia.com>

description: |+
  Tegra194 SOC has homogeneous architecture where each cluster has two
  symmetric cores. Compatible string in "cpus" node represents the CPU
  Complex having all clusters.

properties:
  $nodename:
    const: cpus

  compatible:
    enum:
      - nvidia,tegra194-ccplex

  nvidia,bpmp:
    $ref: '/schemas/types.yaml#/definitions/phandle'
    description: |
      Specifies the bpmp node that needs to be queried to get
      operating point data for all CPUs.

examples:
  - |
    cpus {
      compatible = "nvidia,tegra194-ccplex";
      nvidia,bpmp = <&bpmp>;
      #address-cells = <1>;
      #size-cells = <0>;

      cpu0_0: cpu@0 {
        compatible = "nvidia,tegra194-carmel";
        device_type = "cpu";
        reg = <0x0>;
        enable-method = "psci";
      };

      cpu0_1: cpu@1 {
        compatible = "nvidia,tegra194-carmel";
        device_type = "cpu";
        reg = <0x001>;
        enable-method = "psci";
      };

      cpu1_0: cpu@100 {
        compatible = "nvidia,tegra194-carmel";
        device_type = "cpu";
        reg = <0x100>;
        enable-method = "psci";
      };

      cpu1_1: cpu@101 {
        compatible = "nvidia,tegra194-carmel";
        device_type = "cpu";
        reg = <0x101>;
        enable-method = "psci";
      };
    };
...
+14 −12
Original line number Diff line number Diff line
@@ -1085,24 +1085,26 @@ int __pm_runtime_resume(struct device *dev, int rpmflags)
EXPORT_SYMBOL_GPL(__pm_runtime_resume);

/**
 * pm_runtime_get_if_active - Conditionally bump up the device's usage counter.
 * pm_runtime_get_if_active - Conditionally bump up device usage counter.
 * @dev: Device to handle.
 * @ign_usage_count: Whether or not to look at the current usage counter value.
 *
 * Return -EINVAL if runtime PM is disabled for the device.
 * Return -EINVAL if runtime PM is disabled for @dev.
 *
 * Otherwise, if the device's runtime PM status is RPM_ACTIVE and either
 * ign_usage_count is true or the device's usage_count is non-zero, increment
 * the counter and return 1. Otherwise return 0 without changing the counter.
 * Otherwise, if the runtime PM status of @dev is %RPM_ACTIVE and either
 * @ign_usage_count is %true or the runtime PM usage counter of @dev is not
 * zero, increment the usage counter of @dev and return 1. Otherwise, return 0
 * without changing the usage counter.
 *
 * If ign_usage_count is true, the function can be used to prevent suspending
 * the device when its runtime PM status is RPM_ACTIVE.
 * If @ign_usage_count is %true, this function can be used to prevent suspending
 * the device when its runtime PM status is %RPM_ACTIVE.
 *
 * If ign_usage_count is false, the function can be used to prevent suspending
 * the device when both its runtime PM status is RPM_ACTIVE and its usage_count
 * is non-zero.
 * If @ign_usage_count is %false, this function can be used to prevent
 * suspending the device when both its runtime PM status is %RPM_ACTIVE and its
 * runtime PM usage counter is not zero.
 *
 * The caller is resposible for putting the device's usage count when ther
 * return value is greater than zero.
 * The caller is resposible for decrementing the runtime PM usage counter of
 * @dev after this function has returned a positive value for it.
 */
int pm_runtime_get_if_active(struct device *dev, bool ign_usage_count)
{
+1 −1
Original line number Diff line number Diff line
@@ -37,7 +37,7 @@ config CPU_FREQ_STAT
choice
	prompt "Default CPUFreq governor"
	default CPU_FREQ_DEFAULT_GOV_USERSPACE if ARM_SA1100_CPUFREQ || ARM_SA1110_CPUFREQ
	default CPU_FREQ_DEFAULT_GOV_SCHEDUTIL if BIG_LITTLE
	default CPU_FREQ_DEFAULT_GOV_SCHEDUTIL if ARM64 || ARM
	default CPU_FREQ_DEFAULT_GOV_SCHEDUTIL if X86_INTEL_PSTATE && SMP
	default CPU_FREQ_DEFAULT_GOV_PERFORMANCE
	help
+9 −0
Original line number Diff line number Diff line
@@ -41,6 +41,7 @@ config ARM_ARMADA_37XX_CPUFREQ
config ARM_ARMADA_8K_CPUFREQ
	tristate "Armada 8K CPUFreq driver"
	depends on ARCH_MVEBU && CPUFREQ_DT
	select ARMADA_AP_CPU_CLK
	help
	  This enables the CPUFreq driver support for Marvell
	  Armada8k SOCs.
@@ -93,6 +94,7 @@ config ARM_IMX6Q_CPUFREQ
	tristate "Freescale i.MX6 cpufreq support"
	depends on ARCH_MXC
	depends on REGULATOR_ANATOP
	select NVMEM_IMX_OCOTP
	select PM_OPP
	help
	  This adds cpufreq driver support for Freescale i.MX6 series SoCs.
@@ -314,6 +316,13 @@ config ARM_TEGRA186_CPUFREQ
	help
	  This adds the CPUFreq driver support for Tegra186 SOCs.

config ARM_TEGRA194_CPUFREQ
	tristate "Tegra194 CPUFreq support"
	depends on ARCH_TEGRA_194_SOC && TEGRA_BPMP
	default y
	help
	  This adds CPU frequency driver support for Tegra194 SOCs.

config ARM_TI_CPUFREQ
	bool "Texas Instruments CPUFreq support"
	depends on ARCH_OMAP2PLUS
+1 −0
Original line number Diff line number Diff line
@@ -83,6 +83,7 @@ obj-$(CONFIG_ARM_TANGO_CPUFREQ) += tango-cpufreq.o
obj-$(CONFIG_ARM_TEGRA20_CPUFREQ)	+= tegra20-cpufreq.o
obj-$(CONFIG_ARM_TEGRA124_CPUFREQ)	+= tegra124-cpufreq.o
obj-$(CONFIG_ARM_TEGRA186_CPUFREQ)	+= tegra186-cpufreq.o
obj-$(CONFIG_ARM_TEGRA194_CPUFREQ)	+= tegra194-cpufreq.o
obj-$(CONFIG_ARM_TI_CPUFREQ)		+= ti-cpufreq.o
obj-$(CONFIG_ARM_VEXPRESS_SPC_CPUFREQ)	+= vexpress-spc-cpufreq.o

Loading