return fmt;
}
+int rk_fb_set_vop_pwm(void)
+{
+ int i = 0;
+ struct rk_fb *inf = NULL;
+ struct rk_lcdc_driver *dev_drv = NULL;
+
+ if (likely(fb_pdev))
+ inf = platform_get_drvdata(fb_pdev);
+ else
+ return -1;
+
+ for (i = 0; i < inf->num_lcdc; i++) {
+ if (inf->lcdc_dev_drv[i]->cabc_mode == 1) {
+ dev_drv = inf->lcdc_dev_drv[i];
+ break;
+ }
+ }
+
+ if (!dev_drv)
+ return -1;
+
+ mutex_lock(&dev_drv->win_config);
+ dev_drv->ops->cfg_done(dev_drv);
+ mutex_unlock(&dev_drv->win_config);
+
+ return 0;
+}
+
/*
* this is for hdmi
* name: lcdc device name ,lcdc0 , lcdc1
}
}
+ mutex_lock(&dev_drv->win_config);
for (i = 0; i < dev_drv->lcdc_win_num; i++) {
win = dev_drv->win[i];
win_data = rk_fb_get_win_data(regs, i);
if (win_data) {
- mutex_lock(&dev_drv->win_config);
rk_fb_update_win(dev_drv, win, win_data);
win->state = 1;
dev_drv->ops->set_par(dev_drv, i);
dev_drv->ops->pan_display(dev_drv, i);
- mutex_unlock(&dev_drv->win_config);
} else {
win->z_order = -1;
win->state = 0;
dev_drv->ops->cfg_done(dev_drv);
else
sw_sync_timeline_inc(dev_drv->timeline, 1);
+ mutex_unlock(&dev_drv->win_config);
do {
timestamp = dev_drv->vsync_info.timestamp;
extern int rk_fb_unregister(struct rk_lcdc_driver *dev_drv);
extern struct rk_lcdc_driver *rk_get_lcdc_drv(char *name);
extern int rk_fb_get_extern_screen(struct rk_screen *screen);
+extern int rk_fb_set_vop_pwm(void);
extern int rk_fb_get_prmry_screen( struct rk_screen *screen);
extern int rk_fb_set_prmry_screen(struct rk_screen *screen);
extern u32 rk_fb_get_prmry_screen_pixclock(void);