need help with my first device driver

Prashant Shah pshah.mumbai at gmail.com
Tue May 3 13:05:02 EDT 2011


On Fri, Apr 29, 2011 at 8:51 PM, Greg KH <greg at kroah.com> wrote:
> On Fri, Apr 29, 2011 at 03:10:53PM +0530, Prashant Shah wrote:
>> Hi,
>>
>> I am trying to write a comedi (drivers/staging/comedi) based driver
>> for the National Instruments USB 6008 USB based data acquisition card.
>>

I want to ask a quick question on USB.

When I do a lsusb on the device it shows it has 4 end points (two bulk
in and two bulk out). How do I send commands to the device since there
are no control endpoints ? What I am doing currently is creating a
bulk receive pipe and trying to read data in the completion handler
but I dont get any data.

Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0
  bDeviceProtocol         0
  bMaxPacketSize0        64
  idVendor           0x3923 National Instruments Corp.
  idProduct          0x717a
  bcdDevice            1.03
  iManufacturer           1 National Instruments
  iProduct                2 NI USB-6008
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           46
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0
    bmAttributes         0x80
      (Bus Powered)
    MaxPower              500mA


    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           4
      bInterfaceClass         0 (Defined at Interface level)
      bInterfaceSubClass      0
      bInterfaceProtocol      0
      iInterface              0

      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               5

      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x01  EP 1 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               5

      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x82  EP 2 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               5

      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x02  EP 2 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               5
Device Status:     0x0000
  (Bus Powered)



More information about the Kernelnewbies mailing list