diff --git a/drivers/video/ipu.h b/drivers/video/ipu.h index 348be58..ff91d18 100644 --- a/drivers/video/ipu.h +++ b/drivers/video/ipu.h @@ -253,6 +253,7 @@ struct clk *clk_get_parent(struct clk *clk); void ipu_dump_registers(void); int ipu_probe(void); +bool ipu_clk_enabled(void); void ipu_dmfc_init(int dmfc_type, int first); void ipu_init_dc_mappings(void); diff --git a/drivers/video/ipu_common.c b/drivers/video/ipu_common.c index f8d4488..f259fb9 100644 --- a/drivers/video/ipu_common.c +++ b/drivers/video/ipu_common.c @@ -1243,3 +1243,8 @@ int ipu_set_ldb_clock(int rate) return 0; } + +bool ipu_clk_enabled(void) +{ + return g_ipu_clk_enabled; +} diff --git a/drivers/video/mxc_ipuv3_fb.c b/drivers/video/mxc_ipuv3_fb.c index 0d0a0a9..1ab5cb7 100644 --- a/drivers/video/mxc_ipuv3_fb.c +++ b/drivers/video/mxc_ipuv3_fb.c @@ -571,6 +571,9 @@ void ipuv3_fb_shutdown(void) int i; struct ipu_stat *stat = (struct ipu_stat *)IPU_STAT; + if (!ipu_clk_enabled()) + return; + for (i = 0; i < ARRAY_SIZE(mxcfb_info); i++) { struct fb_info *fbi = mxcfb_info[i]; if (fbi) {