This patch moves the HcInterrupt register write to clear the
pending interrupt to after the isr work is done, doing this removes
glitches in the irq line.
Signed-off-by: Richard Retanubun <richardretanubun@ruggedcom.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
        if (unlikely(!imask))
                goto leave;
 
-       reg_write32(hcd->regs, HC_INTERRUPT_REG, imask);
        if (imask & (HC_ATL_INT | HC_SOT_INT))
                do_atl_int(hcd);
 
        if (imask & HC_INTL_INT)
                do_intl_int(hcd);
 
+       /* Clear interrupt mask on device after the work is done */
+       reg_write32(hcd->regs, HC_INTERRUPT_REG, imask);
+
        irqret = IRQ_HANDLED;
 leave:
        spin_unlock(&priv->lock);