Skip to content

Commit 0a9db0a

Browse files
committed
Merge branch 'cpufreq/arm/linux-next' of git://git.kernel.org/pub/scm/linux/kernel/git/vireshk/pm
Pull cpufreq material for v5.6 from Viresh Kumar: "This contains: - Update to imx cpufreq driver to add support for i.MX8MP platform. - Blacklists few NVIDIA SoCs from cpufreq-dt-platdev layer. - Convertion of few platform drivers to use devm_platform_ioremap_resource(). - Fixed refcount imbalance in few drivers." * 'cpufreq/arm/linux-next' of git://git.kernel.org/pub/scm/linux/kernel/git/vireshk/pm: cpufreq: brcmstb-avs: fix imbalance of cpufreq policy refcount cpufreq: s3c: fix unbalances of cpufreq policy refcount cpufreq: imx-cpufreq-dt: Add i.MX8MP support cpufreq: Use imx-cpufreq-dt for i.MX8MP's speed grading cpufreq: tegra186: convert to devm_platform_ioremap_resource cpufreq: kirkwood: convert to devm_platform_ioremap_resource
2 parents 1250c1a + a48ac1c commit 0a9db0a

File tree

7 files changed

+30
-10
lines changed

7 files changed

+30
-10
lines changed

drivers/cpufreq/brcmstb-avs-cpufreq.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -455,6 +455,8 @@ static unsigned int brcm_avs_cpufreq_get(unsigned int cpu)
455455
struct cpufreq_policy *policy = cpufreq_cpu_get(cpu);
456456
struct private_data *priv = policy->driver_data;
457457

458+
cpufreq_cpu_put(policy);
459+
458460
return brcm_avs_get_frequency(priv->base);
459461
}
460462

drivers/cpufreq/cpufreq-dt-platdev.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,7 @@ static const struct of_device_id blacklist[] __initconst = {
109109
{ .compatible = "fsl,imx8mq", },
110110
{ .compatible = "fsl,imx8mm", },
111111
{ .compatible = "fsl,imx8mn", },
112+
{ .compatible = "fsl,imx8mp", },
112113

113114
{ .compatible = "marvell,armadaxp", },
114115

drivers/cpufreq/imx-cpufreq-dt.c

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,8 @@ static int imx_cpufreq_dt_probe(struct platform_device *pdev)
3535
if (ret)
3636
return ret;
3737

38-
if (of_machine_is_compatible("fsl,imx8mn"))
38+
if (of_machine_is_compatible("fsl,imx8mn") ||
39+
of_machine_is_compatible("fsl,imx8mp"))
3940
speed_grade = (cell_value & IMX8MN_OCOTP_CFG3_SPEED_GRADE_MASK)
4041
>> OCOTP_CFG3_SPEED_GRADE_SHIFT;
4142
else
@@ -54,7 +55,8 @@ static int imx_cpufreq_dt_probe(struct platform_device *pdev)
5455
if (of_machine_is_compatible("fsl,imx8mm") ||
5556
of_machine_is_compatible("fsl,imx8mq"))
5657
speed_grade = 1;
57-
if (of_machine_is_compatible("fsl,imx8mn"))
58+
if (of_machine_is_compatible("fsl,imx8mn") ||
59+
of_machine_is_compatible("fsl,imx8mp"))
5860
speed_grade = 0xb;
5961
}
6062

drivers/cpufreq/kirkwood-cpufreq.c

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -102,13 +102,11 @@ static struct cpufreq_driver kirkwood_cpufreq_driver = {
102102
static int kirkwood_cpufreq_probe(struct platform_device *pdev)
103103
{
104104
struct device_node *np;
105-
struct resource *res;
106105
int err;
107106

108107
priv.dev = &pdev->dev;
109108

110-
res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
111-
priv.base = devm_ioremap_resource(&pdev->dev, res);
109+
priv.base = devm_platform_ioremap_resource(pdev, 0);
112110
if (IS_ERR(priv.base))
113111
return PTR_ERR(priv.base);
114112

drivers/cpufreq/s3c2416-cpufreq.c

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -304,6 +304,7 @@ static int s3c2416_cpufreq_reboot_notifier_evt(struct notifier_block *this,
304304
{
305305
struct s3c2416_data *s3c_freq = &s3c2416_cpufreq;
306306
int ret;
307+
struct cpufreq_policy *policy;
307308

308309
mutex_lock(&cpufreq_lock);
309310

@@ -318,7 +319,16 @@ static int s3c2416_cpufreq_reboot_notifier_evt(struct notifier_block *this,
318319
*/
319320
if (s3c_freq->is_dvs) {
320321
pr_debug("cpufreq: leave dvs on reboot\n");
321-
ret = cpufreq_driver_target(cpufreq_cpu_get(0), FREQ_SLEEP, 0);
322+
323+
policy = cpufreq_cpu_get(0);
324+
if (!policy) {
325+
pr_debug("cpufreq: get no policy for cpu0\n");
326+
return NOTIFY_BAD;
327+
}
328+
329+
ret = cpufreq_driver_target(policy, FREQ_SLEEP, 0);
330+
cpufreq_cpu_put(policy);
331+
322332
if (ret < 0)
323333
return NOTIFY_BAD;
324334
}

drivers/cpufreq/s5pv210-cpufreq.c

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -555,8 +555,17 @@ static int s5pv210_cpufreq_reboot_notifier_event(struct notifier_block *this,
555555
unsigned long event, void *ptr)
556556
{
557557
int ret;
558+
struct cpufreq_policy *policy;
559+
560+
policy = cpufreq_cpu_get(0);
561+
if (!policy) {
562+
pr_debug("cpufreq: get no policy for cpu0\n");
563+
return NOTIFY_BAD;
564+
}
565+
566+
ret = cpufreq_driver_target(policy, SLEEP_FREQ, 0);
567+
cpufreq_cpu_put(policy);
558568

559-
ret = cpufreq_driver_target(cpufreq_cpu_get(0), SLEEP_FREQ, 0);
560569
if (ret < 0)
561570
return NOTIFY_BAD;
562571

drivers/cpufreq/tegra186-cpufreq.c

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -187,7 +187,6 @@ static int tegra186_cpufreq_probe(struct platform_device *pdev)
187187
{
188188
struct tegra186_cpufreq_data *data;
189189
struct tegra_bpmp *bpmp;
190-
struct resource *res;
191190
unsigned int i = 0, err;
192191

193192
data = devm_kzalloc(&pdev->dev, sizeof(*data), GFP_KERNEL);
@@ -205,8 +204,7 @@ static int tegra186_cpufreq_probe(struct platform_device *pdev)
205204
if (IS_ERR(bpmp))
206205
return PTR_ERR(bpmp);
207206

208-
res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
209-
data->regs = devm_ioremap_resource(&pdev->dev, res);
207+
data->regs = devm_platform_ioremap_resource(pdev, 0);
210208
if (IS_ERR(data->regs)) {
211209
err = PTR_ERR(data->regs);
212210
goto put_bpmp;

0 commit comments

Comments
 (0)