From 7c528c606825aa1cc3ebaf2aa4155db77fb4cff4 Mon Sep 17 00:00:00 2001 From: Yuxi Date: Mon, 24 Oct 2011 14:22:16 +0800 Subject: [PATCH] ENGR00160626 fix system hang when ipu clk get rate Enable ipu clk when try get rate Signed-off-by: Yuxi Sun --- drivers/mxc/ipu3/ipu_disp.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/drivers/mxc/ipu3/ipu_disp.c b/drivers/mxc/ipu3/ipu_disp.c index 9094fc64f109..9f3381071246 100644 --- a/drivers/mxc/ipu3/ipu_disp.c +++ b/drivers/mxc/ipu3/ipu_disp.c @@ -59,7 +59,12 @@ static inline struct ipu_soc *pixelclk2ipu(struct clk *clk) static unsigned long _ipu_pixel_clk_get_rate(struct clk *clk) { struct ipu_soc *ipu = pixelclk2ipu(clk); - u32 div = ipu_di_read(ipu, clk->id, DI_BS_CLKGEN0); + u32 div; + + _ipu_get(ipu); + div = ipu_di_read(ipu, clk->id, DI_BS_CLKGEN0); + _ipu_put(ipu); + if (div == 0) return 0; return (clk_get_rate(clk->parent) * 16) / div; -- 2.39.2