From 42f93add8e63ca27db2c3d620a3daead91fcbfe5 Mon Sep 17 00:00:00 2001 From: yxj Date: Mon, 23 Apr 2012 21:13:24 +0800 Subject: [PATCH] rk30 fb: fix crash when reboot or power off the system --- drivers/video/rockchip/chips/rk30_lcdc.c | 5 +++-- drivers/video/rockchip/rk_fb.c | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/drivers/video/rockchip/chips/rk30_lcdc.c b/drivers/video/rockchip/chips/rk30_lcdc.c index f845a761fed0..0d56ac346bed 100644 --- a/drivers/video/rockchip/chips/rk30_lcdc.c +++ b/drivers/video/rockchip/chips/rk30_lcdc.c @@ -83,6 +83,7 @@ static int init_rk30_lcdc(struct rk_lcdc_device_driver *dev_drv) static int rk30_lcdc_deinit(struct rk30_lcdc_device *lcdc_dev) { + LcdSetBit(lcdc_dev,SYS_CTRL0,m_LCDC_STANDBY); clk_disable(lcdc_dev->aclk); clk_disable(lcdc_dev->dclk); clk_disable(lcdc_dev->hclk); @@ -794,10 +795,10 @@ static void rk30_lcdc_shutdown(struct platform_device *pdev) struct rk30_lcdc_device *lcdc_dev = platform_get_drvdata(pdev); rk_fb_unregister(&(lcdc_dev->driver)); rk30_lcdc_deinit(lcdc_dev); - iounmap(lcdc_dev->reg_vir_base); + /*iounmap(lcdc_dev->reg_vir_base); release_mem_region(lcdc_dev->reg_phy_base,lcdc_dev->len); kfree(lcdc_dev->screen); - kfree(lcdc_dev); + kfree(lcdc_dev);*/ } diff --git a/drivers/video/rockchip/rk_fb.c b/drivers/video/rockchip/rk_fb.c index 9a55b68fbd3a..27d2b4afeb3c 100644 --- a/drivers/video/rockchip/rk_fb.c +++ b/drivers/video/rockchip/rk_fb.c @@ -1045,7 +1045,7 @@ static struct platform_driver rk_fb_driver = { .name = "rk-fb", .owner = THIS_MODULE, }, - .shutdown = rk_fb_shutdown, + //.shutdown = rk_fb_shutdown, }; static int __init rk_fb_init(void) -- 2.34.1