linux-kernel.vger.kernel.org archive mirror
 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

* Re: [linux-usb-devel] [patch] usb-uhci.c: fix for PCI-lockups/IRQ problems
  2000-11-30 10:08 [patch] usb-uhci.c: fix for PCI-lockups/IRQ problems Georg Acher
@ 2000-12-01  1:25 ` Miles Lane
  2000-12-12 10:56   ` linux-2.4.0-test12 problem with init Bill Maidment
  0 siblings, 1 reply; 4+ messages in thread
From: Miles Lane @ 2000-12-01  1:25 UTC (permalink / raw)
  To: linux-usb-devel; +Cc: johannes, linux-kernel, linux-usb-users

Georg Acher wrote:

> 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.
> 

I am testing with this patch applied.

Here's an OOPS I got when plugging and unplugging my USB
mouse multiple times.

Unable to handle kernel paging request at virtual address 01cc0035
c589352c
*pde = 00000000
Oops: 0000
CPU:    0
EIP:    0010:[<c589352c>]
Using defaults from ksymoops -t elf32-i386 -a i386
EFLAGS: 00010206
eax: 01cc0011   ebx: 5508ec83   ecx: c4d39ef4   edx: c4a22b20
esi: c4a22b20   edi: c4d39f18   ebp: 00000064   esp: c4d39eb4
ds: 0018   es: 0018   ss: 0018
Process khubd (pid: 104, stackpage=c4d39000)
Stack: c4d39f08 c4a22b20 c4d39f18 00000064 00000000 00000286 c5825f46 
c4a22b20
        c582605a c4a22b20 c1fbd400 80000180 c1d39600 c4d39fdc c4d38000 
c4d39f08
        c4d39f08 00000000 00000000 c4d39f0c c4d39f0c 00000000 c4d39f20 
c4d39f20
Call Trace: [<c5825f46>] [<c582605a>] [<c5826183>] [<c5826210>] 
[<c582855d>] [<c5829324>] [<c582fcc8>]
        [<c58310cc>] [<c5829515>] [<c0108f0f>] [<c5825000>] [<c5827dbc>]
Code: 8b 40 24 89 44 24 14 83 78 10 00 75 0a b8 ed ff ff ff e9 4f

 >>EIP; c589352c <[usb-uhci]uhci_submit_urb+1c/28c>   <=====
Trace; c5825f46 <[usbcore]usb_submit_urb+1e/30>
Trace; c582605a <[usbcore]usb_start_wait_urb+aa/174>
Trace; c5826183 <[usbcore]usb_internal_control_msg+5f/74>
Trace; c5826210 <[usbcore]usb_control_msg+78/98>
Trace; c582855d <[usbcore]usb_get_port_status+35/3c>
Trace; c5829324 <[usbcore]usb_hub_events+b0/27c>
Trace; c582fcc8 <[usbcore]usb_bandwidth_option+26e0/271c>
Trace; c58310cc <[usbcore]khubd_wait+4/c>
Trace; c5829515 <[usbcore]usb_hub_thread+25/4c>
Trace; c0108f0f <kernel_thread+23/30>
Trace; c5825000 <[nls_iso8859-1].data.end+15e5/1645>
Trace; c5827dbc <[usbcore]init_module+0/0>
Code;  c589352c <[usb-uhci]uhci_submit_urb+1c/28c>
00000000 <_EIP>:
Code;  c589352c <[usb-uhci]uhci_submit_urb+1c/28c>   <=====
    0:   8b 40 24                  mov    0x24(%eax),%eax   <=====
Code;  c589352f <[usb-uhci]uhci_submit_urb+1f/28c>
    3:   89 44 24 14               mov    %eax,0x14(%esp,1)
Code;  c5893533 <[usb-uhci]uhci_submit_urb+23/28c>
    7:   83 78 10 00               cmpl   $0x0,0x10(%eax)
Code;  c5893537 <[usb-uhci]uhci_submit_urb+27/28c>
    b:   75 0a                     jne    17 <_EIP+0x17> c5893543 
<[usb-uhci]uhci_submit_urb+33/28c>
Code;  c5893539 <[usb-uhci]uhci_submit_urb+29/28c>
    d:   b8 ed ff ff ff            mov    $0xffffffed,%eax
Code;  c589353e <[usb-uhci]uhci_submit_urb+2e/28c>
   12:   e9 4f 00 00 00            jmp    66 <_EIP+0x66> c5893592 
<[usb-uhci]uhci_submit_urb+82/28c>


I hope this helps,

	Miles

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/

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

* linux-2.4.0-test12 problem with init
  2000-12-01  1:25 ` [linux-usb-devel] " Miles Lane
@ 2000-12-12 10:56   ` Bill Maidment
  2000-12-12 13:09     ` Mike Galbraith
  0 siblings, 1 reply; 4+ messages in thread
From: Bill Maidment @ 2000-12-12 10:56 UTC (permalink / raw)
  Cc: linux-kernel

Hi

I reported a problem with using 'init 1' with 2.4.0-test12-pre8 and was
told it wasn't a kernel problem. I beg to differ, as it still happens
with 2.4.0-test12 but not with 2.4.0-test12-pre7. What changed between
pre7 and pre8 to make 'init 1' behave like 'init 5'? 'init 3' works
correctly. The only change I've made is to build the new kernel.

The screen messages say it is going into single user mode, but it just
doesn't.

Have I missed something that should be changed in the configuration?

-- 
Regards

Bill Maidment
Computer Systems Consultant

_________________________________________

      Maidment Enterprises Pty Ltd      
      42 Woy Woy Bay Road
      Woy Woy Bay  NSW  2256 
_________________________________________
                                         
  Home Phone 02 4342 6716                
  Work Phone 02 9927 3234                
  Mobile     0418 682 993                
  Home Email bill@maidment.com.au        
  Work Email bill.maidment@elgas.com.au  
  Web Page   www.maidment.com.au         
_________________________________________
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/

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

* Re: linux-2.4.0-test12 problem with init
  2000-12-12 10:56   ` linux-2.4.0-test12 problem with init Bill Maidment
@ 2000-12-12 13:09     ` Mike Galbraith
  0 siblings, 0 replies; 4+ messages in thread
From: Mike Galbraith @ 2000-12-12 13:09 UTC (permalink / raw)
  To: Bill Maidment; +Cc: linux-kernel

On Tue, 12 Dec 2000, Bill Maidment wrote:

> Hi
> 
> I reported a problem with using 'init 1' with 2.4.0-test12-pre8 and was
> told it wasn't a kernel problem. I beg to differ, as it still happens
> with 2.4.0-test12 but not with 2.4.0-test12-pre7. What changed between
> pre7 and pre8 to make 'init 1' behave like 'init 5'? 'init 3' works
> correctly. The only change I've made is to build the new kernel.
> 
> The screen messages say it is going into single user mode, but it just
> doesn't.

Ding.  Plz send me ps lawx output at failure time via private mail.

	-Mike

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/

^ 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;
as well as URLs for NNTP newsgroup(s).