Thread (19 messages) 19 messages, 4 authors, 2016-05-26

USB device debugging

From: bjorn@mork.no (Bjørn Mork)
Date: 2016-05-25 12:01:02

Narasimha M [off-list ref] writes:
Thanks for the info. Sorry to ask you again, where does the usb driver
(GobiNet in my case) comes into picture in receive packet flow. I
suspect that the driver has to send some data (may be with some
interrupts) to rx_complete and then it will go to rx_submit. Is my
understanding is correct ? or if rx_submit is the first function to
generate the data, then where does Gobinet driver comes into place.
Could you please explain. I don't know how some usb driver works. This
is the first time i am working on it.
GobiNet isn't part of the receive packet flow at all, if we assume a
non-buggy Gobi device operating in 802.3 mode.  The rx_fixup callback is
called, but it does nothing.  There isn't anything to do. The buffer is
filled with an ethernet packet by the device + host controller.

The usbnet_bh() tasklet is responsible for calling rx_submit (indirectly
in newer kernels).  This is triggered by setting the EVENT_DEV_OPEN
flag, which is done by usbnet_open().  GobiNet obfuscates this quite a
bit, but it doen't do anything extra-ordinary here - it simply calls
usbnet_open() when you open the netdev.



Bj?rn
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help