From: chenxing Date: Wed, 25 Apr 2012 14:10:20 +0000 (+0800) Subject: rk30:sdk: fix dvfs bug: when cpu frequency table all freqs smaller than default freq... X-Git-Tag: firefly_0821_release~9303 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=6fd8123a4e15dd26ffd0a8112c9c750c415fb958;p=firefly-linux-kernel-4.4.55.git rk30:sdk: fix dvfs bug: when cpu frequency table all freqs smaller than default freq, clk dvfs do not open --- diff --git a/arch/arm/mach-rk30/dvfs.c b/arch/arm/mach-rk30/dvfs.c index 1f3b9ac8bc85..54d2b8cbcbaa 100755 --- a/arch/arm/mach-rk30/dvfs.c +++ b/arch/arm/mach-rk30/dvfs.c @@ -314,6 +314,18 @@ int clk_enable_dvfs(struct clk *clk) dvfs_clk->set_freq = dvfs_clk_get_rate_kz(clk); // DVFS_DBG("%s ,%s get freq%u!\n",__func__,dvfs_clk->name,dvfs_clk->set_freq); + + if (dvfs_clk_get_ref_volt(dvfs_clk, dvfs_clk->set_freq, &clk_fv)) { + if (dvfs_clk->dvfs_table[0].frequency == CPUFREQ_TABLE_END) { + DVFS_ERR("%s table empty\n", __func__); + dvfs_clk->enable_dvfs = 0; + return -1; + } else { + DVFS_ERR("WARNING: %s table all value are smaller than default, use default, just enable dvfs\n", __func__); + dvfs_clk->enable_dvfs++; + return 0; + } + } if (dvfs_clk_get_ref_volt(dvfs_clk, dvfs_clk->set_freq, &clk_fv)) { dvfs_clk->enable_dvfs = 0;