Issue
I'm currently learning driver programming and am at very nascent stage. I'm unable to get the difference of use of rel="nofollow noreferrer">xHCI, EHCI, or OHCI drivers and usb_storage.
When I plug my USB device (pen drive) and observe dmesg output, it says that my device is using the ehci
driver, but my device stops working when I rmmod
usb_storage.
There are many drivers for different kind of USB devices let it be mouse, keyboard, camera, etc.
As of now, I assume that the xHCI driver is for USB host and the other driver is for the device we connect to our USB host. Am I correct? If not, what is the explanation?
Solution
*HCI are specifications of USB hosts:
usb_storage is a upper level driver working on the USB host side, and it is responsible for communication only with USB storage devices, not keyboard, mouse, etc.
The USB is maintained in form of a stack and *hci drivers are the lowest level in that stack. usb-storage and other drivers are located on a higher level of this stack.
Answered By - user2699113 Answer Checked By - Terry (WPSolving Volunteer)