Hi, I have been looking into USB code. I have some basic idea of what is going on but still I have some doubts which I try to explain here. I have explained how the code flow takes place as per my understanding, My current understanding: 1. USB Device connected physically. 2. khubd detects the connection of USB device (I hope that khub gets interrupt from Host Controller). 3. Kernel notifies the user space about the device connection (probably udev involves in this). 4. Driver for the corresponding device is detected using the device VID/PID and loaded (modprobe is loading the driver). 5. A device file (nod in /dev - like /dev/ttyUSB0) is created for the USB device. Is my understanding correct? Doubts and Questions: 1. How kernel notifies the user space about the device arrival? What is the work of udev here? 2. How the device file gets associated with the driver (or device)? i.e., When a user space code does a open or write call to the device file (e.g., /dev/ttyUSB0) who determines the correct driver (or device) and sends the commands to the device? How the device file to physical device mapping magic works? Thanks, Prasanna Kumar T S M -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html