}
dev_drv->ops->ovl_mgr(dev_drv, 0, 1);
- if(rk_fb->disp_mode == DUAL && hdmi_switch_complete) {
+ if (rk_fb->disp_mode == DUAL && hdmi_switch_complete) {
for (i = 0; i < rk_fb->num_lcdc; i++) {
if(rk_fb->lcdc_dev_drv[i]->prop == EXTEND) {
ext_dev_drv = rk_fb->lcdc_dev_drv[i];
//hdmi just need set win0 only(win0 have only one area),other win is disable
ext_win = ext_dev_drv->win[0];
- for(j = 0;j < regs->win_num; j++) {
+ for (j = 0;j < regs->win_num; j++) {
if(0 == regs->reg_win_data[j].win_id)
break;
}
- if(j < regs->win_num){
+ if (j < regs->win_num){
rk_fb_update_driver(ext_win, ®s->reg_win_data[j]);
ext_win->area[0].xpos = (ext_dev_drv->cur_screen->mode.xres - ext_dev_drv->cur_screen->xsize)>>1;
ext_win->area[0].ypos = (ext_dev_drv->cur_screen->mode.yres - ext_dev_drv->cur_screen->ysize)>>1;
}
//disable the other win,except win0
- for(i = 1; i < ext_dev_drv->lcdc_win_num; i ++) {
+ for (i = 1; i < ext_dev_drv->lcdc_win_num; i ++) {
ext_win = ext_dev_drv->win[i];
ext_win->state = 0;
}
break;
}
memset(&win_data, 0, sizeof(struct rk_fb_win_cfg_data));
-
- if (rk_fb->disp_mode == DUAL) {
- if (extend_win->state && (hdmi_switch_complete)) {
- if (rk_fb->num_fb >= 2) {
- if (extend_dev_drv->ops->lcdc_reg_update)
- extend_dev_drv->ops->lcdc_reg_update(extend_dev_drv);
- }
- }
- }
break;
default:
dev_drv->ops->ioctl(dev_drv, cmd, arg, win_id);
} else {
info->fbops->fb_pan_display(hdmi_var, info);
}
- info->fbops->fb_ioctl(info, RK_FBIOSET_CONFIG_DONE, 0);
+ //info->fbops->fb_ioctl(info, RK_FBIOSET_CONFIG_DONE, 0);
if (dev_drv->screen1) {
if (dev_drv->screen0->sscreen_set) {
dev_drv->ops->blank(dev_drv, 0, FB_BLANK_NORMAL);
}
info->fbops->fb_set_par(info);
- info->fbops->fb_ioctl(info, RK_FBIOSET_CONFIG_DONE, 0);
+ //info->fbops->fb_ioctl(info, RK_FBIOSET_CONFIG_DONE, 0);
+ dev_drv->ops->cfg_done(dev_drv);
return 0;
#ifdef USE_ION_MMU
struct dma_buf *buf;
#else
- dma_addr_t fb_mem_phys;
- void *fb_mem_virt;
size_t len;
#endif
#endif
}
win->area[0].ion_hdl = handle;
fbi->screen_base = ion_map_kernel(rk_fb->ion_client, handle);
- #ifndef USE_ION_MMU
+ #ifndef USE_ION_MMU
ion_phys(rk_fb->ion_client, handle, &phy_addr, &len);
fbi->fix.smem_start = phy_addr;
fbi->fix.smem_len = len;
- printk(KERN_INFO "alloc_buffer:ion_phy_addr=0x%x\n",phy_addr);
- #else
+ printk(KERN_INFO "alloc_buffer:ion_phy_addr=0x%lx\n",phy_addr);
+ #else
buf = ion_share_dma_buf(rk_fb->ion_client, handle);
if (IS_ERR_OR_NULL(buf)) {
dev_err(fbi->device, "ion_share_dma_buf() failed\n");
fbi->fix.smem_len = buf->size;
printk(KERN_INFO "alloc_buffer:kernel_vir_addr=0x%x,mmu_vir_addr=0x%x,len=0x%x\n",
fbi->screen_base,fbi->fix.smem_start,fbi->fix.smem_len);
- #endif
+ #endif
#else
-
- fb_mem_virt = dma_alloc_writecombine(fbi->dev, fb_mem_size, &fb_mem_phys,
- GFP_KERNEL);
+ dma_addr_t fb_mem_phys;
+ void *fb_mem_virt;
+ fb_mem_virt = dma_alloc_writecombine(fbi->dev, fb_mem_size,
+ &fb_mem_phys,GFP_KERNEL);
if (!fb_mem_virt) {
pr_err("%s: Failed to allocate framebuffer\n", __func__);
return -ENOMEM;
}
-
- #if defined(CONFIG_HAS_EARLYSUSPEND)
- struct suspend_info {
- struct early_suspend early_suspend;
- struct rk_fb *inf;
- };
-
- static void rkfb_early_suspend(struct early_suspend *h)
- {
- struct suspend_info *info = container_of(h, struct suspend_info,
- early_suspend);
- struct rk_fb *inf = info->inf;
- int i;
- for (i = 0; i < inf->num_lcdc; i++) {
- if (!inf->lcdc_dev_drv[i])
- continue;
- inf->lcdc_dev_drv[i]->suspend(inf->lcdc_dev_drv[i]);
- }
- }
- static void rkfb_early_resume(struct early_suspend *h)
- {
- struct suspend_info *info = container_of(h, struct suspend_info,
- early_suspend);
- struct rk_fb *inf = info->inf;
- int i;
- for (i = 0; i < inf->num_lcdc; i++) {
- if (!inf->lcdc_dev_drv[i])
- continue;
- inf->lcdc_dev_drv[i]->resume(inf->lcdc_dev_drv[i]);
- }
-
- }
-
-
-
- static struct suspend_info suspend_info = {
- .early_suspend.suspend = rkfb_early_suspend,
- .early_suspend.resume = rkfb_early_resume,
- .early_suspend.level = EARLY_SUSPEND_LEVEL_DISABLE_FB,
- };
- #endif
-
static int rk_fb_probe(struct platform_device *pdev)
{
struct rk_fb *rk_fb = NULL;
}
#endif
- #if defined(CONFIG_HAS_EARLYSUSPEND)
- suspend_info.inf = rk_fb;
- register_early_suspend(&suspend_info.early_suspend);
- #endif
fb_pdev = pdev;
dev_info(&pdev->dev, "rockchip framebuffer driver probe\n");
return 0;
}
- #if defined(CONFIG_HAS_EARLYSUSPEND)
- unregister_early_suspend(&suspend_info.early_suspend);
- #endif
}