mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-08 11:50:43 +09:00
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:
@@ -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);
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user