rpms/kernel/devel linux-2.6-firewire-git-pending.patch,1.26,1.27
Jarod Wilson (jwilson)
fedora-extras-commits at redhat.com
Mon Apr 7 18:17:56 UTC 2008
Author: jwilson
Update of /cvs/pkgs/rpms/kernel/devel
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv6656
Modified Files:
linux-2.6-firewire-git-pending.patch
Log Message:
One more tiny tweak to jmicron firewire work-around so as not to stomp on ohci spec...
linux-2.6-firewire-git-pending.patch:
Index: linux-2.6-firewire-git-pending.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/linux-2.6-firewire-git-pending.patch,v
retrieving revision 1.26
retrieving revision 1.27
diff -u -r1.26 -r1.27
--- linux-2.6-firewire-git-pending.patch 7 Apr 2008 13:49:26 -0000 1.26
+++ linux-2.6-firewire-git-pending.patch 7 Apr 2008 18:17:19 -0000 1.27
@@ -165,13 +165,15 @@
Update: remove some redundant code
+Update 2: don't clear busReset until bus_reset_tasklet (Stefan Richter)
+
---
- drivers/firewire/fw-ohci.c | 23 ++++++++++++++++++-----
- 1 files changed, 18 insertions(+), 5 deletions(-)
+ drivers/firewire/fw-ohci.c | 26 ++++++++++++++++++++------
+ 1 files changed, 20 insertions(+), 6 deletions(-)
diff --git a/drivers/firewire/fw-ohci.c b/drivers/firewire/fw-ohci.c
-index ad5accd..916bfa7 100644
+index ad5accd..ba0d6b2 100644
--- a/drivers/firewire/fw-ohci.c
+++ b/drivers/firewire/fw-ohci.c
@@ -257,7 +257,8 @@ static void log_irqs(u32 evt)
@@ -211,7 +213,7 @@
+ * is halted, so appending to the context and trying to run it is
+ * futile. Most controllers do the right thing and just flush the AT
+ * queue (per section 7.2.3.2 of the OHCI 1.1 specification), but
-+ * some controllers (like a JMicron JM2380 PCI-e) misbehave and wind
++ * some controllers (like a JMicron JMB381 PCI-e) misbehave and wind
+ * up stalling out. So we just bail out in software and try again
+ * later, and everyone is happy.
+ * FIXME: Document how the locking works.
@@ -221,7 +223,17 @@
if (packet->payload_length > 0)
dma_unmap_single(ohci->card.device, payload_bus,
packet->payload_length, DMA_TO_DEVICE);
-@@ -1455,7 +1468,7 @@ static int ohci_enable(struct fw_card *card, u32 *config_rom, size_t length)
+@@ -1317,7 +1330,8 @@ static irqreturn_t irq_handler(int irq, void *data)
+ if (!event || !~event)
+ return IRQ_NONE;
+
+- reg_write(ohci, OHCI1394_IntEventClear, event);
++ /* busReset must not be cleared yet, see OHCI 1.1 clause 7.2.3.2 */
++ reg_write(ohci, OHCI1394_IntEventClear, event & ~OHCI1394_busReset);
+ log_irqs(event);
+
+ if (event & OHCI1394_selfIDComplete)
+@@ -1455,7 +1469,7 @@ static int ohci_enable(struct fw_card *card, u32 *config_rom, size_t length)
OHCI1394_isochRx | OHCI1394_isochTx |
OHCI1394_postedWriteErr | OHCI1394_cycleTooLong |
OHCI1394_cycle64Seconds | OHCI1394_regAccessFail |
More information about the scm-commits
mailing list