Merge branches 'pm-cpufreq' and 'pm-cpuidle'

* pm-cpufreq:
  cpufreq: ti-cpufreq: Support additional am43xx platforms
  cpufreq: dt-platdev: Add some missing platforms to the blacklist

* pm-cpuidle:
  ARM: cpuidle: Avoid memleak if init fail
This commit is contained in:
Rafael J. Wysocki 2017-09-22 22:45:54 +02:00
Родитель 1419d03317 039cc1c1eb ed40fad9a5
Коммит d84c97f8f7
3 изменённых файлов: 17 добавлений и 3 удалений

Просмотреть файл

@ -106,6 +106,18 @@ static const struct of_device_id whitelist[] __initconst = {
* platforms using "operating-points-v2" property. * platforms using "operating-points-v2" property.
*/ */
static const struct of_device_id blacklist[] __initconst = { static const struct of_device_id blacklist[] __initconst = {
{ .compatible = "calxeda,highbank", },
{ .compatible = "calxeda,ecx-2000", },
{ .compatible = "marvell,armadaxp", },
{ .compatible = "nvidia,tegra124", },
{ .compatible = "st,stih407", },
{ .compatible = "st,stih410", },
{ .compatible = "sigma,tango4", },
{ } { }
}; };

Просмотреть файл

@ -190,7 +190,7 @@ static int ti_cpufreq_setup_syscon_register(struct ti_cpufreq_data *opp_data)
static const struct of_device_id ti_cpufreq_of_match[] = { static const struct of_device_id ti_cpufreq_of_match[] = {
{ .compatible = "ti,am33xx", .data = &am3x_soc_data, }, { .compatible = "ti,am33xx", .data = &am3x_soc_data, },
{ .compatible = "ti,am4372", .data = &am4x_soc_data, }, { .compatible = "ti,am43", .data = &am4x_soc_data, },
{ .compatible = "ti,dra7", .data = &dra7_soc_data }, { .compatible = "ti,dra7", .data = &dra7_soc_data },
{}, {},
}; };

Просмотреть файл

@ -104,13 +104,13 @@ static int __init arm_idle_init(void)
ret = dt_init_idle_driver(drv, arm_idle_state_match, 1); ret = dt_init_idle_driver(drv, arm_idle_state_match, 1);
if (ret <= 0) { if (ret <= 0) {
ret = ret ? : -ENODEV; ret = ret ? : -ENODEV;
goto out_fail; goto init_fail;
} }
ret = cpuidle_register_driver(drv); ret = cpuidle_register_driver(drv);
if (ret) { if (ret) {
pr_err("Failed to register cpuidle driver\n"); pr_err("Failed to register cpuidle driver\n");
goto out_fail; goto init_fail;
} }
/* /*
@ -149,6 +149,8 @@ static int __init arm_idle_init(void)
} }
return 0; return 0;
init_fail:
kfree(drv);
out_fail: out_fail:
while (--cpu >= 0) { while (--cpu >= 0) {
dev = per_cpu(cpuidle_devices, cpu); dev = per_cpu(cpuidle_devices, cpu);