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

Reply via email to