Merge branch 'develop-3.10' of ssh://10.10.10.29/rk/kernel into develop-3.10
authorzwl <zwl@rockchips.com>
Wed, 19 Mar 2014 09:01:05 +0000 (17:01 +0800)
committerzwl <zwl@rockchips.com>
Wed, 19 Mar 2014 09:01:05 +0000 (17:01 +0800)
1  2 
drivers/video/rockchip/rk_fb.c

index 9f1fe4432d072203f62088d7e9c0ce7a983fd4a9,ab651d3bcb1598f69e15f71ebca6795fd3a85719..4d6fb0f2d50531e05ebc6181921efeca2d440056
@@@ -1133,7 -1133,7 +1133,7 @@@ static void rk_fb_update_reg(struct rk_
        }
        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, &regs->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;
                }
@@@ -1688,6 -1688,15 +1688,6 @@@ static int rk_fb_ioctl(struct fb_info *
                        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);
@@@ -2399,7 -2408,7 +2399,7 @@@ int rk_fb_switch_screen(struct rk_scree
        } 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);
@@@ -2485,8 -2494,7 +2485,8 @@@ int rk_fb_disp_scale(u8 scale_x, u8 sca
        }
  
        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;
  
  
@@@ -2506,8 -2514,6 +2506,6 @@@ static int rk_fb_alloc_buffer(struct fb
  #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;
@@@ -2877,48 -2884,6 +2876,6 @@@ int rk_fb_unregister(struct rk_lcdc_dri
  }
  
  
- #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;
@@@ -2982,9 -2943,6 +2935,6 @@@ static void rk_fb_shutdown(struct platf
  
        }
  
- #if   defined(CONFIG_HAS_EARLYSUSPEND)
-       unregister_early_suspend(&suspend_info.early_suspend);
- #endif
  }