public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [patch] usb-uhci.c: fix for PCI-lockups/IRQ problems
@ 2000-11-30 10:08 Georg Acher
  2000-12-01  1:25 ` [linux-usb-devel] " Miles Lane
  0 siblings, 1 reply; 4+ messages in thread
From: Georg Acher @ 2000-11-30 10:08 UTC (permalink / raw)
  To: linux-usb-devel; +Cc: johannes, linux-kernel, linux-usb-users

[-- Attachment #1: Type: text/plain, Size: 443 bytes --]

Hi,
test12-pre3 had a large set of patches to usb-uhci.c. One small detail of
this patch can make the driver to lockup the PCI bus with certain UHCI-chips
(only Intel but not VIA, of course not on my machines...). This patch should 
fix that.
It also includes Linus' patch for the IRQ-setup.
-- 
         Georg Acher, acher@in.tum.de         
         http://www.in.tum.de/~acher/
          "Oh no, not again !" The bowl of petunias          

[-- Attachment #2: usb-uhci.patch --]
[-- Type: text/plain, Size: 1419 bytes --]

diff -u linux/drivers/usb/usb-uhci.c linux.afs/drivers/usb/usb-uhci.c
--- linux/drivers/usb/usb-uhci.c	Thu Nov 30 10:49:54 2000
+++ linux.afs/drivers/usb/usb-uhci.c	Thu Nov 30 10:47:54 2000
@@ -16,7 +16,7 @@
  * (C) Copyright 1999 Randy Dunlap
  * (C) Copyright 1999 Gregory P. Smith
  *
- * $Id: usb-uhci.c,v 1.249 2000/11/21 12:03:34 acher Exp $
+ * $Id: usb-uhci.c,v 1.251 2000/11/30 09:47:54 acher Exp $
  */
 
 #include <linux/config.h>
@@ -52,7 +52,7 @@
 /* This enables an extra UHCI slab for memory debugging */
 #define DEBUG_SLAB
 
-#define VERSTR "$Revision: 1.249 $ time " __TIME__ " " __DATE__
+#define VERSTR "$Revision: 1.251 $ time " __TIME__ " " __DATE__
 
 #include <linux/usb.h>
 #include "usb-uhci.h"
@@ -582,6 +582,7 @@
 	
 	fill_td (td, 0 * TD_CTRL_IOC, 0, 0); // generate 1ms interrupt (enabled on demand)
 	insert_td (s, qh, td, 0);
+	qh->hw.qh.element &= ~UHCI_PTR_TERM; // remove TERM bit
 	s->td1ms=td;
 
 	dbg("allocating qh: bulk_chain");
@@ -2916,6 +2917,9 @@
 		return -1;
 	}
 
+	/* Enable PIRQ */
+	pci_write_config_word (dev, USBLEGSUP, USBLEGSUP_DEFAULT);
+
 	s->irq = irq;
 
 	if(uhci_start_usb (s) < 0) {
@@ -2951,7 +2955,7 @@
 		if (check_region (io_addr, io_size))
 			break;
 		/* disable legacy emulation */
-		pci_write_config_word (dev, USBLEGSUP, USBLEGSUP_DEFAULT);
+		pci_write_config_word (dev, USBLEGSUP, 0);
 	
 		return alloc_uhci(dev, dev->irq, io_addr, io_size);
 	}

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2000-12-12 13:40 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2000-11-30 10:08 [patch] usb-uhci.c: fix for PCI-lockups/IRQ problems Georg Acher
2000-12-01  1:25 ` [linux-usb-devel] " Miles Lane
2000-12-12 10:56   ` linux-2.4.0-test12 problem with init Bill Maidment
2000-12-12 13:09     ` Mike Galbraith

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox