[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: uhci picks up interrupts that don't belong



Hi.

I've been about to commit a fix for that (I have the exact same
behaviour), but have been waiting for a review on whether it's the "proper
way" to do this or not. Still, the patch works as expected.

Index: uhci.c
===================================================================
RCS file: /cvs/src/sys/dev/usb/uhci.c,v
retrieving revision 1.14
diff -u -r1.14 uhci.c
--- uhci.c      2000/09/06 22:42:10     1.14
+++ uhci.c      2000/11/03 14:49:28
@@ -1059,8 +1059,9 @@
        }
        if (status & UHCI_STS_HCH) {
                /* no acknowledge needed */
-               printf("%s: host controller halted\n", 
-                      USBDEVNAME(sc->sc_bus.bdev));
+               if (!sc->sc_dying)
+                       printf("%s: host controller halted\n", 
+                              USBDEVNAME(sc->sc_bus.bdev));
                sc->sc_dying = 1;
 #ifdef UHCI_DEBUG
                uhci_dump_all(sc);

(Trying to acknowledge the UCHI_STS_HCH bit instead, btw, does not work,
 and a "my interrupt"-check (which in itself maybe isn't enough?) is
 actually being done.)

//Håkan

On Wed, 25 Oct 2000, Peter Galbavy wrote:

> In case anyone know the quick fix to this - having seen the recent
> commit to the hifn driver - I have a VAIO with various stuff in it.
> The uhci driver is OK when the machine is first booted, but then if
> any other device that shares the irq (9 in this case) is detached or
> the system goes through an apm sleep -> wake cycle, the uhci driver
> seems to process any and all intr for these other device, and reports
> "uhci0 host controller halted" or very similar (dmesg printf not
> available just now). Anyhow, I guess the driver is not checking
> correctly if the intr is for it or another device.
> 
> grep of dmesg:
> 
> uhci0 at pci0 dev 7 function 2 vendor 0x8086 product 0x7112 rev 0x01: irq 9
> fxp0 at pci0 dev 11 function 0 vendor 0x8086 product 0x1229 rev 0x08: irq 9, address 08:00:46:07:82:fb
> cbb0 at pci0 dev 12 function 0 vendor 0x1180 product 0x0475 rev 0x80: irq 9
> 
> -- 
> Peter Galbavy
> Knowledge Matters Ltd
> http://www.knowledge.com/
> 
> 
> 

--
Håkan Olsson <ho@crt.se>        (+46) 708 437 337     Carlstedt Research
Unix, Networking, Security      (+46) 31 701 4264        & Technology AB