Re: [PATCH linux1394-2.6.git] firewire: fw-ohci: add option for remotedebugging - amendment

From: Stefan Richter
Date: Thu Apr 10 2008 - 18:09:17 EST


I wrote:
- Open the physical DMA filter in the top half of the IRQ handler
and flush the necessary MMIO writes. This is to open the filter
as soon as possible after bus reset.
...
--- linux.orig/drivers/firewire/fw-ohci.c
+++ linux/drivers/firewire/fw-ohci.c
@@ -1309,11 +1309,6 @@ static void bus_reset_tasklet(unsigned l
reg_write(ohci, OHCI1394_ConfigROMhdr, ohci->next_header);
}
-#ifdef CONFIG_FIREWIRE_OHCI_REMOTE_DMA
- reg_write(ohci, OHCI1394_PhyReqFilterHiSet, ~0);
- reg_write(ohci, OHCI1394_PhyReqFilterLoSet, ~0);
-#endif
-
spin_unlock_irqrestore(&ohci->lock, flags);
if (free_rom)
@@ -1341,8 +1336,14 @@ static irqreturn_t irq_handler(int irq, reg_write(ohci, OHCI1394_IntEventClear, event & ~OHCI1394_busReset);
log_irqs(event);
- if (event & OHCI1394_selfIDComplete)
+ if (event & OHCI1394_selfIDComplete) {
+#ifdef CONFIG_FIREWIRE_OHCI_REMOTE_DMA
+ reg_write(ohci, OHCI1394_PhyReqFilterHiSet, ~0);
+ reg_write(ohci, OHCI1394_PhyReqFilterLoSet, ~0);
+ flush_writes(ohci);
+#endif
tasklet_schedule(&ohci->bus_reset_tasklet);
+ }

I retract this part of the patch. Writes to PhyReqFilter have no effect as long as intEvent.busReset isn't cleared. This happens in the bottom half of the bus reset handler (bus_reset_tasklet).

The rest of the patch stays valid.
--
Stefan Richter
-=====-==--- -=-- -=-==
http://arcgraph.de/sr/
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/