rk30 hdmi: only unregister earlysuspend when shutdown.
authorZheng Yang <zhengyang@rock-chips.com>
Thu, 31 May 2012 07:02:14 +0000 (15:02 +0800)
committerZheng Yang <zhengyang@rock-chips.com>
Thu, 31 May 2012 07:02:14 +0000 (15:02 +0800)
drivers/video/rockchip/hdmi/rk30_hdmi.c

index 2272ca86883f8bb490e09d288e4e524cd252bb75..37ab8575b75846b283f8f33f13be44a583d04df6 100755 (executable)
@@ -219,6 +219,15 @@ static int __devexit rk30_hdmi_remove(struct platform_device *pdev)
                iounmap((void*)hdmi->regbase);\r
        //      release_mem_region(res->start,(res->end - res->start) + 1);\r
                clk_disable(hdmi->hclk);\r
+               fb_destroy_modelist(&hdmi->edid.modelist);\r
+               if(hdmi->edid.audio)\r
+                       kfree(hdmi->edid.audio);\r
+               if(hdmi->edid.specs)\r
+               {\r
+                       if(hdmi->edid.specs->modedb)\r
+                               kfree(hdmi->edid.specs->modedb);\r
+                       kfree(hdmi->edid.specs);\r
+               }\r
                kfree(hdmi);\r
                hdmi = NULL;\r
        }\r
@@ -229,18 +238,9 @@ static int __devexit rk30_hdmi_remove(struct platform_device *pdev)
 static void rk30_hdmi_shutdown(struct platform_device *pdev)\r
 {\r
        if(hdmi) {\r
-               flush_workqueue(hdmi->workqueue);\r
-               destroy_workqueue(hdmi->workqueue);\r
-               #ifdef CONFIG_SWITCH\r
-               switch_dev_unregister(&(hdmi->switch_hdmi));\r
-               #endif\r
-               hdmi_unregister_display_sysfs(hdmi);\r
                #ifdef CONFIG_HAS_EARLYSUSPEND\r
                unregister_early_suspend(&hdmi->early_suspend);\r
                #endif\r
-               clk_disable(hdmi->hclk);\r
-               kfree(hdmi);\r
-               hdmi = NULL;\r
        }\r
        printk(KERN_INFO "rk30 hdmi shut down.\n");\r
 }\r