3028a hdmi: improve Signal consistency
authorxuhuicong <xhc@rock-chips.com>
Fri, 2 Aug 2013 08:44:35 +0000 (16:44 +0800)
committerxuhuicong <xhc@rock-chips.com>
Fri, 2 Aug 2013 08:44:35 +0000 (16:44 +0800)
drivers/video/rockchip/hdmi/chips/rk616/rk616_hdmi_hw.c
drivers/video/rockchip/hdmi/rk_hdmi_lcdc.c

index 84f8333d969d4121ec5d6ebcbd651dc17e141a91..31329551f0ef24ada2c9649235984e91d8c9b4a5 100755 (executable)
@@ -100,13 +100,13 @@ static void rk616_hdmi_set_pwr_mode(int mode)
      case NORMAL:
             hdmi_dbg(hdmi->dev,"%s change pwr_mode NORMALpwr_mode = %d, mode = %d\n",__FUNCTION__,hdmi->pwr_mode,mode);
                rk616_hdmi_sys_power_down();
-                if (hdmi->set_vif) {
+                if (!(hdmi->set_vif) && (hdmi->vic == HDMI_1920x1080p_60Hz || hdmi->vic == HDMI_1920x1080p_50Hz)) {
+                        /* 3026 and 1080p */
+                       hdmi_writel(PHY_DRIVER,0xcc);
+                       hdmi_writel(PHY_PRE_EMPHASIS,0x4f);
+                } else {
                        hdmi_writel(PHY_DRIVER,0xaa);
                        hdmi_writel(PHY_PRE_EMPHASIS,0x0f);
-                } else {
-                        /* 3026 */
-                       hdmi_writel(PHY_DRIVER,0xbb);
-                       hdmi_writel(PHY_PRE_EMPHASIS,0x4f);
                 }
                hdmi_writel(PHY_SYS_CTL,0x2d);
                hdmi_writel(PHY_SYS_CTL,0x2c);
index d2f1bef1e1b5e1844c93772b581c04e5ad83af10..2b43dad334fb5eb385f8156b6bc4481eb95680cf 100755 (executable)
@@ -107,10 +107,11 @@ int hdmi_set_info(struct rk29fb_screen *screen, unsigned int vic)
        screen->hdmi_resolution = hdmi_mode[i].flag;
 
        /* Pin polarity */
-#ifdef CONFIG_HDMI_RK616
+#if defined(CONFIG_HDMI_RK616) && !defined(CONFIG_ARCH_RK3026)
        screen->pin_hsync = 0;
        screen->pin_vsync = 0;
 #else 
+       screen->pin_hsync = 0;
        if(FB_SYNC_HOR_HIGH_ACT & hdmi_mode[i].sync)
                screen->pin_hsync = 1;
        else