rk312x:lcdc: fix get dsp info err
authorzwl <zwl@rockchips.com>
Tue, 26 Aug 2014 14:11:14 +0000 (22:11 +0800)
committerzwl <zwl@rockchips.com>
Tue, 26 Aug 2014 14:11:43 +0000 (22:11 +0800)
drivers/video/rockchip/lcdc/rk312x_lcdc.c

index eb05976dcdf3da625d0c785480eea02b745bb7c5..90d36b666fe1518ed844a5c83327ec13e5d17abb 100755 (executable)
@@ -1812,16 +1812,25 @@ static ssize_t rk312x_lcdc_get_disp_info(struct rk_lcdc_driver *dev_drv,
                 x_act_w0 = (act_info & m_ACT_WIDTH) + 1;
                y_act_w0 = ((act_info & m_ACT_HEIGHT) >> 16) + 1;
 
-                act_info = lcdc_readl(lcdc_dev, WIN1_ACT_INFO);
-                x_act_w1 = (act_info & m_ACT_WIDTH) + 1;
-               y_act_w1 = ((act_info & m_ACT_HEIGHT) >> 16) + 1;
+               if (lcdc_dev->soc_type == VOP_RK3036) {
+                       act_info = lcdc_readl(lcdc_dev, WIN1_ACT_INFO);
+                       x_act_w1 = (act_info & m_ACT_WIDTH) + 1;
+                       y_act_w1 = ((act_info & m_ACT_HEIGHT) >> 16) + 1;
+               } else if (lcdc_dev->soc_type == VOP_RK312X) {
+                       /* rk312x unsupport win1 scaler,so have no act info */
+                       x_act_w1 = 0;
+                       y_act_w1 = 0;
+               }
 
                 /* xsize/ysize */
                dsp_info = lcdc_readl(lcdc_dev, WIN0_DSP_INFO);
                 x_dsp_w0 = (dsp_info & m_DSP_WIDTH) + 1;
                y_dsp_w0 = ((dsp_info & m_DSP_HEIGHT) >> 16) + 1;
 
-                dsp_info = lcdc_readl(lcdc_dev, WIN1_DSP_INFO);
+               if (lcdc_dev->soc_type == VOP_RK3036)
+                       dsp_info = lcdc_readl(lcdc_dev, WIN1_DSP_INFO);
+               else if (lcdc_dev->soc_type == VOP_RK312X)
+                       dsp_info = lcdc_readl(lcdc_dev, WIN1_DSP_INFO_RK312X);
                 x_dsp_w1 = (dsp_info & m_DSP_WIDTH) + 1;
                 y_dsp_w1 = ((dsp_info & m_DSP_HEIGHT) >> 16) + 1;