aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/usb
diff options
context:
space:
mode:
authorGreg Kroah-Hartman <gregkh@suse.de>2011-04-14 16:37:07 -0400
committerGreg Kroah-Hartman <gregkh@suse.de>2011-04-14 16:37:07 -0400
commit753d8534cc190ed144caebc2ea49ab7a43dca662 (patch)
tree58f927b3a12dd3e8f598d80aeb38ec026c6b8024 /drivers/usb
parentc41136b05d3fb213a192f76a5688ff83687c1136 (diff)
Revert "USB: isp1760-hcd: move imask clear after pending work is done"
This reverts commit 5808544690300071f09eef9ab83a0fb1f60cf1cd. To quote Richard: I don't think this should be mainlined. It was a misunderstanding on my part. If you see all the other hdc drivers in the same location, they all do the same thing (i.e. clear the interrupt status first, then do the work) that "glitch" I think I saw was actually two back-to-back interrupts. Sebastian (the original author of isp1760) explained it to me a few days after my submission. sorry for the confusion Cc: Richard Retanubun <RichardRetanubun@ruggedcom.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/usb')
-rw-r--r--drivers/usb/host/isp1760-hcd.c4
1 files changed, 1 insertions, 3 deletions
diff --git a/drivers/usb/host/isp1760-hcd.c b/drivers/usb/host/isp1760-hcd.c
index 564b03337e7e..795345ad45e6 100644
--- a/drivers/usb/host/isp1760-hcd.c
+++ b/drivers/usb/host/isp1760-hcd.c
@@ -1676,15 +1676,13 @@ static irqreturn_t isp1760_irq(struct usb_hcd *hcd)
1676 if (unlikely(!imask)) 1676 if (unlikely(!imask))
1677 goto leave; 1677 goto leave;
1678 1678
1679 reg_write32(hcd->regs, HC_INTERRUPT_REG, imask);
1679 if (imask & (HC_ATL_INT | HC_SOT_INT)) 1680 if (imask & (HC_ATL_INT | HC_SOT_INT))
1680 do_atl_int(hcd); 1681 do_atl_int(hcd);
1681 1682
1682 if (imask & HC_INTL_INT) 1683 if (imask & HC_INTL_INT)
1683 do_intl_int(hcd); 1684 do_intl_int(hcd);
1684 1685
1685 /* Clear interrupt mask on device after the work is done */
1686 reg_write32(hcd->regs, HC_INTERRUPT_REG, imask);
1687
1688 irqret = IRQ_HANDLED; 1686 irqret = IRQ_HANDLED;
1689leave: 1687leave:
1690 spin_unlock(&priv->lock); 1688 spin_unlock(&priv->lock);