CC: [email protected]
BCC: [email protected]
CC: [email protected]
TO: "Rex-BC Chen" <[email protected]>
CC: Viresh Kumar <[email protected]>
CC: "Andrew-sh.Cheng" <[email protected]>
CC: "Jia-Wei Chang" <[email protected]>
CC: AngeloGioacchino Del Regno <[email protected]>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/vireshk/pm.git 
cpufreq/arm/linux-next
head:   c210063b40acab74bb7262d2bfae557171884ff2
commit: c210063b40acab74bb7262d2bfae557171884ff2 [24/24] cpufreq: mediatek: Add 
opp notification support
:::::: branch date: 17 hours ago
:::::: commit date: 17 hours ago
config: arm64-allmodconfig 
(https://download.01.org/0day-ci/archive/20220507/[email protected]/config)
compiler: aarch64-linux-gcc (GCC) 11.3.0

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <[email protected]>
Reported-by: Julia Lawall <[email protected]>


cocci warnings: (new ones prefixed by >>)
>> drivers/cpufreq/mediatek-cpufreq.c:199:2-8: preceding lock on line 190
   drivers/cpufreq/mediatek-cpufreq.c:208:2-8: preceding lock on line 190

vim +199 drivers/cpufreq/mediatek-cpufreq.c

1453863fb02a18 drivers/cpufreq/mt8173-cpufreq.c   Pi-Cheng Chen 2015-08-19  173 
 
1453863fb02a18 drivers/cpufreq/mt8173-cpufreq.c   Pi-Cheng Chen 2015-08-19  174 
 static int mtk_cpufreq_set_target(struct cpufreq_policy *policy,
1453863fb02a18 drivers/cpufreq/mt8173-cpufreq.c   Pi-Cheng Chen 2015-08-19  175 
                                  unsigned int index)
1453863fb02a18 drivers/cpufreq/mt8173-cpufreq.c   Pi-Cheng Chen 2015-08-19  176 
 {
1453863fb02a18 drivers/cpufreq/mt8173-cpufreq.c   Pi-Cheng Chen 2015-08-19  177 
        struct cpufreq_frequency_table *freq_table = policy->freq_table;
1453863fb02a18 drivers/cpufreq/mt8173-cpufreq.c   Pi-Cheng Chen 2015-08-19  178 
        struct clk *cpu_clk = policy->clk;
1453863fb02a18 drivers/cpufreq/mt8173-cpufreq.c   Pi-Cheng Chen 2015-08-19  179 
        struct clk *armpll = clk_get_parent(cpu_clk);
1453863fb02a18 drivers/cpufreq/mt8173-cpufreq.c   Pi-Cheng Chen 2015-08-19  180 
        struct mtk_cpu_dvfs_info *info = policy->driver_data;
1453863fb02a18 drivers/cpufreq/mt8173-cpufreq.c   Pi-Cheng Chen 2015-08-19  181 
        struct device *cpu_dev = info->cpu_dev;
1453863fb02a18 drivers/cpufreq/mt8173-cpufreq.c   Pi-Cheng Chen 2015-08-19  182 
        struct dev_pm_opp *opp;
4aef4aeaf1dd47 drivers/cpufreq/mediatek-cpufreq.c Rex-BC Chen   2022-04-22  183 
        long freq_hz, pre_freq_hz;
4aef4aeaf1dd47 drivers/cpufreq/mediatek-cpufreq.c Rex-BC Chen   2022-04-22  184 
        int vproc, pre_vproc, inter_vproc, target_vproc, ret;
1453863fb02a18 drivers/cpufreq/mt8173-cpufreq.c   Pi-Cheng Chen 2015-08-19  185 
 
1453863fb02a18 drivers/cpufreq/mt8173-cpufreq.c   Pi-Cheng Chen 2015-08-19  186 
        inter_vproc = info->intermediate_voltage;
1453863fb02a18 drivers/cpufreq/mt8173-cpufreq.c   Pi-Cheng Chen 2015-08-19  187 
 
4aef4aeaf1dd47 drivers/cpufreq/mediatek-cpufreq.c Rex-BC Chen   2022-04-22  188 
        pre_freq_hz = clk_get_rate(cpu_clk);
bffcd33313dcfa drivers/cpufreq/mediatek-cpufreq.c Jia-Wei Chang 2022-04-22  189 
 
c210063b40acab drivers/cpufreq/mediatek-cpufreq.c Rex-BC Chen   2022-05-05 @190 
        mutex_lock(&info->reg_lock);
c210063b40acab drivers/cpufreq/mediatek-cpufreq.c Rex-BC Chen   2022-05-05  191 
 
bffcd33313dcfa drivers/cpufreq/mediatek-cpufreq.c Jia-Wei Chang 2022-04-22  192 
        if (unlikely(info->pre_vproc <= 0))
4aef4aeaf1dd47 drivers/cpufreq/mediatek-cpufreq.c Rex-BC Chen   2022-04-22  193 
                pre_vproc = regulator_get_voltage(info->proc_reg);
bffcd33313dcfa drivers/cpufreq/mediatek-cpufreq.c Jia-Wei Chang 2022-04-22  194 
        else
bffcd33313dcfa drivers/cpufreq/mediatek-cpufreq.c Jia-Wei Chang 2022-04-22  195 
                pre_vproc = info->pre_vproc;
bffcd33313dcfa drivers/cpufreq/mediatek-cpufreq.c Jia-Wei Chang 2022-04-22  196 
 
4aef4aeaf1dd47 drivers/cpufreq/mediatek-cpufreq.c Rex-BC Chen   2022-04-22  197 
        if (pre_vproc < 0) {
4aef4aeaf1dd47 drivers/cpufreq/mediatek-cpufreq.c Rex-BC Chen   2022-04-22  198 
                dev_err(cpu_dev, "invalid Vproc value: %d\n", pre_vproc);
4aef4aeaf1dd47 drivers/cpufreq/mediatek-cpufreq.c Rex-BC Chen   2022-04-22 @199 
                return pre_vproc;
40be4c3ccbf407 drivers/cpufreq/mt8173-cpufreq.c   Pi-Cheng Chen 2015-11-29  200 
        }
1453863fb02a18 drivers/cpufreq/mt8173-cpufreq.c   Pi-Cheng Chen 2015-08-19  201 
 
1453863fb02a18 drivers/cpufreq/mt8173-cpufreq.c   Pi-Cheng Chen 2015-08-19  202 
        freq_hz = freq_table[index].frequency * 1000;
1453863fb02a18 drivers/cpufreq/mt8173-cpufreq.c   Pi-Cheng Chen 2015-08-19  203 
 
1453863fb02a18 drivers/cpufreq/mt8173-cpufreq.c   Pi-Cheng Chen 2015-08-19  204 
        opp = dev_pm_opp_find_freq_ceil(cpu_dev, &freq_hz);
1453863fb02a18 drivers/cpufreq/mt8173-cpufreq.c   Pi-Cheng Chen 2015-08-19  205 
        if (IS_ERR(opp)) {
9acc0f7a6edd8d drivers/cpufreq/mediatek-cpufreq.c Rex-BC Chen   2022-04-22  206 
                dev_err(cpu_dev, "cpu%d: failed to find OPP for %ld\n",
1453863fb02a18 drivers/cpufreq/mt8173-cpufreq.c   Pi-Cheng Chen 2015-08-19  207 
                        policy->cpu, freq_hz);
1453863fb02a18 drivers/cpufreq/mt8173-cpufreq.c   Pi-Cheng Chen 2015-08-19  208 
                return PTR_ERR(opp);
1453863fb02a18 drivers/cpufreq/mt8173-cpufreq.c   Pi-Cheng Chen 2015-08-19  209 
        }
1453863fb02a18 drivers/cpufreq/mt8173-cpufreq.c   Pi-Cheng Chen 2015-08-19  210 
        vproc = dev_pm_opp_get_voltage(opp);
8a31d9d94297b1 drivers/cpufreq/mt8173-cpufreq.c   Viresh Kumar  2017-01-23  211 
        dev_pm_opp_put(opp);
1453863fb02a18 drivers/cpufreq/mt8173-cpufreq.c   Pi-Cheng Chen 2015-08-19  212 
 
1453863fb02a18 drivers/cpufreq/mt8173-cpufreq.c   Pi-Cheng Chen 2015-08-19  213 
        /*
1453863fb02a18 drivers/cpufreq/mt8173-cpufreq.c   Pi-Cheng Chen 2015-08-19  214 
         * If the new voltage or the intermediate voltage is higher than the
1453863fb02a18 drivers/cpufreq/mt8173-cpufreq.c   Pi-Cheng Chen 2015-08-19  215 
         * current voltage, scale up voltage first.
1453863fb02a18 drivers/cpufreq/mt8173-cpufreq.c   Pi-Cheng Chen 2015-08-19  216 
         */
6a17b3876bc830 drivers/cpufreq/mediatek-cpufreq.c Jia-Wei Chang 2022-05-05  217 
        target_vproc = max(inter_vproc, vproc);
6a17b3876bc830 drivers/cpufreq/mediatek-cpufreq.c Jia-Wei Chang 2022-05-05  218 
        if (pre_vproc <= target_vproc) {
1453863fb02a18 drivers/cpufreq/mt8173-cpufreq.c   Pi-Cheng Chen 2015-08-19  219 
                ret = mtk_cpufreq_set_voltage(info, target_vproc);
1453863fb02a18 drivers/cpufreq/mt8173-cpufreq.c   Pi-Cheng Chen 2015-08-19  220 
                if (ret) {
9acc0f7a6edd8d drivers/cpufreq/mediatek-cpufreq.c Rex-BC Chen   2022-04-22  221 
                        dev_err(cpu_dev,
9acc0f7a6edd8d drivers/cpufreq/mediatek-cpufreq.c Rex-BC Chen   2022-04-22  222 
                                "cpu%d: failed to scale up voltage!\n", 
policy->cpu);
4aef4aeaf1dd47 drivers/cpufreq/mediatek-cpufreq.c Rex-BC Chen   2022-04-22  223 
                        mtk_cpufreq_set_voltage(info, pre_vproc);
c210063b40acab drivers/cpufreq/mediatek-cpufreq.c Rex-BC Chen   2022-05-05  224 
                        goto out;
1453863fb02a18 drivers/cpufreq/mt8173-cpufreq.c   Pi-Cheng Chen 2015-08-19  225 
                }
1453863fb02a18 drivers/cpufreq/mt8173-cpufreq.c   Pi-Cheng Chen 2015-08-19  226 
        }
1453863fb02a18 drivers/cpufreq/mt8173-cpufreq.c   Pi-Cheng Chen 2015-08-19  227 
 
1453863fb02a18 drivers/cpufreq/mt8173-cpufreq.c   Pi-Cheng Chen 2015-08-19  228 
        /* Reparent the CPU clock to intermediate clock. */
1453863fb02a18 drivers/cpufreq/mt8173-cpufreq.c   Pi-Cheng Chen 2015-08-19  229 
        ret = clk_set_parent(cpu_clk, info->inter_clk);
1453863fb02a18 drivers/cpufreq/mt8173-cpufreq.c   Pi-Cheng Chen 2015-08-19  230 
        if (ret) {
9acc0f7a6edd8d drivers/cpufreq/mediatek-cpufreq.c Rex-BC Chen   2022-04-22  231 
                dev_err(cpu_dev,
9acc0f7a6edd8d drivers/cpufreq/mediatek-cpufreq.c Rex-BC Chen   2022-04-22  232 
                        "cpu%d: failed to re-parent cpu clock!\n", policy->cpu);
4aef4aeaf1dd47 drivers/cpufreq/mediatek-cpufreq.c Rex-BC Chen   2022-04-22  233 
                mtk_cpufreq_set_voltage(info, pre_vproc);
c210063b40acab drivers/cpufreq/mediatek-cpufreq.c Rex-BC Chen   2022-05-05  234 
                goto out;
1453863fb02a18 drivers/cpufreq/mt8173-cpufreq.c   Pi-Cheng Chen 2015-08-19  235 
        }
1453863fb02a18 drivers/cpufreq/mt8173-cpufreq.c   Pi-Cheng Chen 2015-08-19  236 
 
1453863fb02a18 drivers/cpufreq/mt8173-cpufreq.c   Pi-Cheng Chen 2015-08-19  237 
        /* Set the original PLL to target rate. */
1453863fb02a18 drivers/cpufreq/mt8173-cpufreq.c   Pi-Cheng Chen 2015-08-19  238 
        ret = clk_set_rate(armpll, freq_hz);
1453863fb02a18 drivers/cpufreq/mt8173-cpufreq.c   Pi-Cheng Chen 2015-08-19  239 
        if (ret) {
9acc0f7a6edd8d drivers/cpufreq/mediatek-cpufreq.c Rex-BC Chen   2022-04-22  240 
                dev_err(cpu_dev,
9acc0f7a6edd8d drivers/cpufreq/mediatek-cpufreq.c Rex-BC Chen   2022-04-22  241 
                        "cpu%d: failed to scale cpu clock rate!\n", 
policy->cpu);
1453863fb02a18 drivers/cpufreq/mt8173-cpufreq.c   Pi-Cheng Chen 2015-08-19  242 
                clk_set_parent(cpu_clk, armpll);
4aef4aeaf1dd47 drivers/cpufreq/mediatek-cpufreq.c Rex-BC Chen   2022-04-22  243 
                mtk_cpufreq_set_voltage(info, pre_vproc);
c210063b40acab drivers/cpufreq/mediatek-cpufreq.c Rex-BC Chen   2022-05-05  244 
                goto out;
1453863fb02a18 drivers/cpufreq/mt8173-cpufreq.c   Pi-Cheng Chen 2015-08-19  245 
        }
1453863fb02a18 drivers/cpufreq/mt8173-cpufreq.c   Pi-Cheng Chen 2015-08-19  246 
 
1453863fb02a18 drivers/cpufreq/mt8173-cpufreq.c   Pi-Cheng Chen 2015-08-19  247 
        /* Set parent of CPU clock back to the original PLL. */
1453863fb02a18 drivers/cpufreq/mt8173-cpufreq.c   Pi-Cheng Chen 2015-08-19  248 
        ret = clk_set_parent(cpu_clk, armpll);
1453863fb02a18 drivers/cpufreq/mt8173-cpufreq.c   Pi-Cheng Chen 2015-08-19  249 
        if (ret) {
9acc0f7a6edd8d drivers/cpufreq/mediatek-cpufreq.c Rex-BC Chen   2022-04-22  250 
                dev_err(cpu_dev,
9acc0f7a6edd8d drivers/cpufreq/mediatek-cpufreq.c Rex-BC Chen   2022-04-22  251 
                        "cpu%d: failed to re-parent cpu clock!\n", policy->cpu);
1453863fb02a18 drivers/cpufreq/mt8173-cpufreq.c   Pi-Cheng Chen 2015-08-19  252 
                mtk_cpufreq_set_voltage(info, inter_vproc);
c210063b40acab drivers/cpufreq/mediatek-cpufreq.c Rex-BC Chen   2022-05-05  253 
                goto out;
1453863fb02a18 drivers/cpufreq/mt8173-cpufreq.c   Pi-Cheng Chen 2015-08-19  254 
        }
1453863fb02a18 drivers/cpufreq/mt8173-cpufreq.c   Pi-Cheng Chen 2015-08-19  255 
 
1453863fb02a18 drivers/cpufreq/mt8173-cpufreq.c   Pi-Cheng Chen 2015-08-19  256 
        /*
1453863fb02a18 drivers/cpufreq/mt8173-cpufreq.c   Pi-Cheng Chen 2015-08-19  257 
         * If the new voltage is lower than the intermediate voltage or the
1453863fb02a18 drivers/cpufreq/mt8173-cpufreq.c   Pi-Cheng Chen 2015-08-19  258 
         * original voltage, scale down to the new voltage.
1453863fb02a18 drivers/cpufreq/mt8173-cpufreq.c   Pi-Cheng Chen 2015-08-19  259 
         */
4aef4aeaf1dd47 drivers/cpufreq/mediatek-cpufreq.c Rex-BC Chen   2022-04-22  260 
        if (vproc < inter_vproc || vproc < pre_vproc) {
1453863fb02a18 drivers/cpufreq/mt8173-cpufreq.c   Pi-Cheng Chen 2015-08-19  261 
                ret = mtk_cpufreq_set_voltage(info, vproc);
1453863fb02a18 drivers/cpufreq/mt8173-cpufreq.c   Pi-Cheng Chen 2015-08-19  262 
                if (ret) {
9acc0f7a6edd8d drivers/cpufreq/mediatek-cpufreq.c Rex-BC Chen   2022-04-22  263 
                        dev_err(cpu_dev,
9acc0f7a6edd8d drivers/cpufreq/mediatek-cpufreq.c Rex-BC Chen   2022-04-22  264 
                                "cpu%d: failed to scale down voltage!\n", 
policy->cpu);
1453863fb02a18 drivers/cpufreq/mt8173-cpufreq.c   Pi-Cheng Chen 2015-08-19  265 
                        clk_set_parent(cpu_clk, info->inter_clk);
4aef4aeaf1dd47 drivers/cpufreq/mediatek-cpufreq.c Rex-BC Chen   2022-04-22  266 
                        clk_set_rate(armpll, pre_freq_hz);
1453863fb02a18 drivers/cpufreq/mt8173-cpufreq.c   Pi-Cheng Chen 2015-08-19  267 
                        clk_set_parent(cpu_clk, armpll);
c210063b40acab drivers/cpufreq/mediatek-cpufreq.c Rex-BC Chen   2022-05-05  268 
                        goto out;
1453863fb02a18 drivers/cpufreq/mt8173-cpufreq.c   Pi-Cheng Chen 2015-08-19  269 
                }
1453863fb02a18 drivers/cpufreq/mt8173-cpufreq.c   Pi-Cheng Chen 2015-08-19  270 
        }
1453863fb02a18 drivers/cpufreq/mt8173-cpufreq.c   Pi-Cheng Chen 2015-08-19  271 
 
c210063b40acab drivers/cpufreq/mediatek-cpufreq.c Rex-BC Chen   2022-05-05  272 
        info->current_freq = freq_hz;
c210063b40acab drivers/cpufreq/mediatek-cpufreq.c Rex-BC Chen   2022-05-05  273 
 
c210063b40acab drivers/cpufreq/mediatek-cpufreq.c Rex-BC Chen   2022-05-05  274 
 out:
c210063b40acab drivers/cpufreq/mediatek-cpufreq.c Rex-BC Chen   2022-05-05  275 
        mutex_unlock(&info->reg_lock);
c210063b40acab drivers/cpufreq/mediatek-cpufreq.c Rex-BC Chen   2022-05-05  276 
 
c210063b40acab drivers/cpufreq/mediatek-cpufreq.c Rex-BC Chen   2022-05-05  277 
        return ret;
1453863fb02a18 drivers/cpufreq/mt8173-cpufreq.c   Pi-Cheng Chen 2015-08-19  278 
 }
1453863fb02a18 drivers/cpufreq/mt8173-cpufreq.c   Pi-Cheng Chen 2015-08-19  279 
 

:::::: The code at line 199 was first introduced by commit
:::::: 4aef4aeaf1dd47b2242ba78857b2773b7a5b5b05 cpufreq: mediatek: Replace 
old_* with pre_*

:::::: TO: Rex-BC Chen <[email protected]>
:::::: CC: Viresh Kumar <[email protected]>

-- 
0-DAY CI Kernel Test Service
https://01.org/lkp
_______________________________________________
kbuild mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to