hdmi:rk3288/rk3368: polling avi status register instead of delay.

When sending avi introduced by commit 132ad528d0,
we polling avi sending status register until avi is send,  instead of delay 100ms.

Signed-off-by: Zheng Yang <zhengyang@rock-chips.com>
This commit is contained in:
Zheng Yang
2015-08-18 14:15:06 +08:00
parent ddcdb8e5f8
commit 54cbf709c4
2 changed files with 10 additions and 1 deletions

View File

@@ -1132,6 +1132,9 @@ static void hdmi_dev_config_avi(struct hdmi_dev *hdmi_dev,
unsigned char colorimetry, ext_colorimetry, aspect_ratio, y1y0;
unsigned char rgb_quan_range = AVI_QUANTIZATION_RANGE_DEFAULT;
hdmi_msk_reg(hdmi_dev, FC_DATAUTO3, m_AVI_AUTO, v_AVI_AUTO(0));
hdmi_msk_reg(hdmi_dev, IH_FC_STAT1,
m_AVI_INFOFRAME, v_AVI_INFOFRAME(1));
/* Set AVI infoFrame Data byte1 */
if (vpara->color_output == HDMI_COLOR_YCBCR444)
y1y0 = AVI_COLOR_MODE_YCBCR444;
@@ -1200,6 +1203,7 @@ static void hdmi_dev_config_avi(struct hdmi_dev *hdmi_dev,
/* Set AVI infoFrame Data byte5 */
hdmi_msk_reg(hdmi_dev, FC_AVICONF3, m_FC_YQ | m_FC_CN,
v_FC_YQ(YQ_LIMITED_RANGE) | v_FC_CN(CN_GRAPHICS));
hdmi_msk_reg(hdmi_dev, FC_DATAUTO3, m_AVI_AUTO, v_AVI_AUTO(1));
}
static int hdmi_dev_config_vsi(struct hdmi *hdmi,
@@ -1577,6 +1581,10 @@ static int hdmi_dev_control_output(struct hdmi *hdmi, int enable)
vpara.vic = hdmi->vic;
vpara.color_output = HDMI_COLOR_RGB_0_255;
hdmi_dev_config_avi(hdmi_dev, &vpara);
while ((!hdmi_readl(hdmi_dev, IH_FC_STAT1)) &
m_AVI_INFOFRAME) {
usleep_range(900, 1000);
}
}
}
/* if (enable & HDMI_AUDIO_MUTE) {
@@ -1585,7 +1593,6 @@ static int hdmi_dev_control_output(struct hdmi *hdmi, int enable)
v_AUD_PACK_SAMPFIT(0x0F));
}
*/ if (enable == (HDMI_VIDEO_MUTE | HDMI_AUDIO_MUTE)) {
msleep(100);
if (hdmi->ops->hdcp_power_off_cb)
hdmi->ops->hdcp_power_off_cb(hdmi);
rockchip_hdmiv2_powerdown(hdmi_dev);

View File

@@ -118,6 +118,8 @@ enum PHYTYPE {
#define m_AVI_INFOFRAME (1 << 1)
#define m_GCP (1 << 0)
#define v_AVI_INFOFRAME(n) (((n)&0x01) << 1)
#define IH_FC_STAT2 0x0102
#define m_LOWPRIO_OVERFLOW (1 << 1)
#define m_HIGHPRIO_OVERFLOW (1 << 0)