Skip to content

Commit 30c7688

Browse files
committed
Merge branch 'cpufreq/arm/linux-next' of git://git.kernel.org/pub/scm/linux/kernel/git/vireshk/pm
Pull ARM cpufreq updates for 5.11-rc1 from Viresh Kumar: "This contains the following updates: - Fix imx's NVMEM_IMX_OCOTP dependency (Arnd Bergmann). - Add support for mt8167 and blacklist mt8516 (Fabien Parent). - Some ->get() callback related cleanups to the tegra194 driver and some optimizations in tegra186 driver (Jon Hunter and Sumit Gupta). - Power scale improvements to arm_scmi driver (Lukasz Luba). - Add missing MODULE_DEVICE_TABLE and MODULE_ALIAS to several drivers (Pali Rohár). - Fix error path in mediatek driver (Qinglang Miao). - Fix memleak in ST's cpufreq driver (Yangtao Li)." * 'cpufreq/arm/linux-next' of git://git.kernel.org/pub/scm/linux/kernel/git/vireshk/pm: (22 commits) cpufreq: arm_scmi: Discover the power scale in performance protocol firmware: arm_scmi: Add power_scale_mw_get() interface cpufreq: tegra194: Rename tegra194_get_speed_common function cpufreq: tegra194: Remove unnecessary frequency calculation cpufreq: tegra186: Simplify cluster information lookup cpufreq: tegra186: Fix sparse 'incorrect type in assignment' warning cpufreq: imx: fix NVMEM_IMX_OCOTP dependency cpufreq: vexpress-spc: Add missing MODULE_ALIAS cpufreq: scpi: Add missing MODULE_ALIAS cpufreq: loongson1: Add missing MODULE_ALIAS cpufreq: sun50i: Add missing MODULE_DEVICE_TABLE cpufreq: st: Add missing MODULE_DEVICE_TABLE cpufreq: qcom: Add missing MODULE_DEVICE_TABLE cpufreq: mediatek: Add missing MODULE_DEVICE_TABLE cpufreq: highbank: Add missing MODULE_DEVICE_TABLE cpufreq: ap806: Add missing MODULE_DEVICE_TABLE cpufreq: mediatek: add missing platform_driver_unregister() on error in mtk_cpufreq_driver_init cpufreq: tegra194: get consistent cpuinfo_cur_freq cpufreq: blacklist mt8516 in cpufreq-dt-platdev cpufreq: mediatek: Add support for mt8167 ...
2 parents b96f038 + c8bb452 commit 30c7688

19 files changed

Lines changed: 190 additions & 92 deletions

drivers/cpufreq/Kconfig.arm

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ config ARM_IMX6Q_CPUFREQ
9494
tristate "Freescale i.MX6 cpufreq support"
9595
depends on ARCH_MXC
9696
depends on REGULATOR_ANATOP
97-
select NVMEM_IMX_OCOTP
97+
depends on NVMEM_IMX_OCOTP || COMPILE_TEST
9898
select PM_OPP
9999
help
100100
This adds cpufreq driver support for Freescale i.MX6 series SoCs.

drivers/cpufreq/armada-8k-cpufreq.c

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -204,6 +204,12 @@ static void __exit armada_8k_cpufreq_exit(void)
204204
}
205205
module_exit(armada_8k_cpufreq_exit);
206206

207+
static const struct of_device_id __maybe_unused armada_8k_cpufreq_of_match[] = {
208+
{ .compatible = "marvell,ap806-cpu-clock" },
209+
{ },
210+
};
211+
MODULE_DEVICE_TABLE(of, armada_8k_cpufreq_of_match);
212+
207213
MODULE_AUTHOR("Gregory Clement <gregory.clement@bootlin.com>");
208214
MODULE_DESCRIPTION("Armada 8K cpufreq driver");
209215
MODULE_LICENSE("GPL");

drivers/cpufreq/cpufreq-dt-platdev.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -119,10 +119,12 @@ static const struct of_device_id blacklist[] __initconst = {
119119
{ .compatible = "mediatek,mt2712", },
120120
{ .compatible = "mediatek,mt7622", },
121121
{ .compatible = "mediatek,mt7623", },
122+
{ .compatible = "mediatek,mt8167", },
122123
{ .compatible = "mediatek,mt817x", },
123124
{ .compatible = "mediatek,mt8173", },
124125
{ .compatible = "mediatek,mt8176", },
125126
{ .compatible = "mediatek,mt8183", },
127+
{ .compatible = "mediatek,mt8516", },
126128

127129
{ .compatible = "nvidia,tegra20", },
128130
{ .compatible = "nvidia,tegra30", },

drivers/cpufreq/highbank-cpufreq.c

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,13 @@ static int hb_cpufreq_driver_init(void)
101101
}
102102
module_init(hb_cpufreq_driver_init);
103103

104+
static const struct of_device_id __maybe_unused hb_cpufreq_of_match[] = {
105+
{ .compatible = "calxeda,highbank" },
106+
{ .compatible = "calxeda,ecx-2000" },
107+
{ },
108+
};
109+
MODULE_DEVICE_TABLE(of, hb_cpufreq_of_match);
110+
104111
MODULE_AUTHOR("Mark Langsdorf <mark.langsdorf@calxeda.com>");
105112
MODULE_DESCRIPTION("Calxeda Highbank cpufreq driver");
106113
MODULE_LICENSE("GPL");

