From e0963b1c2c70d9a4a979aebefebda1ea39ca0cdd Mon Sep 17 00:00:00 2001 From: Sandor Yu Date: Mon, 9 Jan 2012 21:23:33 +0800 Subject: [PATCH] ENGR00171444 HDMI: Change video mode system will hang. There are two couples register for HDMI PHY interrupt/mask: HDMI_FC_INT2, HDMI_FC_MASK2 and HDMI_IH_FC_STAT2, HDMI_IH_MUTE_FC_STAT2. The register can not mixed use it, otherwise the interrupt will missing and not clean. Mask interrupt with HDMI_IH_MUTE_FC_STAT2 so check interrupt should use register HDMI_IH_FC_STAT2. Signed-off-by: Sandor Yu --- drivers/video/mxc_hdmi.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/drivers/video/mxc_hdmi.c b/drivers/video/mxc_hdmi.c index 24caf02f3217..3c9a52685d4d 100644 --- a/drivers/video/mxc_hdmi.c +++ b/drivers/video/mxc_hdmi.c @@ -1791,7 +1791,7 @@ static void hotplug_worker(struct work_struct *work) phy_int_mask &= ~HDMI_PHY_HPD; hdmi_writeb(phy_int_mask, HDMI_PHY_MASK0); - if (hdmi_readb(HDMI_FC_INT2) & HDMI_FC_INT2_OVERFLOW_MASK) + if (hdmi_readb(HDMI_IH_FC_STAT2) & HDMI_IH_FC_STAT2_OVERFLOW_MASK) mxc_hdmi_clear_overflow(); /* We keep the iahb clock enabled only if we are plugged in. */ @@ -1822,7 +1822,8 @@ static irqreturn_t mxc_hdmi_hotplug(int irq, void *data) */ ret = hdmi_irq_disable(irq); if (ret == IRQ_DISABLE_FAIL) { - if (hdmi_readb(HDMI_FC_INT2) & HDMI_FC_INT2_OVERFLOW_MASK) { + if (hdmi_readb(HDMI_IH_FC_STAT2) & + HDMI_IH_FC_STAT2_OVERFLOW_MASK) { mxc_hdmi_clear_overflow(); /* clear irq status */ -- 2.39.5