From: Sandor Yu Date: Mon, 9 Jan 2012 13:23:33 +0000 (+0800) Subject: ENGR00171444 HDMI: Change video mode system will hang. X-Git-Tag: v3.0.35-fsl~1654 X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=e0963b1c2c70d9a4a979aebefebda1ea39ca0cdd;p=karo-tx-linux.git 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 --- 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 */