return -EFAULT;
break;
case RK_FBIOSET_CONFIG_DONE:
- if (copy_from_user(&(dev_drv->wait_fs),argp,sizeof(dev_drv->wait_fs)))
- return -EFAULT;
rk3188_lcdc_alpha_cfg(lcdc_dev);
lcdc_cfg_done(lcdc_dev);
- if(dev_drv->wait_fs)
- {
- spin_lock_irqsave(&dev_drv->cpl_lock,flags);
- init_completion(&dev_drv->frame_done);
- spin_unlock_irqrestore(&dev_drv->cpl_lock,flags);
- timeout = wait_for_completion_timeout(&dev_drv->frame_done,msecs_to_jiffies(dev_drv->cur_screen->ft+5));
- if(!timeout&&(!dev_drv->frame_done.done))
+
+ if (!copy_from_user(&(dev_drv->wait_fs),argp,sizeof(dev_drv->wait_fs)))
+ {
+ if(dev_drv->wait_fs)
{
- printk(KERN_ERR "wait for new frame start time out!\n");
- return -ETIMEDOUT;
+ spin_lock_irqsave(&dev_drv->cpl_lock,flags);
+ init_completion(&dev_drv->frame_done);
+ spin_unlock_irqrestore(&dev_drv->cpl_lock,flags);
+ timeout = wait_for_completion_timeout(&dev_drv->frame_done,msecs_to_jiffies(dev_drv->cur_screen->ft+5));
+ if(!timeout&&(!dev_drv->frame_done.done))
+ {
+ printk(KERN_ERR "wait for new frame start time out!\n");
+ return -ETIMEDOUT;
+ }
}
}
break;
}
#endif
- printk("hdmi connect to lcdc%d\n",dev_drv->id);
+ printk("hdmi %s lcdc%d\n",enable?"connect to":"remove from",dev_drv->id);
if(inf->num_lcdc == 1)
{
#elif defined(CONFIG_ONE_LCDC_DUAL_OUTPUT_INF)
info->fbops->fb_pan_display(hdmi_var,info);
#endif
-
+ info->fbops->fb_ioctl(info,RK_FBIOSET_CONFIG_DONE,NULL);
#if defined(CONFIG_NO_DUAL_DISP) //close backlight for device whic do not support dual display
if(!enable)
rk29_backlight_set(1);