From c3ec2077f4ef4966309966084ed05184c762b60e Mon Sep 17 00:00:00 2001 From: hjc Date: Thu, 25 Dec 2014 13:59:21 +0800 Subject: [PATCH] rk3368 lcdc: fix crash when close display Signed-off-by: hjc --- drivers/video/rockchip/lcdc/rk3368_lcdc.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/drivers/video/rockchip/lcdc/rk3368_lcdc.c b/drivers/video/rockchip/lcdc/rk3368_lcdc.c index 305fef7bf24d..30a4289fc07f 100644 --- a/drivers/video/rockchip/lcdc/rk3368_lcdc.c +++ b/drivers/video/rockchip/lcdc/rk3368_lcdc.c @@ -435,7 +435,8 @@ static int rk3368_lcdc_pre_init(struct rk_lcdc_driver *dev_drv) return 0; } -static void rk3368_lcdc_deint(struct lcdc_device *lcdc_dev) +static void __maybe_unused + rk3368_lcdc_deint(struct lcdc_device *lcdc_dev) { rk3368_lcdc_disable_irq(lcdc_dev); spin_lock(&lcdc_dev->reg_lock); @@ -4369,8 +4370,12 @@ static void rk3368_lcdc_shutdown(struct platform_device *pdev) { struct lcdc_device *lcdc_dev = platform_get_drvdata(pdev); - rk3368_lcdc_deint(lcdc_dev); - rk_disp_pwr_disable(&lcdc_dev->driver); + if (0) {/*maybe lead to crash*/ + rk3368_lcdc_deint(lcdc_dev); + rk_disp_pwr_disable(&lcdc_dev->driver); + } else { + rk3368_lcdc_early_suspend(&lcdc_dev->driver); + } } #if defined(CONFIG_OF) -- 2.34.1