if(hdmi) {
#ifdef CONFIG_HAS_EARLYSUSPEND
unregister_early_suspend(&hdmi->early_suspend);
-#endif
- }
- printk(KERN_INFO "rk616 hdmi shut down.\n");
+#endif
+ flush_delayed_work(&hdmi->delay_work);
+ mutex_lock(&hdmi->enable_mutex);
+ hdmi->suspend = 1;
+ if(!hdmi->enable) {
+ mutex_unlock(&hdmi->enable_mutex);
+ return;
+ }
+ if (hdmi->irq)
+ disable_irq(hdmi->irq);
+ mutex_unlock(&hdmi->enable_mutex);
+ }
+ printk(KERN_INFO "rk616 hdmi shut down.\n");
}
static struct platform_driver rk616_hdmi_driver = {
if(hdmi->pwr_mode == LOWER_PWR)
rk616_hdmi_set_pwr_mode(NORMAL);
- queue_delayed_work(hdmi->workqueue, &hdmi->delay_work, msecs_to_jiffies(10));
+ queue_delayed_work(hdmi->workqueue, &hdmi->delay_work, msecs_to_jiffies(40));
}