From: Rafael J. Wysocki Date: Tue, 23 Feb 2021 18:47:03 +0000 (+0100) Subject: Merge branches 'pm-cpufreq' and 'pm-opp' X-Git-Tag: v5.12-rc1~59^2 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=08c2a406b974eea893dd9b2f159d715f2b15c683;p=thirdparty%2Fkernel%2Flinux.git Merge branches 'pm-cpufreq' and 'pm-opp' * pm-cpufreq: cpufreq: Fix typo in kerneldoc comment cpufreq: schedutil: Remove update_lock comment from struct sugov_policy definition cpufreq: schedutil: Remove needless sg_policy parameter from ignore_dl_rate_limit() cpufreq: ACPI: Set cpuinfo.max_freq directly if max boost is known cpufreq: qcom-hw: drop devm_xxx() calls from init/exit hooks * pm-opp: opp: Don't skip freq update for different frequency --- 08c2a406b974eea893dd9b2f159d715f2b15c683 diff --cc drivers/cpufreq/qcom-cpufreq-hw.c index 356244510b18a,33a2473bd3105,7df18903b66c9..d3c23447b892d --- a/drivers/cpufreq/qcom-cpufreq-hw.c +++ b/drivers/cpufreq/qcom-cpufreq-hw.c @@@@ -303,14 -305,28 -303,14 +305,28 @@@@ static int qcom_cpufreq_hw_cpu_init(str index = args.args[0]; - - base = devm_platform_ioremap_resource(pdev, index); - - if (IS_ERR(base)) - - return PTR_ERR(base); + + res = platform_get_resource(pdev, IORESOURCE_MEM, index); + + if (!res) { + + dev_err(dev, "failed to get mem resource %d\n", index); + + return -ENODEV; + + } + + + + if (!request_mem_region(res->start, resource_size(res), res->name)) { + + dev_err(dev, "failed to request resource %pR\n", res); + + return -EBUSY; + + } + - data = devm_kzalloc(dev, sizeof(*data), GFP_KERNEL); + + base = ioremap(res->start, resource_size(res)); + + if (IS_ERR(base)) { + + dev_err(dev, "failed to map resource %pR\n", res); + + ret = PTR_ERR(base); + + goto release_region; + + } + - data = devm_kzalloc(dev, sizeof(*data), GFP_KERNEL); + + data = kzalloc(sizeof(*data), GFP_KERNEL); if (!data) { ret = -ENOMEM; - - goto error; + + goto unmap_base; } data->soc_data = of_device_get_match_data(&pdev->dev); @@@@ -347,15 -364,19 -347,9 +364,19 @@@@ dev_pm_opp_of_register_em(cpu_dev, policy->cpus); + if (policy_has_boost_freq(policy)) { + ret = cpufreq_enable_boost_support(); + if (ret) + dev_warn(cpu_dev, "failed to enable boost: %d\n", ret); + } + return 0; error: - - devm_iounmap(dev, base); + + kfree(data); + +unmap_base: + + iounmap(data->base); + +release_region: + + release_mem_region(res->start, resource_size(res)); return ret; }