rk fb: fix boot image disp err for hdmi
authorzwl <zwl@rock-chips.com>
Thu, 8 May 2014 12:55:36 +0000 (20:55 +0800)
committerzwl <zwl@rock-chips.com>
Thu, 8 May 2014 12:55:36 +0000 (20:55 +0800)
drivers/video/rockchip/hdmi/chips/rk3288/rk3288_hdmi_hw.c
drivers/video/rockchip/rk_fb.c

index a15450039cb8dbc969136ea5837d44b270d3bebd..b34c973fedf2860893b6ba98446eb60936f86bd4 100644 (file)
@@ -67,8 +67,7 @@ static void rk3288_hdmi_set_pwr_mode(struct hdmi *hdmi_drv, int mode)
                        hdmi_writel(hdmi_dev, MC_CLKDIS, 0x00);
                        break;
                case LOWER_PWR:
-                       //hdmi_msk_reg(hdmi_dev, MC_CLKDIS, m_AUDCLK_DISABLE | m_PREPCLK_DISABLE | m_TMDSCLK_DISABLE | m_PIXELCLK_DISABLE,
-                               //v_AUDCLK_DISABLE(1) | v_PREPCLK_DISABLE(1) | v_TMDSCLK_DISABLE(1) | v_PIXELCLK_DISABLE(1));
+                       hdmi_writel(hdmi_dev, MC_CLKDIS, 0xff);
                        hdmi_msk_reg(hdmi_dev, PHY_CONF0, m_TMDS_EN | m_TXPWRON_SIG | m_ENHPD_RXSENSE_SIG,
                                v_TMDS_EN(0) | v_TXPWRON_SIG(0) | v_ENHPD_RXSENSE_SIG(1));
                        break;
@@ -260,7 +259,6 @@ static int rk3288_hdmi_video_frameComposer(struct hdmi *hdmi_drv, struct hdmi_vi
                hdmi_drv->tmdsclk = mode->pixclock;
                break;
        }
-       rk3288_hdmi_config_phy(hdmi_drv, vpara->pixel_repet, vpara->color_depth);
 
        hdmi_msk_reg(hdmi_dev, A_HDCPCFG0, m_ENCRYPT_BYPASS | m_HDMI_DVI,
                v_ENCRYPT_BYPASS(1) | v_HDMI_DVI(vpara->output_mode));  //cfg to bypass hdcp data encrypt
@@ -939,7 +937,8 @@ int rk3288_hdmi_config_video(struct hdmi *hdmi_drv, struct hdmi_video_para *vpar
                hdmi_dbg(hdmi_drv->dev, "[%s] sucess output DVI.\n", __FUNCTION__);
        }
 
-       //rk3288_hdmi_control_output(hdmi_drv, 0);
+       rk3288_hdmi_set_pwr_mode(hdmi_drv, NORMAL);
+       rk3288_hdmi_config_phy(hdmi_drv, vpara->pixel_repet, vpara->color_depth);
        return 0;
 }
 
index 272543bfa89b5a768e4a54af5029c92253af6fda..809a1b78df6dd67d235118c1e7bfb3e05fd83f45 100755 (executable)
@@ -937,6 +937,9 @@ static int rk_fb_pan_display(struct fb_var_screeninfo *var, struct fb_info *info
                        extend_win->area[0].y_offset = win->area[0].y_offset;
                #if defined(CONFIG_FB_ROTATE) || !defined(CONFIG_THREE_FB_BUFFER)
                        rk_fb_rotate(extend_info, info, win->area[0].y_offset);
+               #else
+                       extend_win->area[0].smem_start = win->area[0].smem_start;
+                       extend_win->area[0].cbr_start = win->area[0].cbr_start;
                #endif
                        extend_dev_drv->ops->pan_display(extend_dev_drv, extend_win_id);
                }
@@ -2262,10 +2265,7 @@ if (rk_fb->disp_mode != DUAL) {
                                        extend_win->area[0].xsize = extend_dev_drv->cur_screen->xsize;
                                        extend_win->area[0].ysize = extend_dev_drv->cur_screen->ysize;
                                }
-                       #if !defined(CONFIG_FB_ROTATE) && defined(CONFIG_THREE_FB_BUFFER)
-                               extend_win->area[0].smem_start = win->area[0].smem_start;
-                               extend_win->area[0].cbr_start = win->area[0].cbr_start;
-                       #endif
+
                                extend_win->area[0].state = 1;
                                extend_win->area_num = 1;
                                extend_win->alpha_en = 0;