rk30:sdk: fix dvfs bug: when cpu frequency table all freqs smaller than default freq...
authorchenxing <chenxing@rock-chips.com>
Wed, 25 Apr 2012 14:10:20 +0000 (22:10 +0800)
committerchenxing <chenxing@rock-chips.com>
Wed, 25 Apr 2012 14:10:20 +0000 (22:10 +0800)
arch/arm/mach-rk30/dvfs.c

index 1f3b9ac8bc85dc1c64b26c2e10117b93f372e04e..54d2b8cbcbaa664cb3e67f845270185d612197a5 100755 (executable)
@@ -314,6 +314,18 @@ int clk_enable_dvfs(struct clk *clk)
 \r
                dvfs_clk->set_freq = dvfs_clk_get_rate_kz(clk);\r
                // DVFS_DBG("%s ,%s get freq%u!\n",__func__,dvfs_clk->name,dvfs_clk->set_freq);\r
+               \r
+               if (dvfs_clk_get_ref_volt(dvfs_clk, dvfs_clk->set_freq, &clk_fv)) {\r
+                       if (dvfs_clk->dvfs_table[0].frequency == CPUFREQ_TABLE_END) {\r
+                               DVFS_ERR("%s table empty\n", __func__);\r
+                               dvfs_clk->enable_dvfs = 0;\r
+                               return -1;\r
+                       } else {\r
+                               DVFS_ERR("WARNING: %s table all value are smaller than default, use default, just enable dvfs\n", __func__);\r
+                               dvfs_clk->enable_dvfs++;\r
+                               return 0;\r
+                       }\r
+               }\r
 \r
                if (dvfs_clk_get_ref_volt(dvfs_clk, dvfs_clk->set_freq, &clk_fv)) {\r
                        dvfs_clk->enable_dvfs = 0;\r