Ian Abbott [Mon, 26 Jul 2010 11:14:07 +0000 (11:14 +0000)]
Compatibility header for <linux/semaphore.h>. Just includes the proper
<linux/semaphore.h> if CONFIG_COMEDI_HAVE_LINUX_SEMAPHORE_H is defined,
otherwise it includes <asm/semaphore.h> instead.
Ian Abbott [Mon, 26 Jul 2010 11:12:19 +0000 (11:12 +0000)]
Add check for existance of <linux/semaphore.h> header and define the
CONFIG_COMEDI_HAVE_LINUX_SEMAPHORE_H macro in config.h if present. Note
<linux/semaphore.h> was added in kernel version 2.6.26, replacing
<asm/semaphore.h>. We need a compatibility header for it.
Ian Abbott [Wed, 23 Jun 2010 15:12:40 +0000 (15:12 +0000)]
Add a dkms.conf file for building comedi with DKMS
(Dynamic Kernel Module Support).
Ian Abbott [Tue, 22 Jun 2010 16:12:24 +0000 (16:12 +0000)]
PCMCIA support broke with the 2.6.33 kernel, so add support back in.
I don't know if it works, but at least it should compile!
The driver source code changes are very inelegant.
Note that the IRQ attributes have been changed from IRQ_TYPE_EXCLUSIVE to
IRQ_TYPE_DYNAMIC_SHARING.
Ian Abbott [Fri, 18 Jun 2010 10:00:26 +0000 (10:00 +0000)]
adl_pci9111: bug fix for AI commands when scan_begin_src is TRIG_FOLLOW.
The dev_private->scan_delay should have been left set to 0 in this case,
but it ended up being set to (unsigned int)-1.
Ian Abbott [Mon, 14 Jun 2010 10:42:02 +0000 (10:42 +0000)]
Change example Driver: comment block slightly to avoid it being matched by
updated 'dump_doc' script.
Ian Abbott [Mon, 14 Jun 2010 10:34:38 +0000 (10:34 +0000)]
Allow "*" (optionally surrounded by a space on each side) to precede
"Driver:" and strip this from all the lines in the comment block.
Ian Abbott [Wed, 26 May 2010 11:17:33 +0000 (11:17 +0000)]
Check for RTAI include directory "${RTAI_DIR}/include/rtai" before checking
for "${RTAI_DIR}/include". This is because Debian uses --with-rtaidir=/usr
but puts the RTAI include files in /usr/include/rtai.
Ian Abbott [Wed, 19 May 2010 16:49:49 +0000 (16:49 +0000)]
Fix previous commit. For COMEDI_BUFINFO, if command not active, report back
the last buffer position instead of random junk.
Ian Abbott [Wed, 19 May 2010 14:40:46 +0000 (14:40 +0000)]
adv_pci_dio: Forgot to update the 'Updated:' line when the driver
description was changed in Revision 1.26.
Ian Abbott [Wed, 19 May 2010 14:31:19 +0000 (14:31 +0000)]
adv_pci_dio: Protect access to counter subdevice with a spin lock.
Ian Abbott [Tue, 18 May 2010 16:28:07 +0000 (16:28 +0000)]
serial2002: Fix memory leak on 'detach' (off-by-one error in subdevice loop).
Ian Abbott [Mon, 17 May 2010 12:18:35 +0000 (12:18 +0000)]
For COMEDI_BUFINFO ioctl, check for locked or busy subdevice.
Ian Abbott [Mon, 17 May 2010 11:26:07 +0000 (11:26 +0000)]
For COMEDI_BUFINFO ioctl, if subdevice has no async capability, set
bytes_read and bytes_written to 0 in returned structure.
Ian Abbott [Fri, 14 May 2010 15:29:11 +0000 (15:29 +0000)]
For write(), don't bother writing data to buffer if command already
finished, as the data won't be used anyway. This allows user code to
see the command has finished before it has refilled the buffer completely.
Ian Abbott [Tue, 4 May 2010 13:58:49 +0000 (13:58 +0000)]
Support Advantech PCI-1735, including 8254-based counter subdevice (the
counter subdevice might not be working though).
Frank Mori Hess [Mon, 12 Apr 2010 18:07:09 +0000 (18:07 +0000)]
Some changes to make new driver pass kernel's anal formatting checks
in checkpatch.pl.
Frank Mori Hess [Mon, 12 Apr 2010 17:37:51 +0000 (17:37 +0000)]
Added Adlink PCI-7230 driver from David Fernandez.
Ian Abbott [Wed, 24 Mar 2010 17:04:59 +0000 (17:04 +0000)]
addi_common: Just use the driver name in the call to comedi_request_irq()
instead of a static char buffer that gets overwritten.
Ian Abbott [Wed, 24 Mar 2010 16:34:46 +0000 (16:34 +0000)]
amplc_dio200: Protect access to counter subdevices with a spin lock.
Ian Abbott [Wed, 24 Mar 2010 12:54:35 +0000 (12:54 +0000)]
serial2002: Slight change to previous commit. If failed to allocate
maxdata_list or range_table_list for a subdevice during the 'open' method,
free these for all subdevices as they may be left over from a previous
open.
Ian Abbott [Wed, 24 Mar 2010 12:45:23 +0000 (12:45 +0000)]
serial2002: In serial_2002_open(), handle failure to allocate maxdata_list
or range_table_list for a subdevice.
Ian Abbott [Wed, 24 Mar 2010 12:19:30 +0000 (12:19 +0000)]
serial2002: Reduce stack usage in serial_2002_open() by allocating
dig_in_config, dig_out_config, chan_in_config and chan_out_config arrays
using kcalloc().
Ian Abbott [Wed, 24 Mar 2010 11:53:09 +0000 (11:53 +0000)]
The 'open' method in struct comedi_device_struct now returns 0 on success
and a negative errno on failure. The 'open' method must clean up after
itself on failure as the 'close' method won't be called. A failure causes
the 'open' file operation for the comedi device to fail.
The dt9812 and serial2002 drivers now make use of the ability to return
an error.
Ian Abbott [Thu, 18 Mar 2010 15:39:58 +0000 (15:39 +0000)]
Give the different addi_apci_* drivers different comedi driver names.
Ian Abbott [Mon, 15 Mar 2010 17:02:46 +0000 (17:02 +0000)]
Prototype of request_firmware_nowait() changed in 2.6.33.
Use new prototype and add compatibility code for earlier kernels.
Frank Mori Hess [Mon, 22 Feb 2010 14:23:25 +0000 (14:23 +0000)]
Increased timeout for digital output dma loading, due to report of it
being too short for some hardware.
Ian Abbott [Wed, 20 Jan 2010 12:33:02 +0000 (12:33 +0000)]
pcl818: No need to check chanlist_len for AI command test.
Ian Abbott [Wed, 20 Jan 2010 12:17:37 +0000 (12:17 +0000)]
pcl816: No need to check chanlist_len for AI command test.
Ian Abbott [Wed, 20 Jan 2010 12:04:26 +0000 (12:04 +0000)]
pcl812: Don't need to set cur_chan twice at end of scan.
Ian Abbott [Wed, 20 Jan 2010 11:57:34 +0000 (11:57 +0000)]
pcl812: No need to check chanlist_len for AI command test.
Ian Abbott [Wed, 20 Jan 2010 11:52:49 +0000 (11:52 +0000)]
pcl812: Untested bug fix for multi-channel AI commands. Update MUX on
AI interrupt.
Ian Abbott [Mon, 18 Jan 2010 19:38:39 +0000 (19:38 +0000)]
adv_pci1710: Don't need to check chanlist_len in pci171x_ai_cmdtest().
Ian Abbott [Mon, 18 Jan 2010 19:23:46 +0000 (19:23 +0000)]
adv_pci1710: Bug fixes: For AI commands, keep track of current channel when
moving block of data from FIFO. Setting up of internal channel list should
fill in the whole list, not just the first repeated segment.
Ian Abbott [Mon, 18 Jan 2010 17:14:07 +0000 (17:14 +0000)]
pcl816: Check the channel list in step 5 of AI command test.
Ian Abbott [Mon, 18 Jan 2010 16:46:11 +0000 (16:46 +0000)]
pcl818: bug fixes: For AI commands, the scan counter was being updated
after every sample, except for DMA mode where is was being updated after
each repeated segment of the channel list. Keep track of current sample
and update the scan counter at the end of each scan. Also, AI commands
with multiple channels were being terminated with an error incorrectly in
non-DMA mode. This was because the current position within a repeated
segment of the channel list was not being updated, causing it to think
there was a "channel dropout" when comparing the assumed current channel
with the channel number read from the FIFO.
Ian Abbott [Mon, 18 Jan 2010 16:25:33 +0000 (16:25 +0000)]
pcl816: bug fix: AI scan counter was being updated after every channel in
non-DMA mode, or after every repeated segment of the channel list in DMA
mode. Keep track of the current channel for each sample and update the
scan counter at the end of the scan.
Ian Abbott [Mon, 18 Jan 2010 16:20:08 +0000 (16:20 +0000)]
pcl812: bug fix: scan counter was being incremented after every sample.
Keep track of current channel and update scan counter at end of scan.
Ian Abbott [Mon, 4 Jan 2010 11:39:28 +0000 (11:39 +0000)]
pcmmio: reorder check for second irq in pcmmio_attach() to avoid reading
past end of array.
(Staging patch from Dan Carpenter.)
Ian Abbott [Mon, 4 Jan 2010 11:22:14 +0000 (11:22 +0000)]
comedi_bond: fix off by one in doDevConfig().
(Staging patch from Dan Carpenter.)
Bernd Porr [Thu, 26 Nov 2009 20:18:59 +0000 (20:18 +0000)]
removed "deprecated" from the define COMEDI_CB_BLOCK and added
a comment so that other know that this flag has to be set whenever
fresh data has arrived from an A/D or has been written to a D/A.
Bernd Porr [Thu, 26 Nov 2009 20:10:14 +0000 (20:10 +0000)]
Jan-Matthias Braun spotted the problem that once the ring buffer
of comedi has run empty the next read command would block forever
even after new data has arrived. Thanks for Jan-Matthias and Ian
who fixed the bug.
Ian Abbott [Thu, 26 Nov 2009 14:59:46 +0000 (14:59 +0000)]
jr3-pci: Only ioremap register space for actual number of channels on the
card. Also, check result of ioremap() for failure.
Thanks to Anders Blomdell for input and Sami Hussein for testing.
Ian Abbott [Thu, 19 Nov 2009 18:37:30 +0000 (18:37 +0000)]
adv_pci1710: Also initialize divisor1 and divisor2 in pci171x_ai_cmdtest().
Ian Abbott [Thu, 19 Nov 2009 11:43:52 +0000 (11:43 +0000)]
pcl818: In ai_cmd_test(), pcl818_ai_cmd_mode(), and pcl818_ao_mode13(),
initialize divisor1 and divisor2 values passed by reference to
i8153_cascade_ns_to_timer().
Ian Abbott [Thu, 19 Nov 2009 11:39:10 +0000 (11:39 +0000)]
pcl816: In pcl816_ai_cmdtest(), initialize divisor1 and divisor2 values
passed by reference to i8253_cascase_ns_to_timer().
Ian Abbott [Thu, 19 Nov 2009 11:35:13 +0000 (11:35 +0000)]
cb_das16_cs: In das16cs_ai_cmdtest(), initialize div1 and div2 values
passed by reference to i8253_cascade_ns_to_timer() (two instances).
Ian Abbott [Thu, 19 Nov 2009 11:32:37 +0000 (11:32 +0000)]
adv_pci1710: In pci171x_ai_docmd_and_mode(), initialize divisor1 and
divisor2 values passed by reference to i8253_cascase_ns_to_timer().
Ian Abbott [Thu, 19 Nov 2009 11:30:05 +0000 (11:30 +0000)]
adl_pci9118: In pci9118_ai_cmdtest(), initialize divisor1 and divisor2
values, passed by reference to i8253_cascade_ns_to_timer().
Ian Abbott [Thu, 19 Nov 2009 11:21:51 +0000 (11:21 +0000)]
pcl816: In pcl816_ai_cmdtest(), correct step 1 test for valid convert_src
(operator precedence error).
Ian Abbott [Thu, 19 Nov 2009 11:10:08 +0000 (11:10 +0000)]
pcl711: In pcl711_ai_cmd(), fix uninitialized variables timer1 and timer2.
Values are passed by reference to i8253_cascade_ns_to_timer().
Ian Abbott [Thu, 19 Nov 2009 11:05:09 +0000 (11:05 +0000)]
serial2002: In serial_2002_open(), reduce size of config_t by 4 bytes.
This reduces stack usage by 512 bytes.
Ian Abbott [Thu, 19 Nov 2009 10:59:13 +0000 (10:59 +0000)]
me4000: In xilinx_download(), correct test for /INIT pin being set during
initialization. Parentheses were missing.
Bernd Porr [Tue, 17 Nov 2009 23:18:49 +0000 (23:18 +0000)]
I've set all timeout values to 1000ms. Some bulk transfers used 30ms
as a timeout which should be OK but it's just a bit short. Nothing
detrimental.
Bernd Porr [Tue, 17 Nov 2009 23:09:47 +0000 (23:09 +0000)]
Fixed an issue with jiffies vs miliseconds for the timeout value
of bulk transfers. From 2.6.12 the timing information is miliseconds
and not jiffies. However in the driver there was a mix of constants
referring to jiffies and miliseconds. I've fixed it and introduced
the constant BULK_TIMEOUT in miliseconds for all transfers.
Ian Abbott [Mon, 19 Oct 2009 09:34:54 +0000 (09:34 +0000)]
[Following Linus's linux-2.6 tree...]
commit
d43c36dc removed sched.h from interrupt.h. This broke some of
the comedi drivers. This patch fixes this.
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Ian Abbott [Mon, 19 Oct 2009 09:33:01 +0000 (09:33 +0000)]
[Following Linus's linux-2.6 tree...]
Now that sched.h was removed from poll.h, serial2002.c needs
to include it otherwise it does not build properly.
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Frank Mori Hess [Mon, 21 Sep 2009 20:09:52 +0000 (20:09 +0000)]
Added device id for pxi-6225 to ni_pci_table.
Frank Mori Hess [Mon, 17 Aug 2009 16:07:53 +0000 (16:07 +0000)]
Added device id for pxi-6225.
Ian Abbott [Wed, 12 Aug 2009 16:04:43 +0000 (16:04 +0000)]
When reading DO subdevice with inverted outputs invert the values read back
from the ports to match the inversion of values written.
Ian Abbott [Wed, 12 Aug 2009 15:56:14 +0000 (15:56 +0000)]
Fix insn_bits bitshift calculation for subdevice with non-zero base_port.
Thanks to Jérôme Carretero (cJ-comedi at zougloub dot eu) for spotting the
bug.
Ian Abbott [Fri, 7 Aug 2009 14:57:47 +0000 (14:57 +0000)]
Take account of arch's bitfield order.
Ian Abbott [Fri, 7 Aug 2009 14:40:20 +0000 (14:40 +0000)]
Get rid of global variable 'cmReg'.
Ian Abbott [Fri, 7 Aug 2009 14:33:55 +0000 (14:33 +0000)]
Some changes and corrections to handling of
INSN_CONFIG_GPCT_QUADRATURE_ENCODER, INSN_CONFIG_GPCT_SINGLE_PULSE_GENERATOR,
and INSN_CONFIG_GPCT_PULSE_TRAIN_GENERATOR, so they interpret insn->data[]
as per the comments in the code.
Ian Abbott [Fri, 7 Aug 2009 14:00:01 +0000 (14:00 +0000)]
Correct number of channels on DIO subdevice. Correct operation of
INSN_CONFIG_DIO_INPUT and INSN_CONFIG_DIO_OUTPUT and support
INSN_CONFIG_DIO_QUERY.
Thanks to Alessio Margan for some testing.
Ian Abbott [Fri, 7 Aug 2009 13:08:59 +0000 (13:08 +0000)]
Store PCI device IDs in the board info and use this for matching IDs in the
code instead of using the module device table.
This avoids a "section mismatch" error.
Ian Abbott [Fri, 7 Aug 2009 12:50:47 +0000 (12:50 +0000)]
Needed some more M4 quoting in AS_LINUX_SRC_DIR().
Ian Abbott [Fri, 19 Jun 2009 10:50:50 +0000 (10:50 +0000)]
s626: Match PCI subvendor and subdevice IDs to avoid conflict with other
cards using Philips SAA7146A PCI multimedia bridge chip.
Ian Abbott [Tue, 2 Jun 2009 18:57:14 +0000 (18:57 +0000)]
Made sysfs attribute code compatible with earlier kernels.
Ian Abbott [Tue, 2 Jun 2009 15:25:33 +0000 (15:25 +0000)]
jr3_pci: Initialize transf variable fully in jr3_pci_poll_subdevice().
Bernd Porr [Sun, 24 May 2009 18:51:39 +0000 (18:51 +0000)]
added code of buffer overflow. The async acquision stops as soon
as there's a buffer overflow.
Ian Abbott [Fri, 22 May 2009 11:11:13 +0000 (11:11 +0000)]
When checking for separate Linux source and build directory, ignore any
extra paramters after MAKEARGS := -C $(SOURCE_DIR).
Fixes Debian bug #526707.
Ian Abbott [Mon, 11 May 2009 10:15:12 +0000 (10:15 +0000)]
Add strict_strtoX() compatibilty functions for kernel < 2.6.25.
Reported by labrat <tvrkng -at- gmail -dot- com>.
Ian Abbott [Mon, 11 May 2009 09:37:41 +0000 (09:37 +0000)]
Corrected type of a printk argument in resize_async_buffer().
Frank Mori Hess [Mon, 6 Apr 2009 16:37:47 +0000 (16:37 +0000)]
Use struct device from pci_dev for firmware loading.
Frank Mori Hess [Mon, 6 Apr 2009 16:36:50 +0000 (16:36 +0000)]
Fixed some compiler warnings due to const-ness problems.
Frank Mori Hess [Mon, 6 Apr 2009 15:28:01 +0000 (15:28 +0000)]
Can't rely on pte_offset_kernel being a macro on newer kernels.
Frank Mori Hess [Mon, 6 Apr 2009 15:17:26 +0000 (15:17 +0000)]
2.6.30 kernel won't define IRQ_NONE as a macro.
Frank Mori Hess [Thu, 2 Apr 2009 19:14:55 +0000 (19:14 +0000)]
Added sysfs attribute files for setting and querying subdevice
buffer sizes.
Ian Abbott [Wed, 1 Apr 2009 14:43:14 +0000 (14:43 +0000)]
Corrected documentation. Interrupt is triggered by rising edge on
port C bit 3 (not bit 7).
Ian Abbott [Wed, 1 Apr 2009 11:27:00 +0000 (11:27 +0000)]
Changes for 2.6.29 kernel. info() removed from <linux/usb.h>.
Ian Abbott [Thu, 19 Mar 2009 19:24:32 +0000 (19:24 +0000)]
Undo stupid commit made 3 months ago:
"Fix redefinition of macro comedi_rt_task_context_t".
It wasn't being redefined, it was being defined for RTLinux.
Ian Abbott [Thu, 19 Mar 2009 19:12:52 +0000 (19:12 +0000)]
Work around malformed RTAI_VERSION_CODE.
Frank Mori Hess [Tue, 17 Mar 2009 21:06:20 +0000 (21:06 +0000)]
Added support for comedi_poll.
Ian Abbott [Tue, 3 Mar 2009 14:02:33 +0000 (14:02 +0000)]
pcl818: Tidy up AI command after channel dropout or similar error. It was
causing subsequent commands to fail with -EBUSY.
Ian Abbott [Thu, 26 Feb 2009 18:47:55 +0000 (18:47 +0000)]
pcl818: Fix option handling for FIFO mode (hopefully!).
Ian Abbott [Mon, 9 Feb 2009 16:51:38 +0000 (16:51 +0000)]
comedi_open: Fix null pointer dereference.
Ian Abbott [Mon, 9 Feb 2009 16:32:12 +0000 (16:32 +0000)]
Fix GCC warning in call to request_module(): "format not a string literal
and no format arguments".
Ian Abbott [Fri, 30 Jan 2009 12:59:26 +0000 (12:59 +0000)]
Use explicit value for enumerated constant INSN_CONFIG_GET_HARDWARE_BUFFER_SIZE.
Ian Abbott [Tue, 27 Jan 2009 15:11:28 +0000 (15:11 +0000)]
Replace occurrences of <module>.o with <module>.ko .
Ian Abbott [Tue, 6 Jan 2009 14:13:28 +0000 (14:13 +0000)]
PCMCIA changes for compatibility with 2.6.28 kernel.
'CS-SUCCESS' and other special error codes are gone.
'pcmcia_parse_tuple()' now has two arguments, not three.
Ian Abbott [Tue, 16 Dec 2008 13:09:56 +0000 (13:09 +0000)]
Fix redefinition of macro comedi_rt_task_context_t.
Frank Mori Hess [Mon, 15 Dec 2008 13:48:47 +0000 (13:48 +0000)]
Return error instead of segfaulting if user trys to run comedi_config on
a device file with and invalid minor number.
Frank Mori Hess [Mon, 15 Dec 2008 13:44:45 +0000 (13:44 +0000)]
Added some validation of comedi module parameter values.
Bernd Porr [Tue, 9 Dec 2008 18:41:53 +0000 (18:41 +0000)]
Explained the new mechanisms for autoconfig of devices and the
associtated module parameters.
Frank Mori Hess [Tue, 9 Dec 2008 14:47:22 +0000 (14:47 +0000)]
Fixed minor numbers for subdevice files.
Ian Abbott [Tue, 9 Dec 2008 11:07:22 +0000 (11:07 +0000)]
Make comedi_auto_config() succeed when auto-configuration disabled.
Bernd Porr [Mon, 8 Dec 2008 23:35:42 +0000 (23:35 +0000)]
Removed the constant for the legacy minors
Bernd Porr [Mon, 8 Dec 2008 23:30:13 +0000 (23:30 +0000)]
As suggested the legacy device count is set to zero. A new module parameter
for comedi_fops allows setting the number of legacy devices: comedi_num_legacy_minors. The default is zero.
usbdux and usbduxfast upload now their firmware via the firmware kernel meachanism. No udev rules are needed for that except the default ones. The firmware will usually be loaded from /lib/firmware. Upload via comedi_config is still possible for static comedi devices (comedi_num_legacy_minors>0). Frank, thanks for the example code which sped up rewriting of the code substantially.
Ian Abbott [Mon, 8 Dec 2008 17:05:50 +0000 (17:05 +0000)]
Add a module parameter 'comedi_autoconfig'. Set it to 0 or 'N' to disable
autoconfiguration. It is enabled by default.