* [PATCH 2/2] usb: Remove OHCI useless masking/unmasking of WDH interrupt
@ 2007-11-25 22:54 Benjamin Herrenschmidt
2007-12-06 21:29 ` David Brownell
0 siblings, 1 reply; 2+ messages in thread
From: Benjamin Herrenschmidt @ 2007-11-25 22:54 UTC (permalink / raw)
To: David Brownell; +Cc: linuxppc-dev, linux-usb-devel
The OHCI driver's IRQ handler, while processing a WDH interrupt, masks
and unmasks it. I believe this is both broken (no dealign with write
posting) and totally useless as the IRQ cannot re-occur while we are in
the handler anyway.
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
---
It might be a leftover related to the bogus optmisation that I've removed
in a separate patch. Anyway, I don't think it's any use so let's remove
to useless MMIO writes.
drivers/usb/host/ohci-hcd.c | 4 ----
1 file changed, 4 deletions(-)
Index: linux-work/drivers/usb/host/ohci-hcd.c
===================================================================
--- linux-work.orig/drivers/usb/host/ohci-hcd.c 2007-11-26 09:17:52.000000000 +1100
+++ linux-work/drivers/usb/host/ohci-hcd.c 2007-11-26 09:17:58.000000000 +1100
@@ -807,13 +807,9 @@ static irqreturn_t ohci_irq (struct usb_
}
if (ints & OHCI_INTR_WDH) {
- if (HC_IS_RUNNING(hcd->state))
- ohci_writel (ohci, OHCI_INTR_WDH, ®s->intrdisable);
spin_lock (&ohci->lock);
dl_done_list (ohci);
spin_unlock (&ohci->lock);
- if (HC_IS_RUNNING(hcd->state))
- ohci_writel (ohci, OHCI_INTR_WDH, ®s->intrenable);
}
if (quirk_zfmicro(ohci) && (ints & OHCI_INTR_SF)) {
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: [PATCH 2/2] usb: Remove OHCI useless masking/unmasking of WDH interrupt
2007-11-25 22:54 [PATCH 2/2] usb: Remove OHCI useless masking/unmasking of WDH interrupt Benjamin Herrenschmidt
@ 2007-12-06 21:29 ` David Brownell
0 siblings, 0 replies; 2+ messages in thread
From: David Brownell @ 2007-12-06 21:29 UTC (permalink / raw)
To: Greg KH; +Cc: linux-usb-devel, linuxppc-dev
From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Subject: [PATCH 2/2] usb: Remove OHCI useless masking/unmasking of WDH interrupt
The OHCI driver's IRQ handler, while processing a WDH interrupt, masks
and unmasks it. I believe this is both broken (the write may still be
posted during the donelist processing it's trying to safeguard) and
useless as this IRQ may not be reissued until it's acked (unless this
legacy code is an uncommented workaround for some chip erratum).
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
---
Worth IMO holding till 2.6.25-early.
--- g26.orig/drivers/usb/host/ohci-hcd.c 2007-12-06 08:42:24.000000000 -0800
+++ g26/drivers/usb/host/ohci-hcd.c 2007-12-06 08:42:29.000000000 -0800
@@ -807,13 +807,9 @@ static irqreturn_t ohci_irq (struct usb_
}
if (ints & OHCI_INTR_WDH) {
- if (HC_IS_RUNNING(hcd->state))
- ohci_writel (ohci, OHCI_INTR_WDH, ®s->intrdisable);
spin_lock (&ohci->lock);
dl_done_list (ohci);
spin_unlock (&ohci->lock);
- if (HC_IS_RUNNING(hcd->state))
- ohci_writel (ohci, OHCI_INTR_WDH, ®s->intrenable);
}
if (quirk_zfmicro(ohci) && (ints & OHCI_INTR_SF)) {
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2007-12-06 21:29 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-11-25 22:54 [PATCH 2/2] usb: Remove OHCI useless masking/unmasking of WDH interrupt Benjamin Herrenschmidt
2007-12-06 21:29 ` David Brownell
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).