need help with my first device driver

Prashant Shah pshah.mumbai at gmail.com
Fri Apr 29 05:40:53 EDT 2011


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 have created a basic but more simpler structure for the drivers
based on usbdux driver which are already present. I have got to the
point where the device is detected and drivers are loaded. The
/dev/comedi0 device file is created. I am unable to deal with the data
transfer. When I try to run xoscope that is used to read the output
from the card - the card freezes (the status lights stop blinking).

Output from the lsusb :
https://github.com/prashants/temptest/blob/8e81e7fb4ea260fa24e68f43c185d768aec48023/device.txt
Source of the driver :
https://github.com/prashants/temptest/blob/8e81e7fb4ea260fa24e68f43c185d768aec48023/drivers/ni_usb6008.c
Device : http://sine.ni.com/nips/cds/view/p/lang/en/nid/201986

I am not interested in the digital input/output and analog output at
this point. My main concern is the ability to read the analog input.

----------------------------------------------------

Apr 29 14:56:43 prashant kernel: [ 1503.900700] usb 2-1.2: new full
speed USB device using ehci_hcd and address 6
Apr 29 14:56:43 prashant kernel: [ 1504.172214] comedi: version 0.7.76
- http://www.comedi.org
Apr 29 14:56:43 prashant kernel: [ 1504.174688] comedi: ni_usb6008:
init_ni_usb6008
Apr 29 14:56:43 prashant kernel: [ 1504.174692] ni_usb6008:
v2.4:Stirling/ITL USB-DUX -- Bernd.Porr at f2s.com
Apr 29 14:56:43 prashant kernel: [ 1504.174708] comedi: ni_usb6008:
ni_usb6008_probe
Apr 29 14:56:43 prashant kernel: [ 1504.174711] comedi_: ni_usb6008_:
finding a free structure for the usb-device
Apr 29 14:56:43 prashant kernel: [ 1504.174959] comedi0: ni_usb6008:
has been successfully initialised.
Apr 29 14:56:43 prashant kernel: [ 1504.174990] usbcore: registered
new interface driver ni_usb6008
Apr 29 14:56:43 prashant kernel: [ 1504.176558] comedi: ni_usb6008:
ni_usb6008_firmware_request_complete_handler
Apr 29 14:56:43 prashant kernel: [ 1504.176592] comedi: ni_usb6008:
ni_usb6008_attach
Apr 29 14:56:43 prashant kernel: [ 1504.176593] comedi0: ni_usb6008 0
is attached to comedi.
Apr 29 14:56:43 prashant kernel: [ 1504.176595] comedi0: ni_usb6008:
attached to ni_usb6008.
Apr 29 14:56:43 prashant kernel: [ 1504.176634] comedi_: ni_usb6008_:
comedi_usb_auto_config: 0
Apr 29 14:56:47 prashant kernel: [ 1508.563459] comedi: ni_usb6008:
ni_usb6008_ai_cmdtest
Apr 29 14:56:47 prashant kernel: [ 1508.563466] comedi: ni_usb6008:
ni_usb6008_ai_cmdtest
Apr 29 14:56:47 prashant kernel: [ 1508.563468] comedi: ni_usb6008:
ni_usb6008_ai_cmdtest
Apr 29 14:56:47 prashant kernel: [ 1508.563474] comedi: ni_usb6008:
ni_usb6008_ai_cmdtest
Apr 29 14:56:47 prashant kernel: [ 1508.563475] comedi: ni_usb6008:
ni_usb6008_ai_cmd
Apr 29 14:56:47 prashant kernel: [ 1508.563477] comedi0: ni_usb6008:
sending commands to the usb device: size=8
Apr 29 14:56:47 prashant kernel: [ 1508.563478] comedi: ni_usb6008:
send_dux_commands
Apr 29 14:56:47 prashant kernel: [ 1508.563631] comedi: ni_usb6008:
ni_usb6008_submit_InURBs
Apr 29 14:56:47 prashant kernel: [ 1508.563983] comedi: ni_usb6008:
ni_usb6008_ai_cancel
Apr 29 14:56:47 prashant kernel: [ 1508.563985] comedi: ni_usb6008:
ni_usb6008_ai_stop
Apr 29 14:56:47 prashant kernel: [ 1508.563986] comedi: ni_usb6008:
ni_usb6008_unlink_InURBs
Apr 29 14:56:47 prashant kernel: [ 1508.573486] comedi: ni_usb6008:
ni_usb6008_ai_IsocIrq
Apr 29 14:56:47 prashant kernel: [ 1508.573490] comedi0: ni_usb6008: unlinking.
Apr 29 14:56:47 prashant kernel: [ 1508.573492] comedi: ni_usb6008:
ni_usb6008_ai_stop
Apr 29 14:56:47 prashant kernel: [ 1508.573514] comedi: ni_usb6008:
ni_usb6008_ai_cmdtest
Apr 29 14:56:47 prashant kernel: [ 1508.573517] comedi: ni_usb6008:
ni_usb6008_ai_cmdtest
Apr 29 14:56:47 prashant kernel: [ 1508.573520] comedi: ni_usb6008:
ni_usb6008_ai_cmdtest
Apr 29 14:56:47 prashant kernel: [ 1508.573524] comedi: ni_usb6008:
ni_usb6008_ai_cmdtest
Apr 29 14:56:47 prashant kernel: [ 1508.573526] comedi: ni_usb6008:
ni_usb6008_ai_cmd
Apr 29 14:56:47 prashant kernel: [ 1508.573528] comedi0: ni_usb6008:
sending commands to the usb device: size=8
Apr 29 14:56:47 prashant kernel: [ 1508.573530] comedi: ni_usb6008:
send_dux_commands
Apr 29 14:56:47 prashant kernel: [ 1508.573750] comedi: ni_usb6008:
ni_usb6008_submit_InURBs
Apr 29 14:56:47 prashant kernel: [ 1508.583433] comedi: ni_usb6008:
ni_usb6008_ai_IsocIrq
Apr 29 14:56:47 prashant kernel: [ 1508.583435] comedi0: ni_usb6008:
copying data to transfer_buffer
Apr 29 14:56:47 prashant kernel: [ 1508.585428] comedi: ni_usb6008:
ni_usb6008_ai_IsocIrq
Apr 29 14:56:47 prashant kernel: [ 1508.585431] comedi0: ni_usb6008:
copying data to transfer_buffer
Apr 29 14:56:47 prashant kernel: [ 1508.587422] comedi: ni_usb6008:
ni_usb6008_ai_IsocIrq
Apr 29 14:56:47 prashant kernel: [ 1508.587424] comedi0: ni_usb6008:
copying data to transfer_buffer
Apr 29 14:56:47 prashant kernel: [ 1508.589419] comedi: ni_usb6008:
ni_usb6008_ai_IsocIrq
Apr 29 14:56:47 prashant kernel: [ 1508.589420] comedi0: ni_usb6008:
copying data to transfer_buffer
Apr 29 14:56:47 prashant kernel: [ 1508.591427] comedi: ni_usb6008:
ni_usb6008_ai_IsocIrq
Apr 29 14:56:47 prashant kernel: [ 1508.591430] comedi0: ni_usb6008:
copying data to transfer_buffer
Apr 29 14:56:47 prashant kernel: [ 1508.593412] comedi: ni_usb6008:
ni_usb6008_ai_IsocIrq
Apr 29 14:56:47 prashant kernel: [ 1508.593414] comedi0: ni_usb6008:
copying data to transfer_buffer
Apr 29 14:56:47 prashant kernel: [ 1508.595412] comedi: ni_usb6008:
ni_usb6008_ai_IsocIrq
....
....
....
Apr 29 14:56:51 prashant kernel: [ 1512.572562] comedi0: ni_usb6008:
copying data to transfer_buffer
Apr 29 14:56:51 prashant kernel: [ 1512.574550] comedi: ni_usb6008:
ni_usb6008_ai_IsocIrq
Apr 29 14:56:51 prashant kernel: [ 1512.574552] comedi0: ni_usb6008:
copying data to transfer_buffer
Apr 29 14:56:51 prashant kernel: [ 1512.576550] comedi: ni_usb6008:
ni_usb6008_ai_IsocIrq
Apr 29 14:56:51 prashant kernel: [ 1512.576551] comedi0: ni_usb6008:
copying data to transfer_buffer
Apr 29 14:56:51 prashant kernel: [ 1512.578543] comedi: ni_usb6008:
ni_usb6008_ai_IsocIrq
Apr 29 14:56:51 prashant kernel: [ 1512.578545] comedi0: ni_usb6008:
copying data to transfer_buffer
Apr 29 14:56:51 prashant kernel: [ 1512.580543] comedi: ni_usb6008:
ni_usb6008_ai_IsocIrq
Apr 29 14:56:51 prashant kernel: [ 1512.580545] comedi0: ni_usb6008:
copying data to transfer_buffer
Apr 29 14:56:51 prashant kernel: [ 1512.581218] comedi: ni_usb6008:
ni_usb6008_ai_cancel
Apr 29 14:56:51 prashant kernel: [ 1512.581220] comedi: ni_usb6008:
ni_usb6008_ai_stop
Apr 29 14:56:51 prashant kernel: [ 1512.581221] comedi: ni_usb6008:
ni_usb6008_unlink_InURBs
Apr 29 14:56:51 prashant kernel: [ 1512.582537] comedi: ni_usb6008:
ni_usb6008_ai_IsocIrq
Apr 29 14:56:51 prashant kernel: [ 1512.582539] comedi0: ni_usb6008: unlinking.
Apr 29 14:56:51 prashant kernel: [ 1512.582541] comedi: ni_usb6008:
ni_usb6008_ai_stop
Apr 29 14:56:55 prashant kernel: [ 1515.973856] usb 2-1.2: USB
disconnect, address 6
Apr 29 14:56:55 prashant kernel: [ 1515.973922] comedi: ni_usb6008:
ni_usb6008_disconnect
Apr 29 14:56:55 prashant kernel: [ 1515.973985] comedi_: ni_usb6008:
ni_usb6008_detach
Apr 29 14:56:55 prashant kernel: [ 1515.973988] comedi0: ni_usb6008:
detach usb device
Apr 29 14:56:55 prashant kernel: [ 1515.973991] comedi0: ni_usb6008:
detach: successfully removed
Apr 29 14:56:55 prashant kernel: [ 1515.974036] comedi: ni_usb6008: tidy_up
Apr 29 14:56:55 prashant kernel: [ 1515.974040] comedi_: ni_usb6008:
disconnected from the usb



More information about the Kernelnewbies mailing list