On Sun, 2004-01-18 at 23:38, Alan Stern wrote: > You can selectively ignore that controller in your debugging messages > simply by checking the value of io_addr (or uhci->io_addr).
Isn't it possible to somehow really disable it, as if I disabled it in the BIOS. Or tell the uhci-hcd module to just not manage this device? > I don't know about the relation between your two controllers. They > _should_ be completely independent. > > Anyway, the controller generates a single interrupt at the time it is > suspended. That's the status = 32 and state = -10 you see. But then > while it is suspended it won't generate any interrupts at all until > you plug in a device. Even if you call set_next_interrupt. I have to disagree with you on this. (I guess what you stated is the way it should work). I observed some new and completely wired behavior: Since I added these printk's to the uhci_irq() function I saw these status = 32 calls for my second controller and if the first was suspended it generated the same. This resulted in about 30-50 interrupts per second. After I disabled the second controller I rerun my test and the single enabled controller had the same behavior, continuous calls of uhci_irq with status = 32 after it was suspended. Now the wired thing is, about an hour or two later, after I received this message from you, I wanted to reproduce this behavior in a simpler test-scenario: load uhci-hcd, no device attached, wait a second and see the interrupts. BUT there was not a single one of them after the suspend of the controller. Since that time my "working" machine behaves exactly like the "buggy" one, even if I reenable the second controller. This includes the kernel panic when I replug the device. I tried it several times, I can not reproduce neither the "old" nor the "intermediary" behavior. I just have two crashing machines now. Maybe the good thing is, that I have found a scenario where the problem occurres without any device attached. I simply load uhci-hcd with no attached device and wait for the interrupt after the suspend. A few thoughts about that from my point of few: - the only changes I made during all that time were some printk's I added. Maybe they influenced some time critical mechanisms? - Maybe the problem with the missing interrupts is not a specific usb problem but something "deeper", related to interrupt sharing or BIOS interrupt assignment? - I don't think I have two completely independent machines both with the same hardware defect. - Since I always saw the state = 32 call after a "usual" one (meaning state = 0, 1, 2, 3) it might me that the uhci controller did not really generate these interrupts but the soundcard did, wich seemed to share the interrupt with both controllers. So that uhci_irq was called for whatever reason and then saw that the controller is disabled. This would also explain the difference to the "buggy" machine, that does not have this additional card. It does not, however, explain why I can not reproduce the "old" behavior. > It looks like set_next_interrupt isn't working on your systems. You can > test that by patching uhci_proc_open() in uhci_debug.c. Add a call to > set_next_interrupt, say right before the "ret = 0" line. Then each time > you open the /proc/devices/uhci... file you should cause an interrupt. > Just make sure a device is plugged in (so the controller isn't suspended) > and is idle (so you aren't confused by unrelated interrupts). I'd like to try that but don't know what you mean with the /proc/devices/uhci... file. /proc/devices is a file not a directory on my system and if I cat that nothing happens. Thanks, Axel. ------------------------------------------------------- The SF.Net email is sponsored by EclipseCon 2004 Premiere Conference on Open Tools Development and Integration See the breadth of Eclipse activity. February 3-5 in Anaheim, CA. http://www.eclipsecon.org/osdn _______________________________________________ [EMAIL PROTECTED] To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel