Hi I've been walking through the EHCI HCD & usbcore code for a few days now. I'm new to USB and EHCI so I'm at the bottom on the learning curve.
I'm sure my question is simple, but I've been starring at code and I can't work it out... I'm trying to understand the code flow from HW, through EHCI and up to usbcore/khubd. Lets say a new device is plugged into a EHCI port. My understanding is that this generates and interrupt and the USBSTS's 'Port Change Detect' bit is set (STS_PCD). So what functions get called ? ehci_irq() -> ehci_work() -> ??? I'm fairly sure the root hub code gets called in order to enumerate the new device like this: kick_khubd() | | v hub_thread() -> hub_events() -> hub_port_connect_change() -> hub_port_init() -> usb_new_device() hub_port_init() & usb_new_device() request descriptors and enumerate the device, that's easy enough to understand. So what I don't understand is how the EHCI isr (ehci_irq) calls kick_khubd() ? I expect its glaringly obvious. I'd appreciate it if someone could help me understand it. Thanks dom ------------------------------------------------------- This SF.net email is sponsored by: Splunk Inc. Do you grep through log files for problems? Stop! Download the new AJAX search engine that makes searching your log files as easy as surfing the web. DOWNLOAD SPLUNK! http://sel.as-us.falkag.net/sel?cmd=lnk&kid3432&bid#0486&dat1642 _______________________________________________ linux-usb-devel@lists.sourceforge.net To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel