Frank Mori Hess [Tue, 10 Jul 2007 13:01:20 +0000 (13:01 +0000)]
Put ni_gpct_device pointer in ni_gpct struct, so it doesn't have to
be passed around everywhere as a separate parameter.
Frank Mori Hess [Mon, 9 Jul 2007 20:12:56 +0000 (20:12 +0000)]
Realized that "struct ni_gpct" needs to have a "ni_gpct_device"
struct split out of it, which is shared by all counters on a board.
Need to hold mite_channel_lock in ni_mio_common when calling ni_tio
functions that use mite channel.
Frank Mori Hess [Fri, 6 Jul 2007 19:12:40 +0000 (19:12 +0000)]
Replaced magic numbers for subdevice indices with an enum. Also,
inching towards gpct command support.
Frank Mori Hess [Fri, 6 Jul 2007 17:08:58 +0000 (17:08 +0000)]
Added some ack'ing of b interrupts, and do acks before handling
interrupts, to avoid a race (which seems possible in theory).
Frank Mori Hess [Fri, 6 Jul 2007 00:05:47 +0000 (00:05 +0000)]
Patch from Anders Blomdell <anders.blomdell@control.lth.se>:
Now it compiles on 2.6.21...
Ian Abbott [Thu, 5 Jul 2007 17:15:59 +0000 (17:15 +0000)]
Replaced direct memory accesses with I/O memory access functions.
Anders Blomdell replaced bitfield types with enum types.
Frank Mori Hess [Tue, 3 Jul 2007 02:44:22 +0000 (02:44 +0000)]
New driver JR3/PCI force sensor board from Anders Blomdell
<anders.blomdell@control.lth.se>
Frank Mori Hess [Thu, 28 Jun 2007 01:20:21 +0000 (01:20 +0000)]
Patch from Anders Blomdell <anders.blomdell@control.lth.se>, fixes
quadrature encoder counting with NI M-series boards.
Ian Abbott [Wed, 27 Jun 2007 15:31:50 +0000 (15:31 +0000)]
Simplified plx9052.h and moved PCI236-specific bits into amplc_pc236.c.
Ian Abbott [Wed, 27 Jun 2007 14:37:02 +0000 (14:37 +0000)]
Allow board-specific names to be used to configure the device. For backwards
compatibility, the driver name can still be used as a wildcard to configure
any supported device.
I'll use this in future plans to support newer versions of the boards,
where a board-specific name has to be used to get at the newer features.
Ian Abbott [Wed, 27 Jun 2007 12:30:37 +0000 (12:30 +0000)]
Support PCI bus/slot configuration options.
Ian Abbott [Wed, 27 Jun 2007 12:24:30 +0000 (12:24 +0000)]
Don't bother reporting any unsupported Amplicon cards that are found.
Ian Abbott [Wed, 27 Jun 2007 12:09:39 +0000 (12:09 +0000)]
Added PCI bus/slot configuration options. Ignored if unset or zero.
Ian Abbott [Wed, 27 Jun 2007 12:00:06 +0000 (12:00 +0000)]
Changed comedi driver_name to "contec_pci_dio". "dummy" was a silly name.
Ian Abbott [Wed, 27 Jun 2007 10:54:55 +0000 (10:54 +0000)]
Replace pci_find_device with pci_get_device, and use pci_dev_get and
pci_dev_put to manage reference count for pci device.
Also, check result of kmalloc in pci_card_list_init.
Ian Abbott [Wed, 27 Jun 2007 10:37:20 +0000 (10:37 +0000)]
Don't ignore return value of comedi_request_irq().
Ian Abbott [Wed, 27 Jun 2007 10:23:44 +0000 (10:23 +0000)]
Update deprecated interrupt flags (SA_SHIRQ => IRQF_SHARED).
Frank Mori Hess [Fri, 22 Jun 2007 20:08:14 +0000 (20:08 +0000)]
A little more code intended to support counter commands eventually.
Frank Mori Hess [Mon, 18 Jun 2007 13:53:00 +0000 (13:53 +0000)]
Fixed disabling of interrupts in mite_setup().
Frank Mori Hess [Fri, 15 Jun 2007 15:29:47 +0000 (15:29 +0000)]
Added a little more on how the ni windows drivers enables mite burst
mode.
Frank Mori Hess [Fri, 15 Jun 2007 14:36:32 +0000 (14:36 +0000)]
Fixed burst mode on dma transfers on pxi-6281
Frank Mori Hess [Wed, 13 Jun 2007 20:43:45 +0000 (20:43 +0000)]
Fixed spurious warnings about AO interrupts not being acked, due to
my recent changes.
Frank Mori Hess [Wed, 13 Jun 2007 18:51:10 +0000 (18:51 +0000)]
Got rid of comedi_subdevice.cmd_cleanup after some reconsideration
(it isn't really needed). Added beginnings of support for NI
general-purpose counter commands.
Frank Mori Hess [Mon, 11 Jun 2007 19:38:26 +0000 (19:38 +0000)]
Take into account different number of dio channels on various
m-series boards.
Frank Mori Hess [Thu, 7 Jun 2007 13:30:21 +0000 (13:30 +0000)]
Added board entry for PCIe-6251, based on device id in email from
Michael Mestre <michael.mestre@free.fr>
Frank Mori Hess [Thu, 7 Jun 2007 13:26:21 +0000 (13:26 +0000)]
Changed 6413 caldac types to ad8804_debug.
Frank Mori Hess [Thu, 7 Jun 2007 13:24:57 +0000 (13:24 +0000)]
Added device id for pxi-6143 (patch from
Flavio Antonioli <flavio.antonioli@supsi.ch>)
Ian Abbott [Thu, 24 May 2007 12:41:40 +0000 (12:41 +0000)]
Applied patch from Calin A. Culianu for bug #254. The MUX for the AI
subdevice was being programmed incorrectly for synchronous acquisition of
more than one AI channel.
Frank Mori Hess [Tue, 8 May 2007 14:28:21 +0000 (14:28 +0000)]
Added check against maximum ao update rate in analog output command test.
Frank Mori Hess [Wed, 2 May 2007 16:45:18 +0000 (16:45 +0000)]
Fixed check of maximum ai scan rate to take into account multiplexed
inputs.
Frank Mori Hess [Wed, 2 May 2007 16:12:54 +0000 (16:12 +0000)]
Added ao_speed board field for maximum analog output update rate
with commands.
Frank Mori Hess [Wed, 2 May 2007 13:30:21 +0000 (13:30 +0000)]
Tweaked order deallocations happen for an async buffer allocated
with vmalloc.
Frank Mori Hess [Tue, 1 May 2007 21:16:15 +0000 (21:16 +0000)]
Fixed horrible grinding noises on mmap.
Frank Mori Hess [Tue, 1 May 2007 20:16:51 +0000 (20:16 +0000)]
Be more careful about using all the write-allocated buffer space
available, in the cases where it was allocated previously but
never used.
Frank Mori Hess [Tue, 1 May 2007 20:15:38 +0000 (20:15 +0000)]
Don't set EOMEDI_CB_EOBUF event flag in comedi_buf_write_free(),
since it may be called by user writing into buffer.
Frank Mori Hess [Tue, 1 May 2007 20:12:21 +0000 (20:12 +0000)]
Handle stop_src TRIG_COUNT with more than one channel correctly
when doing output dma.
Frank Mori Hess [Mon, 30 Apr 2007 18:36:18 +0000 (18:36 +0000)]
Mite channels 4 and 5 verified to work with m-series 6289 boards now.
Frank Mori Hess [Sun, 29 Apr 2007 21:41:33 +0000 (21:41 +0000)]
Allocate async buffer pages with dma_alloc_coherent, and map them
into continguous virtual addresses with vmap.
Frank Mori Hess [Thu, 26 Apr 2007 19:59:18 +0000 (19:59 +0000)]
Made it possible to request a mite channel from a specific range,
instead of just starting at a specified offset. Only allow
use of mite channels 0-3 for ai/ao, since those are the only
ones that seem to work. Commented out 3 ai convert pulses sent
when clearing ai fifo on 625x boards (based on NI example code),
since it appears to be wrong when tested with real hardware.
Frank Mori Hess [Thu, 26 Apr 2007 19:29:18 +0000 (19:29 +0000)]
Added some documentation of 32 bit dio port.
Frank Mori Hess [Thu, 26 Apr 2007 17:43:44 +0000 (17:43 +0000)]
Changed request/release of mite channels to use mite_channel struct
pointers, instead of channel indices. Changed many mite functions
to take mite_channel argument instead of a mite_struct and a
channel index. Added mite_dma_descriptor_ring, since drivers
need to maintain the descriptors seperatly from a channel, since
the channel is reserved/released with each use but the
descriptor ring only changes when comedi's buffer is resized. Made
ni_mio_common.c dynamically allocate mite channels for ai/ao
when needed, instead of permanently assigning mite channels to
subdevices.
Frank Mori Hess [Thu, 26 Apr 2007 15:05:09 +0000 (15:05 +0000)]
Got rid of useless include of mite.h.
Frank Mori Hess [Thu, 26 Apr 2007 14:58:03 +0000 (14:58 +0000)]
Got rid of call to subdevice's buf_change callback which occurred after
device was detached. Small cleanup of duplicated code.
Frank Mori Hess [Thu, 26 Apr 2007 14:54:10 +0000 (14:54 +0000)]
Added support for a cmd_cleanup() callback on subdevices, which
is called when a command is finished. Will be used to release
mite DMA channels when no longer in use.
Frank Mori Hess [Thu, 19 Apr 2007 19:53:11 +0000 (19:53 +0000)]
Added spinlock to mite_struct for mite_alloc_channel() and
mite_free_channel().
Frank Mori Hess [Thu, 19 Apr 2007 19:41:27 +0000 (19:41 +0000)]
Made some changes to async buffer, to better accommodate output dma
(added read allocation). Tweaked memory barrier usage for async buffer
to try and improve its correctness. comedi_buf_munge() is now handled
entirely inside comedi_buf_write_free(). Added some helper functions
mite_sync_input_dma() and mite_sync_output_dma() for use in
driver interrupt handlers. Added beginnings of support for NI general
purpose counter input commands.
Frank Mori Hess [Thu, 19 Apr 2007 19:23:33 +0000 (19:23 +0000)]
Silenced warning from gcc 4.1.2
Frank Mori Hess [Thu, 19 Apr 2007 18:59:59 +0000 (18:59 +0000)]
Silenced gcc 4.1.2 compile warning.
Frank Mori Hess [Thu, 19 Apr 2007 17:18:17 +0000 (17:18 +0000)]
Fixed for warning produced by automake 1.10
Frank Mori Hess [Thu, 19 Apr 2007 15:15:32 +0000 (15:15 +0000)]
ignore errors from kernel's make modules in all-local, to
avoid failure of make install
on nfs filesystem with root_squash
Frank Mori Hess [Sun, 18 Mar 2007 14:46:32 +0000 (14:46 +0000)]
Fix from Navneet Kataria <nkataria@npcil.co.in> for the following
problem:
... when I initialize
the device using comedi_config command, the device's 1st and 9th relay
automatically goes to energize state.
Frank Mori Hess [Mon, 26 Feb 2007 17:23:49 +0000 (17:23 +0000)]
Added support for configuring dio direction on NI 660x boards through
subdevice 1. Also added support for selecting digital input filter
with INSN_CONFIG_ALT_FILTER.
Frank Mori Hess [Wed, 21 Feb 2007 03:23:27 +0000 (03:23 +0000)]
Bug fix from Edwin Steiner <edwin.steiner@gmx.net>:
The problem is that in ni_m_series_load_channelgain_list config_bits
is not reset to 0 in the loop over the channels.
Frank Mori Hess [Mon, 5 Feb 2007 04:04:56 +0000 (04:04 +0000)]
Only check if parse_insn returns a negative value.
Frank Mori Hess [Thu, 1 Feb 2007 01:28:59 +0000 (01:28 +0000)]
Counters should start at subdevice 2, not 1 (was blowing away the
dio subdevice).
Frank Mori Hess [Wed, 31 Jan 2007 03:13:55 +0000 (03:13 +0000)]
New driver from "Calin A. Culianu" <calin@ajvar.org>:
This driver adds support for the Winsystems PCM-MIO PC/104
based multifunction board. This board has 16 AI, 8 AO, and 48 DIO
channels. The driver is almost complete -- it is just missing
asynchronous mode for AI and AO. But synchronous mode works fine. There
is even IRQ support for the DIO lines (edge-triggered interrupts).
Frank Mori Hess [Wed, 24 Jan 2007 02:00:00 +0000 (02:00 +0000)]
Patch from "Calin A. Culianu" <calin@ajvar.org>:
A pet peeve of mine is that the two driver that I wrote, the pcmda12 and
pcmuio driver, format incorrectly when displayed on the comedi.org
"Supported Hardware" web page. This is because they are incorrectly
formatted in the driver's "Devices:" line. This patch fixes this so that
the Devices: line is now correctly formatted.
Frank Mori Hess [Fri, 12 Jan 2007 19:55:19 +0000 (19:55 +0000)]
Ported ni_660x.c to use counter support provided by ni_tio.c
Frank Mori Hess [Mon, 8 Jan 2007 21:42:20 +0000 (21:42 +0000)]
Fixed some breaks that were supposed to break out of switches. Fixed
setting of first gate source when choosing NI_GPCT_GATE_PIN_GATE_SELECT().
Frank Mori Hess [Mon, 8 Jan 2007 21:10:07 +0000 (21:10 +0000)]
Fixed NI_GPCT_CLOCK_SRC_SELECT_MASK to allow for PFI sources.
Frank Mori Hess [Mon, 8 Jan 2007 20:49:31 +0000 (20:49 +0000)]
fixed read of G_Status_Register for m-series.
Frank Mori Hess [Mon, 8 Jan 2007 15:09:37 +0000 (15:09 +0000)]
Ask board which load register will be used next, since it might have
changed since the last time it was set by the driver.
Frank Mori Hess [Fri, 5 Jan 2007 20:54:17 +0000 (20:54 +0000)]
Fixed reading of counters' hardware and software save registers.
Frank Mori Hess [Fri, 5 Jan 2007 20:38:31 +0000 (20:38 +0000)]
Ported ni_mio_common.c to use ni_tio.c for NI general-purpose counter
support. Have tested only counter in continuous pulse generation mode so
far (see comedilib/demo/gpct_pulse_generator.c which I will soon commit
to comedilib cvs).
Frank Mori Hess [Fri, 5 Jan 2007 20:35:52 +0000 (20:35 +0000)]
Changed value of NI_GPCT_DISABLED_GATE_SELECT so it plays nice with
CR_CHAN macro, which I used in ni_tio.c
Frank Mori Hess [Fri, 5 Jan 2007 15:25:43 +0000 (15:25 +0000)]
Renamed INSN_CONFIG_RESET_COUNT to more general INSN_CONFIG_RESET.
Made setting of count on ni general-purpose counters leave the
values of the load a/b registers, and the load source select
undisturbed.
Frank Mori Hess [Fri, 5 Jan 2007 14:19:39 +0000 (14:19 +0000)]
Added mode bit for selecting load a/b counter load sources on NI general-
purpose counters. Renamed a couple members of the ni_gpct_arm_source
enum. Added a few lines of documentation about some additional
INSN_CONFIG.
Frank Mori Hess [Fri, 29 Dec 2006 16:47:36 +0000 (16:47 +0000)]
use $(MAKE) instead of make. This fixes the use of the -jN option for
parallel compilation.
Frank Mori Hess [Wed, 20 Dec 2006 20:51:02 +0000 (20:51 +0000)]
Calculate clock period taking into account prescaling.
Frank Mori Hess [Wed, 20 Dec 2006 18:18:30 +0000 (18:18 +0000)]
Added declaration for ni_tio_init_counter()
Frank Mori Hess [Tue, 19 Dec 2006 15:47:13 +0000 (15:47 +0000)]
Added support for hardware arming of counters, and set
Gi_Synchronize_Gate_Bit in command reg.
Frank Mori Hess [Tue, 19 Dec 2006 14:19:25 +0000 (14:19 +0000)]
Added declaration of comedi_mark_buffer_written().
Frank Mori Hess [Tue, 19 Dec 2006 02:26:51 +0000 (02:26 +0000)]
Added missing export of comedi_mark_buffer_written symbol, as noted by
"Andreas Leuner" <al14@inf.tu-dresden.de>
Frank Mori Hess [Tue, 19 Dec 2006 02:20:58 +0000 (02:20 +0000)]
defines from comedi's config.h in the top-level comedi directory
are still used.
Frank Mori Hess [Fri, 15 Dec 2006 20:54:27 +0000 (20:54 +0000)]
Added support for x2 prescaling on ni general-purpose counters.
Frank Mori Hess [Fri, 15 Dec 2006 16:34:28 +0000 (16:34 +0000)]
Added INSN_CONFIG_RESET_COUNT
Frank Mori Hess [Thu, 14 Dec 2006 21:08:45 +0000 (21:08 +0000)]
Added ni_tio_init_counter(), and exported some symbols.
Frank Mori Hess [Thu, 14 Dec 2006 19:43:26 +0000 (19:43 +0000)]
Made setting of gate sources more uniform across different hardware
families.
Frank Mori Hess [Tue, 12 Dec 2006 17:39:55 +0000 (17:39 +0000)]
Fixed interrupt handler prototypes for all drivers when compiling
against 2.6.19 kernels.
Frank Mori Hess [Tue, 12 Dec 2006 15:14:17 +0000 (15:14 +0000)]
Added PT_REGS_ARG macro to deal with change to interrupt handler
prototype in kernel 2.6.19.
Frank Mori Hess [Mon, 11 Dec 2006 20:43:34 +0000 (20:43 +0000)]
Made setting of counter clock source more uniform across e-series,
m-series, and 660x boards.
Frank Mori Hess [Fri, 8 Dec 2006 16:53:38 +0000 (16:53 +0000)]
First pass at consistent support for NI general-purpose counters.
Will replace counter support in ni_mio_common.c and ni_660x.c.
Note quite done yet, but it compiles.
Frank Mori Hess [Fri, 8 Dec 2006 16:50:11 +0000 (16:50 +0000)]
Added additional field to INSN_CONFIG_SET/GET_GATE_SRC, to support
devices with multiple gate inputs (NI counters can have 2 gates).
Bernd Porr [Wed, 6 Dec 2006 23:57:23 +0000 (23:57 +0000)]
The flag SDF_CMD_READ was missing which gave the error number "-1" during async reads.
Frank Mori Hess [Wed, 6 Dec 2006 13:58:50 +0000 (13:58 +0000)]
Added missing include of linux/version.h
Bernd Porr [Tue, 5 Dec 2006 21:51:56 +0000 (21:51 +0000)]
Removed the boolean definition from the driver and moved it to stddef.h
Bernd Porr [Tue, 5 Dec 2006 21:50:37 +0000 (21:50 +0000)]
Moved the boolean definition from the driver files to stddef because
from 2.6.19 boolean is defined there aleady.
Bernd Porr [Tue, 5 Dec 2006 21:46:20 +0000 (21:46 +0000)]
From 2.6.19 config.h is no longer needed. Added an ifdef statement.
Bernd Porr [Mon, 4 Dec 2006 23:24:07 +0000 (23:24 +0000)]
Added external trigger support to the driver.
Added a define for 2.6.19 because the completion function is without register arguments (as was pre 2.6.0).
Changed the GPIF programming so that it does no longer loops through the idle state. Instead I use the first states to reset the counter for channels.
Bernd Porr [Mon, 4 Dec 2006 23:20:21 +0000 (23:20 +0000)]
From 2.6.19 the pointer to the completion function is (again) without the register argument. That's basically pre 2.6.0
Frank Mori Hess [Wed, 29 Nov 2006 15:31:03 +0000 (15:31 +0000)]
Minor update to documentation comments.
Frank Mori Hess [Mon, 20 Nov 2006 20:15:56 +0000 (20:15 +0000)]
Mite byte-swapping bits seem to be associated with device/memory
ports as opposed to being always 16 or 32 bit swaps.
Frank Mori Hess [Mon, 20 Nov 2006 19:41:51 +0000 (19:41 +0000)]
Fixed possibile failures to decrement module use count on errors
(one was bug I probably introduced recently).
Frank Mori Hess [Mon, 20 Nov 2006 16:37:21 +0000 (16:37 +0000)]
Differentiate between 622x, 625x, and 628x m-series boards. Fix adc reset
for 625x boards, based on example code from ni (untested on hardware).
Fix polarity of AI_CONVERT output for 622x boards, based on ni
example code. Do 32 bit pci transfers on analog output dma, now that
the sample ordering has been resolved through byte-swapping bits
in mite chip. Use external clock (when configured) for timebase 3
too (I believe timebase 3 is the 80 MHz clock).
Frank Mori Hess [Fri, 17 Nov 2006 16:07:51 +0000 (16:07 +0000)]
Figured out what a couple bits in the mite channel control register
do (byte swapping). Used them to make 32 bit pci transfers to
16 bit analog outputs practical.
Frank Mori Hess [Fri, 17 Nov 2006 14:03:42 +0000 (14:03 +0000)]
Don't assume class_device has a devt member.
Frank Mori Hess [Thu, 16 Nov 2006 02:10:35 +0000 (02:10 +0000)]
Changed some ad8804 caldac types to ad8804_debug
Frank Mori Hess [Wed, 15 Nov 2006 21:25:28 +0000 (21:25 +0000)]
Added support for generating a seperate device file for each
subdevice that supports commands. Subdevices need to indicate
which directions they support commands in with the new subdevice
flags SDF_CMD_READ and SDF_CMD_WRITE. Breaks compatibility
with 2.4 kernels. Currently, only 8-bit minor numbers are
used, limiting the maximum subdevice to 15. This should
be easily changeable once more distros support 20-bit
minor numbers.
Ian Abbott [Mon, 13 Nov 2006 14:11:52 +0000 (14:11 +0000)]
Replaced deprecated use of check_region().
Ian Abbott [Mon, 13 Nov 2006 14:06:57 +0000 (14:06 +0000)]
Fixed some C++-isms: mixed declarations and code.