diff options
author | Yuxi <b36102@freescale.com> | 2011-10-24 14:22:16 +0800 |
---|---|---|
committer | Eric Miao <eric.miao@canonical.com> | 2011-11-10 07:38:49 +0800 |
commit | aead3f39e8b82616cefa7a5b8614432b96154044 (patch) | |
tree | 0203f52d5d04519245f8111c47a762788ba977d9 /drivers | |
parent | dff55f8bb3256a71f4cfa72bc650ce7502f48f50 (diff) |
ENGR00160626 fix system hang when ipu clk get rate
Enable ipu clk when try get rate
Signed-off-by: Yuxi Sun <b36102@freescale.com>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/mxc/ipu3/ipu_disp.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/drivers/mxc/ipu3/ipu_disp.c b/drivers/mxc/ipu3/ipu_disp.c index 9094fc64f10..9f338107124 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; |