All of lore.kernel.org
 help / color / mirror / Atom feed
* [vireshk-pm:cpufreq/arm/linux-next 24/24] drivers/cpufreq/mediatek-cpufreq.c:199:2-8: preceding lock on line 190
@ 2022-05-06 20:58 kernel test robot
  0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2022-05-06 20:58 UTC (permalink / raw)
  To: kbuild

[-- Attachment #1: Type: text/plain, Size: 13155 bytes --]

CC: kbuild-all(a)lists.01.org
BCC: lkp(a)intel.com
CC: linux-kernel(a)vger.kernel.org
TO: "Rex-BC Chen" <rex-bc.chen@mediatek.com>
CC: Viresh Kumar <viresh.kumar@linaro.org>
CC: "Andrew-sh.Cheng" <andrew-sh.cheng@mediatek.com>
CC: "Jia-Wei Chang" <jia-wei.chang@mediatek.com>
CC: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>

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/202205070404.vpgtRaCF-lkp(a)intel.com/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 <lkp@intel.com>
Reported-by: Julia Lawall <julia.lawall@lip6.fr>


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 <rex-bc.chen@mediatek.com>
:::::: CC: Viresh Kumar <viresh.kumar@linaro.org>

-- 
0-DAY CI Kernel Test Service
https://01.org/lkp

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2022-05-06 20:58 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-05-06 20:58 [vireshk-pm:cpufreq/arm/linux-next 24/24] drivers/cpufreq/mediatek-cpufreq.c:199:2-8: preceding lock on line 190 kernel test robot

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.