Commit 2114d596 authored by Rafael J. Wysocki's avatar Rafael J. Wysocki
Browse files

Merge branch 'pm-cpufreq'

Merge ARM cpufreq updates for 6.6:

 - Migrate various platforms to use remove callback returning void
   (Yangtao Li).

 - Add online/offline/exit hooks for Tegra driver (Sumit Gupta).

 - Explicitly include correct DT includes (Rob Herring).

 - Frequency domain updates for qcom-hw driver (Neil Armstrong).

 - Modify AMD pstate driver return the highest_perf value (Meng Li).

 - Generic cleanups for cppc, mediatek and powernow driver (Liao Chang,
   Konrad Dybcio).

 - Add more platforms to cpufreq-arm driver's blocklist (AngeloGioacchino
   Del Regno, Konrad Dybcio).

 - brcmstb-avs-cpufreq: Fix -Warray-bounds bug (Gustavo A. R. Silva).

* pm-cpufreq: (33 commits)
  cpufreq: tegra194: remove opp table in exit hook
  cpufreq: powernow-k8: Use related_cpus instead of cpus in driver.exit()
  cpufreq: tegra194: add online/offline hooks
  cpufreq: qcom-cpufreq-hw: add support for 4 freq domains
  dt-bindings: cpufreq: qcom-hw: add a 4th frequency domain
  cpufreq: cppc: Set fie_disabled to FIE_DISABLED if fails to create kworker_fie
  cpufreq: cppc: cppc_cpufreq_get_rate() returns zero in all error cases.
  cpufreq: Prefer to print cpuid in MIN/MAX QoS register error message
  cpufreq: amd-pstate-ut: Modify the function to get the highest_perf value
  cpufreq: mediatek-hw: Remove unused define
  cpufreq: blocklist more Qualcomm platforms in cpufreq-dt-platdev
  cpufreq: brcmstb-avs-cpufreq: Fix -Warray-bounds bug
  cpufreq: blocklist MSM8998 in cpufreq-dt-platdev
  cpufreq: omap: Convert to platform remove callback returning void
  cpufreq: qoriq: Convert to platform remove callback returning void
  cpufreq: acpi: Convert to platform remove callback returning void
  cpufreq: tegra186: Convert to platform remove callback returning void
  cpufreq: qcom-nvmem: Convert to platform remove callback returning void
  cpufreq: kirkwood: Convert to platform remove callback returning void
  cpufreq: pcc-cpufreq: Convert to platform remove callback returning void
  ...
parents 885c429e 6e2f78c8
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -49,6 +49,7 @@ properties:
      - description: Frequency domain 0 register region
      - description: Frequency domain 1 register region
      - description: Frequency domain 2 register region
      - description: Frequency domain 3 register region

  reg-names:
    minItems: 1
@@ -56,6 +57,7 @@ properties:
      - const: freq-domain0
      - const: freq-domain1
      - const: freq-domain2
      - const: freq-domain3

  clocks:
    items:
@@ -69,7 +71,7 @@ properties:

  interrupts:
    minItems: 1
    maxItems: 3
    maxItems: 4

  interrupt-names:
    minItems: 1
@@ -77,6 +79,7 @@ properties:
      - const: dcvsh-irq-0
      - const: dcvsh-irq-1
      - const: dcvsh-irq-2
      - const: dcvsh-irq-3

  '#freq-domain-cells':
    const: 1
+2 −4
Original line number Diff line number Diff line
@@ -1011,22 +1011,20 @@ static int __init acpi_cpufreq_probe(struct platform_device *pdev)
	return ret;
}

static int acpi_cpufreq_remove(struct platform_device *pdev)
static void acpi_cpufreq_remove(struct platform_device *pdev)
{
	pr_debug("%s\n", __func__);

	cpufreq_unregister_driver(&acpi_cpufreq_driver);

	free_acpi_perf_data();

	return 0;
}

static struct platform_driver acpi_cpufreq_platdrv = {
	.driver = {
		.name	= "acpi-cpufreq",
	},
	.remove		= acpi_cpufreq_remove,
	.remove_new	= acpi_cpufreq_remove,
};

static int __init acpi_cpufreq_init(void)
+2 −2
Original line number Diff line number Diff line
@@ -127,8 +127,6 @@ static void amd_pstate_ut_check_perf(u32 index)
	struct cpufreq_policy *policy = NULL;
	struct amd_cpudata *cpudata = NULL;

	highest_perf = amd_get_highest_perf();

	for_each_possible_cpu(cpu) {
		policy = cpufreq_cpu_get(cpu);
		if (!policy)
@@ -143,6 +141,7 @@ static void amd_pstate_ut_check_perf(u32 index)
				goto skip_test;
			}

			highest_perf = cppc_perf.highest_perf;
			nominal_perf = cppc_perf.nominal_perf;
			lowest_nonlinear_perf = cppc_perf.lowest_nonlinear_perf;
			lowest_perf = cppc_perf.lowest_perf;
@@ -154,6 +153,7 @@ static void amd_pstate_ut_check_perf(u32 index)
				goto skip_test;
			}

			highest_perf = AMD_CPPC_HIGHEST_PERF(cap1);
			nominal_perf = AMD_CPPC_NOMINAL_PERF(cap1);
			lowest_nonlinear_perf = AMD_CPPC_LOWNONLIN_PERF(cap1);
			lowest_perf = AMD_CPPC_LOWEST_PERF(cap1);
+1 −3
Original line number Diff line number Diff line
@@ -14,10 +14,8 @@
#include <linux/interrupt.h>
#include <linux/io.h>
#include <linux/mfd/syscon.h>
#include <linux/mod_devicetable.h>
#include <linux/module.h>
#include <linux/of_address.h>
#include <linux/of_device.h>
#include <linux/of_irq.h>
#include <linux/platform_device.h>
#include <linux/pm_opp.h>
#include <linux/regmap.h>
+7 −5
Original line number Diff line number Diff line
@@ -434,7 +434,11 @@ brcm_avs_get_freq_table(struct device *dev, struct private_data *priv)
	if (ret)
		return ERR_PTR(ret);

	table = devm_kcalloc(dev, AVS_PSTATE_MAX + 1, sizeof(*table),
	/*
	 * We allocate space for the 5 different P-STATES AVS,
	 * plus extra space for a terminating element.
	 */
	table = devm_kcalloc(dev, AVS_PSTATE_MAX + 1 + 1, sizeof(*table),
			     GFP_KERNEL);
	if (!table)
		return ERR_PTR(-ENOMEM);
@@ -749,13 +753,11 @@ static int brcm_avs_cpufreq_probe(struct platform_device *pdev)
	return ret;
}

static int brcm_avs_cpufreq_remove(struct platform_device *pdev)
static void brcm_avs_cpufreq_remove(struct platform_device *pdev)
{
	cpufreq_unregister_driver(&brcm_avs_driver);

	brcm_avs_prepare_uninit(pdev);

	return 0;
}

static const struct of_device_id brcm_avs_cpufreq_match[] = {
@@ -770,7 +772,7 @@ static struct platform_driver brcm_avs_cpufreq_platdrv = {
		.of_match_table = brcm_avs_cpufreq_match,
	},
	.probe		= brcm_avs_cpufreq_probe,
	.remove		= brcm_avs_cpufreq_remove,
	.remove_new	= brcm_avs_cpufreq_remove,
};
module_platform_driver(brcm_avs_cpufreq_platdrv);

Loading