]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
ENGR00171444 HDMI: Change video mode system will hang.
authorSandor Yu <R01008@freescale.com>
Mon, 9 Jan 2012 13:23:33 +0000 (21:23 +0800)
committerLothar Waßmann <LW@KARO-electronics.de>
Fri, 24 May 2013 06:33:47 +0000 (08:33 +0200)
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 <R01008@freescale.com>
drivers/video/mxc_hdmi.c

index 24caf02f3217dbec152d972729e1a186c9dd28be..3c9a52685d4d38042b54be0446b2b4e6615dfccc 100644 (file)
@@ -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 */