rk30 fb: fix crash when reboot or power off the system
authoryxj <yxj@rock-chips.com>
Mon, 23 Apr 2012 13:13:24 +0000 (21:13 +0800)
committeryxj <yxj@rock-chips.com>
Mon, 23 Apr 2012 13:18:25 +0000 (21:18 +0800)
drivers/video/rockchip/chips/rk30_lcdc.c
drivers/video/rockchip/rk_fb.c

index f845a761fed023b2f90491426eee6b80b352ba18..0d56ac346bed406ee1d73abe2fb2325c4961765a 100644 (file)
@@ -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);*/
 }
 
 
index 9a55b68fbd3a7548c9c0e9b1d150c3ffe50e6234..27d2b4afeb3cb982897f15dab6cec02ebea81cef 100644 (file)
@@ -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)