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
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