On Fri, 22 Apr 2005, David Brownell wrote: > If an IRQ comes in before the root hub is "live" in usbcore, that > would need to behave. It's clearly safe to register while the > HCD has locked things and blocked the IRQ; not clearly safe to > do it later...
I tried this out with an OHCI controller and it seemed to work. I'll post the patches tomorrow. But I encountered a problem with resume-detect interrupt handling. Probably this has nothing to do my changes and was present all along, but I haven't tested the vanilla driver to make sure. I'll do that next. The scenario: I plugged in a single-interface USB device to the OHCI controller (which happened to be usb1). Then after "cd /sys/device/.../usb1" I did the following: echo -n 3 >1-1/*0/power/state # Suspend the single interface echo -n 3 >1-1/power/state # Suspend the attached device At this point there was a normal "device suspended" debugging message, followed by a message that the root hub was suspending. However both power/state and *0/power/state contained 0, so as far as usbcore was concerned neither the root hub device nor its driver was suspended. echo -n 3 >*0/power/state # Suspend the root hub's driver echo -n 3 >power/state # Suspend the root hub This produced a debugging message saying the root hub was already suspended, which seemed uncalled-for. (In the analogous situation, uhci-hcd will simply change the root-hub state from UHCI_RH_AUTO_STOPPED to UHCI_RH_SUSPENDED without giving an error message.) Anyway, both those power/state files now contained 3. Then I unplugged the device. This caused a complete system lockup. Further testing showed that the (ints & OHCI_INTR_RD) case in ohci_irq() was being executed over and over again. Apparently the interrupt source was not getting cleared properly. This is very reminiscent of the problem you found with the original version of the root-hub-IRQ patch. Is it correct to assume that both problems will be fixed by the same change to the driver? Alan Stern ------------------------------------------------------- SF email is sponsored by - The IT Product Guide Read honest & candid reviews on hundreds of IT Products from real users. Discover which products truly live up to the hype. Start reading now. http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click _______________________________________________ linux-usb-devel@lists.sourceforge.net To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel