Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge tag 'pm-5.14-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm

Pull power management fixes from Rafael Wysocki:
"These fix some issues in the ARM cpufreq drivers and in the operating
performance points (OPP) framework.

Specifics:

- Fix useless WARN() in the OPP core and prevent a noisy warning
from being printed by OPP _put functions (Dmitry Osipenko).

- Fix error path when allocation failed in the arm_scmi cpufreq
driver (Lukasz Luba).

- Blacklist Qualcomm sc8180x and Qualcomm sm8150 in
cpufreq-dt-platdev (Bjorn Andersson, Thara Gopinath).

- Forbid cpufreq for 1.2 GHz variant in the armada-37xx cpufreq
driver (Marek Behún)"

* tag 'pm-5.14-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
opp: Drop empty-table checks from _put functions
cpufreq: armada-37xx: forbid cpufreq for 1.2 GHz variant
cpufreq: blocklist Qualcomm sm8150 in cpufreq-dt-platdev
cpufreq: arm_scmi: Fix error path when allocation failed
opp: remove WARN when no valid OPPs remain
cpufreq: blacklist Qualcomm sc8180x in cpufreq-dt-platdev

+11 -19
+5 -1
drivers/cpufreq/armada-37xx-cpufreq.c
··· 104 104 }; 105 105 106 106 static struct armada_37xx_dvfs armada_37xx_dvfs[] = { 107 - {.cpu_freq_max = 1200*1000*1000, .divider = {1, 2, 4, 6} }, 107 + /* 108 + * The cpufreq scaling for 1.2 GHz variant of the SOC is currently 109 + * unstable because we do not know how to configure it properly. 110 + */ 111 + /* {.cpu_freq_max = 1200*1000*1000, .divider = {1, 2, 4, 6} }, */ 108 112 {.cpu_freq_max = 1000*1000*1000, .divider = {1, 2, 4, 5} }, 109 113 {.cpu_freq_max = 800*1000*1000, .divider = {1, 2, 3, 4} }, 110 114 {.cpu_freq_max = 600*1000*1000, .divider = {2, 4, 5, 6} },
+2
drivers/cpufreq/cpufreq-dt-platdev.c
··· 139 139 { .compatible = "qcom,qcs404", }, 140 140 { .compatible = "qcom,sc7180", }, 141 141 { .compatible = "qcom,sc7280", }, 142 + { .compatible = "qcom,sc8180x", }, 142 143 { .compatible = "qcom,sdm845", }, 144 + { .compatible = "qcom,sm8150", }, 143 145 144 146 { .compatible = "st,stih407", }, 145 147 { .compatible = "st,stih410", },
+1 -1
drivers/cpufreq/scmi-cpufreq.c
··· 134 134 } 135 135 136 136 if (!zalloc_cpumask_var(&opp_shared_cpus, GFP_KERNEL)) 137 - ret = -ENOMEM; 137 + return -ENOMEM; 138 138 139 139 /* Obtain CPUs that share SCMI performance controls */ 140 140 ret = scmi_get_sharing_cpus(cpu_dev, policy->cpus);
-15
drivers/opp/core.c
··· 1856 1856 if (unlikely(!opp_table)) 1857 1857 return; 1858 1858 1859 - /* Make sure there are no concurrent readers while updating opp_table */ 1860 - WARN_ON(!list_empty(&opp_table->opp_list)); 1861 - 1862 1859 kfree(opp_table->supported_hw); 1863 1860 opp_table->supported_hw = NULL; 1864 1861 opp_table->supported_hw_count = 0; ··· 1940 1943 { 1941 1944 if (unlikely(!opp_table)) 1942 1945 return; 1943 - 1944 - /* Make sure there are no concurrent readers while updating opp_table */ 1945 - WARN_ON(!list_empty(&opp_table->opp_list)); 1946 1946 1947 1947 kfree(opp_table->prop_name); 1948 1948 opp_table->prop_name = NULL; ··· 2049 2055 2050 2056 if (!opp_table->regulators) 2051 2057 goto put_opp_table; 2052 - 2053 - /* Make sure there are no concurrent readers while updating opp_table */ 2054 - WARN_ON(!list_empty(&opp_table->opp_list)); 2055 2058 2056 2059 if (opp_table->enabled) { 2057 2060 for (i = opp_table->regulator_count - 1; i >= 0; i--) ··· 2169 2178 if (unlikely(!opp_table)) 2170 2179 return; 2171 2180 2172 - /* Make sure there are no concurrent readers while updating opp_table */ 2173 - WARN_ON(!list_empty(&opp_table->opp_list)); 2174 - 2175 2181 clk_put(opp_table->clk); 2176 2182 opp_table->clk = ERR_PTR(-EINVAL); 2177 2183 ··· 2266 2278 { 2267 2279 if (unlikely(!opp_table)) 2268 2280 return; 2269 - 2270 - /* Make sure there are no concurrent readers while updating opp_table */ 2271 - WARN_ON(!list_empty(&opp_table->opp_list)); 2272 2281 2273 2282 opp_table->set_opp = NULL; 2274 2283
+3 -2
drivers/opp/of.c
··· 964 964 } 965 965 } 966 966 967 - /* There should be one of more OPP defined */ 968 - if (WARN_ON(!count)) { 967 + /* There should be one or more OPPs defined */ 968 + if (!count) { 969 + dev_err(dev, "%s: no supported OPPs", __func__); 969 970 ret = -ENOENT; 970 971 goto remove_static_opp; 971 972 }