#include <linux/io.h>\r
#include <linux/hrtimer.h>\r
\r
-\r
+#define MHz (1000 * 1000)\r
static LIST_HEAD(rk_dvfs_tree);\r
static DEFINE_MUTEX(mutex);\r
static DEFINE_MUTEX(rk_dvfs_mutex);\r
DVFS_WARNING("%s(%s),vd is no target callback\n", __func__, clk->name); \r
return -1;\r
}\r
- DVFS_DBG("%s(%s(%lu)),is end\n", __func__, dvfs_info->name, DVFS_STR_ON(on));\r
+ DVFS_DBG("%s(%s(%s)),is end\n", __func__, dvfs_info->name, DVFS_STR_DISABLE(on));\r
\r
return ret;\r
}\r
static void dvfs_table_round_clk_rate(struct clk_node *dvfs_clk)\r
{\r
int i;\r
- long temp_rate;\r
+ unsigned long temp_rate;\r
int rate;\r
int flags;\r
\r
DVFS_WARNING("clk %s:round_clk_rate : is %d,but round <=0",dvfs_clk->name,dvfs_clk->dvfs_table[i].frequency);\r
break;\r
}\r
- temp_rate=(temp_rate/1000)+flags;\r
+ \r
+ /* Set rate unit as MHZ */\r
+ if (temp_rate % MHz != 0)\r
+ temp_rate = (temp_rate / MHz + 1) * MHz;\r
+\r
+ temp_rate = (temp_rate / 1000) + flags;\r
\r
DVFS_DBG("clk %s round_clk_rate %d to %d\n",\r
dvfs_clk->name,dvfs_clk->dvfs_table[i].frequency,(int)(temp_rate));\r