lkml.org 
[lkml]   [2008]   [Sep]   [30]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
Subjecthelp finding entry point of USB data in the kernel, not drivers/usb/core/devio.c?
Hi all,

I am trying to find the entry point of USB data in the kernel. I have a
USB device and I would like to find the latency between the time the
data enters the kernel, and I read it in userspace. My first goal is to
find where it actually enters the kernel.

The host device driver obtains a URB and reads the data from urb->buffer.

From digging around the kernel code, I had assumed the entry point for
all USB data was in drivers/usb/core/devio.c::usbdev_read() ... but it
seems as though that is not the case.

Right after the device is locked in this function, I added a simple
printk: printk("Reading %d bytes\n", nbytes); // Line 135

Then around line 154 after it reads the usb device descriptor, I added:
if(temp_desc.idVendor==0xfffe && temp_desc.idProduct==0x0002) {
printk("...Data from USRP\n");
}

That gives me an idea that the data is coming from the device I am
looking for.

But, it seems as though this method is only related to control
information to/from the USB device? Whenever I start my application, I
get about 1614 total bytes read from my first printout, and I see only
one of my second printout messages. Whereas, I am reading a total of
about 8MB from the USB device over the period of time. So I think I am
completely missing my actual data entry point.

Additionally, lsusb generates this same exact amount 1614 total bytes of
data... so it seems to be control related to me.

I'd greatly appreciate any guidance.

Thanks!
George


\
 
 \ /
  Last update: 2008-09-30 07:07    [W:0.084 / U:0.792 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site