USB device debugging
Bjørn Mork
bjorn at mork.no
Wed May 25 08:01:02 EDT 2016
Narasimha M <mnarasimha786 at gmail.com> 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
More information about the Kernelnewbies
mailing list