drivers/cpufreq/loongson1-cpufreq.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -216,6 +216,7 @@ static struct platform_driver ls1x_cpufreq_platdrv = {
216216

217217
module_platform_driver(ls1x_cpufreq_platdrv);
218218

219+
MODULE_ALIAS("platform:ls1x-cpufreq");
219220
MODULE_AUTHOR("Kelvin Cheung <keguang.zhang@gmail.com>");
220221
MODULE_DESCRIPTION("Loongson1 CPUFreq driver");
221222
MODULE_LICENSE("GPL");

drivers/cpufreq/mediatek-cpufreq.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -532,6 +532,7 @@ static const struct of_device_id mtk_cpufreq_machines[] __initconst = {
532532
{ .compatible = "mediatek,mt2712", },
533533
{ .compatible = "mediatek,mt7622", },
534534
{ .compatible = "mediatek,mt7623", },
535+
{ .compatible = "mediatek,mt8167", },
535536
{ .compatible = "mediatek,mt817x", },
536537
{ .compatible = "mediatek,mt8173", },
537538
{ .compatible = "mediatek,mt8176", },
@@ -540,6 +541,7 @@ static const struct of_device_id mtk_cpufreq_machines[] __initconst = {
540541

541542
{ }
542543
};
544+
MODULE_DEVICE_TABLE(of, mtk_cpufreq_machines);
543545

544546
static int __init mtk_cpufreq_driver_init(void)
545547
{
@@ -572,6 +574,7 @@ static int __init mtk_cpufreq_driver_init(void)
572574
pdev = platform_device_register_simple("mtk-cpufreq", -1, NULL, 0);
573575
if (IS_ERR(pdev)) {
574576
pr_err("failed to register mtk-cpufreq platform device\n");
577+
platform_driver_unregister(&mtk_cpufreq_platdrv);
575578
return PTR_ERR(pdev);
576579
}
577580

drivers/cpufreq/qcom-cpufreq-nvmem.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -464,6 +464,7 @@ static const struct of_device_id qcom_cpufreq_match_list[] __initconst = {
464464
{ .compatible = "qcom,msm8960", .data = &match_data_krait },
465465
{},
466466
};
467+
MODULE_DEVICE_TABLE(of, qcom_cpufreq_match_list);
467468

468469
/*
469470
* Since the driver depends on smem and nvmem drivers, which may

drivers/cpufreq/scmi-cpufreq.c

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -126,6 +126,7 @@ static int scmi_cpufreq_init(struct cpufreq_policy *policy)
126126
struct scmi_data *priv;
127127
struct cpufreq_frequency_table *freq_table;
128128
struct em_data_callback em_cb = EM_DATA_CB(scmi_get_cpu_power);
129+
bool power_scale_mw;
129130

130131
cpu_dev = get_cpu_device(policy->cpu);
131132
if (!cpu_dev) {
@@ -189,7 +190,9 @@ static int scmi_cpufreq_init(struct cpufreq_policy *policy)
189190
policy->fast_switch_possible =
190191
handle->perf_ops->fast_switch_possible(handle, cpu_dev);
191192

192-
em_dev_register_perf_domain(cpu_dev, nr_opp, &em_cb, policy->cpus);
193+
power_scale_mw = handle->perf_ops->power_scale_mw_get(handle);
194+
em_dev_register_perf_domain(cpu_dev, nr_opp, &em_cb, policy->cpus,
195+
power_scale_mw);
193196

194197
return 0;
195198

drivers/cpufreq/scpi-cpufreq.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -233,6 +233,7 @@ static struct platform_driver scpi_cpufreq_platdrv = {
233233
};
234234
module_platform_driver(scpi_cpufreq_platdrv);
235235

236+
MODULE_ALIAS("platform:scpi-cpufreq");
236237
MODULE_AUTHOR("Sudeep Holla <sudeep.holla@arm.com>");
237238
MODULE_DESCRIPTION("ARM SCPI CPUFreq interface driver");
238239
MODULE_LICENSE("GPL v2");

drivers/cpufreq/sti-cpufreq.c

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -223,7 +223,8 @@ static int sti_cpufreq_set_opp_info(void)
223223
opp_table = dev_pm_opp_set_supported_hw(dev, version, VERSION_ELEMENTS);
224224
if (IS_ERR(opp_table)) {
225225
dev_err(dev, "Failed to set supported hardware\n");
226-
return PTR_ERR(opp_table);
226+
ret = PTR_ERR(opp_table);
227+
goto err_put_prop_name;
227228
}
228229

229230
dev_dbg(dev, "pcode: %d major: %d minor: %d substrate: %d\n",
@@ -232,6 +233,10 @@ static int sti_cpufreq_set_opp_info(void)
232233
version[0], version[1], version[2]);
233234

234235
return 0;
236+
237+
err_put_prop_name:
238+
dev_pm_opp_put_prop_name(opp_table);
239+
return ret;
235240
}
236241

237242
static int sti_cpufreq_fetch_syscon_registers(void)
@@ -292,6 +297,13 @@ static int sti_cpufreq_init(void)
292297
}
293298
module_init(sti_cpufreq_init);
294299

300+
static const struct of_device_id __maybe_unused sti_cpufreq_of_match[] = {
301+
{ .compatible = "st,stih407" },
302+
{ .compatible = "st,stih410" },
303+
{ },
304+
};
305+
MODULE_DEVICE_TABLE(of, sti_cpufreq_of_match);
306+
295307
MODULE_DESCRIPTION("STMicroelectronics CPUFreq/OPP driver");
296308
MODULE_AUTHOR("Ajitpal Singh <ajitpal.singh@st.com>");
297309
MODULE_AUTHOR("Lee Jones <lee.jones@linaro.org>");

0 commit comments

Comments
 (0)