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