ddr_test: use dvfs_clk_set_rate() when change freq
author陈亮 <cl@rock-chips.com>
Mon, 21 Jul 2014 12:27:24 +0000 (05:27 -0700)
committer陈亮 <cl@rock-chips.com>
Mon, 21 Jul 2014 12:28:39 +0000 (05:28 -0700)
Signed-off-by: 陈亮 <cl@rock-chips.com>
arch/arm/mach-rockchip/ddr_test.c

index 4d93549f374021190c662c369210e59d5e31e6df..936e02bbd732040a3f45f9c7f315c2ffa5d51fb6 100755 (executable)
 #include <linux/freezer.h>
 #include <linux/kthread.h>
 #include <linux/sched/rt.h>
+#include <linux/rockchip/dvfs.h>
 
 #include <dt-bindings/clock/ddr.h>
 
 struct ddrtest {
     struct clk *pll;
     struct clk *clk;
+       struct dvfs_node *clk_dvfs_node;
     volatile unsigned int freq;
     volatile bool change_end;
     struct task_struct *task;
@@ -220,8 +222,7 @@ static const struct file_operations ddr_proc_fops = {
 
 static void ddrtest_work(unsigned int value)
 {
-
-    clk_set_rate(ddrtest.clk, value * 1000000);
+       dvfs_clk_set_rate(ddrtest.clk_dvfs_node, value * 1000000);
     ddrtest.change_end = true;
 }
 
@@ -261,6 +262,10 @@ static int ddr_proc_init(void)
     }
     ddrtest.freq = clk_get_rate(ddrtest.clk)/1000000;
 
+       ddrtest.clk_dvfs_node = clk_get_dvfs_node("clk_ddr");
+       if (!ddrtest.clk_dvfs_node)
+               goto err;
+
     ddr_proc_entry = proc_create("driver/ddr_ts",
                            S_IRUGO | S_IWUGO | S_IWUSR | S_IRUSR,
                            NULL,&ddrtest_proc_fops);