diff --git a/drivers/video/rockchip/hdmi/rockchip-hdmiv2/rockchip_hdmiv2_hw.c b/drivers/video/rockchip/hdmi/rockchip-hdmiv2/rockchip_hdmiv2_hw.c index 4106858b6b2d..ef98b201b3b3 100755 --- a/drivers/video/rockchip/hdmi/rockchip-hdmiv2/rockchip_hdmiv2_hw.c +++ b/drivers/video/rockchip/hdmi/rockchip-hdmiv2/rockchip_hdmiv2_hw.c @@ -462,23 +462,30 @@ static int rockchip_hdmiv2_config_phy(struct hdmi_dev *hdmi_dev) v_MPLL_GMP_CNTRL( phy_mpll->gmp_cntrl)); } - rockchip_hdmiv2_write_phy(hdmi_dev, PHYTX_TERM_RESIS, - v_TX_TERM(R50_OHMS)); + rockchip_hdmiv2_write_phy(hdmi_dev, PHYTX_CLKSYMCTRL, v_OVERRIDE(1) | v_SLOPEBOOST(0) | v_TX_SYMON(1) | v_TX_TRAON(0) | v_TX_TRBON(0) | v_CLK_SYMON(1)); - if (hdmi_dev->tmdsclk > 340000000) + if (hdmi_dev->tmdsclk > 340000000) { + rockchip_hdmiv2_write_phy(hdmi_dev, PHYTX_TERM_RESIS, + v_TX_TERM(R50_OHMS)); rockchip_hdmiv2_write_phy(hdmi_dev, PHYTX_VLEVCTRL, - v_SUP_TXLVL(9) | v_SUP_CLKLVL(17)); - else if (hdmi_dev->tmdsclk > 165000000) - rockchip_hdmiv2_write_phy(hdmi_dev, PHYTX_VLEVCTRL, - v_SUP_TXLVL(14) | v_SUP_CLKLVL(17)); - else - rockchip_hdmiv2_write_phy(hdmi_dev, PHYTX_VLEVCTRL, - v_SUP_TXLVL(18) | v_SUP_CLKLVL(17)); - - rockchip_hdmiv2_write_phy(hdmi_dev, 0x05, 0x8000); + v_SUP_TXLVL(9) | + v_SUP_CLKLVL(17)); + } else { + rockchip_hdmiv2_write_phy(hdmi_dev, PHYTX_TERM_RESIS, + v_TX_TERM(R100_OHMS)); + if (hdmi_dev->tmdsclk > 165000000) + rockchip_hdmiv2_write_phy(hdmi_dev, PHYTX_VLEVCTRL, + v_SUP_TXLVL(14) | + v_SUP_CLKLVL(17)); + else + rockchip_hdmiv2_write_phy(hdmi_dev, PHYTX_VLEVCTRL, + v_SUP_TXLVL(18) | + v_SUP_CLKLVL(17)); + } + /* rockchip_hdmiv2_write_phy(hdmi_dev, 0x05, 0x8000); */ if (hdmi_dev->tmdsclk_ratio_change) msleep(100); /* power on PHY */