Skip to content

Commit

Permalink
USB: isp1760-hcd: move imask clear after pending work is done
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Richard Retanubun authored and Greg Kroah-Hartman committed Apr 13, 2011
1 parent d834508 commit 5808544
Showing 1 changed file with 3 additions and 1 deletion.
4 changes: 3 additions & 1 deletion drivers/usb/host/isp1760-hcd.c
Original file line number Diff line number Diff line change
Expand Up @@ -1676,13 +1676,15 @@ static irqreturn_t isp1760_irq(struct usb_hcd *hcd)
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);
Expand Down

0 comments on commit 5808544

Please sign in to comment.