This driver uses 32-bit instructions to write the 8254 timers so we
can't use the helper functions provided by 8253.h.
To clarify the code introduce a helper function to write to the timers.
Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
According to the PCI-9118 User's Manual, all registers are 32-bit. Fix a
couple of read/write operations that use 16-bit access.
Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
For aesthetics, add some whitespace to the analog input subdevice init.
Tidy up the subdevice n_chan initialization.
Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
For aesthetics, add some whitespace to the analog output subdevice init.
Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
For aesthetics, add some whitespace to the digital input subdevice init.
Remove the SDF_GROUND and SDF_COMMON subdev_flags. These flags only apply
to analog subdevices.
Remove the 'len_chanlist' init, this subdevice member is only used with
subdevices that support async commands.
Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
For aesthetics, add some whitespace to the digital output subdevice init.
Remove the SDF_GROUND and SDF_COMMON subdev_flags. These flags only apply
to analog subdevices.
Remove the 'len_chanlist' init, this subdevice member is only used with
subdevices that support async commands.
Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
The (*auto_attach) and legacy (*attach) both allocate the private data but
don't use it. For aesthetics, move the allocation into the common attach
code.
Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
For aesthetics, rename the struct used for the boardinfo so it has
namespace associated with the driver. Also, rename the local variable
used for the boardinfo pointer to simply 'board'.
Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
The (*auto_attach) in this driver will set the dev->board_name and the comedi core
will set it when using the legacy (*attach). Remove the unnecessary initialization
in pci9118_common_attach().
Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This member of the boardinfo is the same for all entries. Remove it.
Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
The pci_device_id 'driver_data' is passed as the 'context' when the (*auto_attach)
mechanism is used to attach this driver. Add a boardid enum and index the boardinfo
so that the "pci9118dg" boardinfo is automatically selected. This allow removing
the pci9118_find_boardinfo() helper.
Unfortunately all the boards supported by this driver have the same device id.
Add commented out entries in the device table for them.
Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
The boards supported by this driver either have 12-bit or 16-bit analog
inputs. For aesthetics, replace the 'ai_maxdata' member in the boardinfo
with a bit-field flag, 'ai_is_16bit', and refactor the subdevice init to
use the new member.
Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
The boards supported by this driver either have "normal" or "high gain"
analog input ranges.
For aesthetics, replace the 'rangelist_ai' member in the boardinfo with
a bit-field flag 'is_hg' to indicate the "high gain" range is used.
Refactor the subdevice init to use the flag to set the correct range_table.
Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This value can easily be calculated based on the minimum sampling rate,
'ai_ns_min', and the base clock speed of the timers. Do that instead and
remove the boardinfo.
Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
The minimum convert time 'ai_ns_min' is based on the sampling rate of the A/D
converter. This driver supports boards that use different ADC chips for 16-bit
and 12-bit analog inputs. These chips have different sampling rates.
For aesthetics, move the 'ai_ns_min' member from the boardinfo to the private
data. Initialize the member during the attach based on the 'maxdata' of the
analog inputs.
Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This member of the boardinfo is the same for all entries. Remove it.
Also, remove the initialization of the subdevice 'len_chanlist'. This
member is only used if the subdevice supports async commands.
Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This member of the boardinfo is the same for all entries. It's also
half the subdevice 'n_chan'. Use that instead and remove the boardinfo.
Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This member of the boardinfo is the same for all entries. Remove it.
Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This member of the boardinfo is the same for all entries. Remove it.
Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This member of the boardinfo is the same for all entries. Remove it.
Also, remove the initialization of the subdevice 'len_chanlist'. This
member is only used if the subdevice supports async commands.
Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This member of the boardinfo is the same for all entries. Remove it.
Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This member of the boardinfo is the same for all entries. Remove it.
Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Remove all the boardinfo members that are not used by the driver.
Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
git-grep reveals that hwdrv_apci1500.c is the only file in comedi that uses
dev->hw_dev in calls to dev_{err,warn}(). The rest of the drivers pass
dev->class_dev to these macros instead. Switch the dev_warn() calls in
this driver to use dev->class_dev as well, for consistency.
Signed-off-by: Chase Southwood <chase.southwood@gmail.com>
Reviewed-by: Ian Abbott <abbotti@mev.co.uk>
Reviewed-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Replace use of the `TRIG_ROUND_...` macros with the new names
`CMDF_ROUND_...`. The numeric values are unchanged.
Signed-off-by: Ian Abbott <abbotti@mev.co.uk>
Reviewed-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Replace use of the `TRIG_ROUND_...` macros with the new names
`CMDF_ROUND_...`. The numeric values are unchanged.
Signed-off-by: Ian Abbott <abbotti@mev.co.uk>
Reviewed-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Replace use of the `TRIG_ROUND_...` macros with the new names
`CMDF_ROUND_...`. The numeric values are unchanged.
Signed-off-by: Ian Abbott <abbotti@mev.co.uk>
Reviewed-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Replace use of the `TRIG_ROUND_...` macros with the new names
`CMDF_ROUND_...`. The numeric values are unchanged.
Signed-off-by: Ian Abbott <abbotti@mev.co.uk>
Reviewed-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Replace use of the `TRIG_ROUND_...` macros with the new names
`CMDF_ROUND_...`. The numeric values are unchanged.
Signed-off-by: Ian Abbott <abbotti@mev.co.uk>
Reviewed-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Replace use of the `TRIG_ROUND_...` macros with the new names
`CMDF_ROUND_...`. The numeric values are unchanged.
Signed-off-by: Ian Abbott <abbotti@mev.co.uk>
Reviewed-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Replace use of the `TRIG_ROUND_...` macros with the new names
`CMDF_ROUND_...`. The numeric values are unchanged.
Signed-off-by: Ian Abbott <abbotti@mev.co.uk>
Reviewed-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Replace use of the `TRIG_ROUND_...` macros with the new names
`CMDF_ROUND_...`. The numeric values are unchanged.
Signed-off-by: Ian Abbott <abbotti@mev.co.uk>
Reviewed-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Replace use of the `TRIG_ROUND_...` macros with the new names
`CMDF_ROUND_...`. The numeric values are unchanged.
Signed-off-by: Ian Abbott <abbotti@mev.co.uk>
Reviewed-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Replace use of the `TRIG_ROUND_...` macros with the new names
`CMDF_ROUND_...`. The numeric values are unchanged.
Signed-off-by: Ian Abbott <abbotti@mev.co.uk>
Reviewed-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Replace use of the `TRIG_ROUND_...` macros with the new names
`CMDF_ROUND_...`. The numeric values are unchanged.
Signed-off-by: Ian Abbott <abbotti@mev.co.uk>
Reviewed-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Replace use of the `TRIG_ROUND_...` macros with the new names
`CMDF_ROUND_...`. The numeric values are unchanged.
Signed-off-by: Ian Abbott <abbotti@mev.co.uk>
Reviewed-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Replace use of the `TRIG_ROUND_...` macros with the new names
`CMDF_ROUND_...`. The numeric values are unchanged.
Signed-off-by: Ian Abbott <abbotti@mev.co.uk>
Reviewed-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Replace use of the `TRIG_ROUND_...` macros with the new names
`CMDF_ROUND_...`. The numeric values are unchanged.
Signed-off-by: Ian Abbott <abbotti@mev.co.uk>
Reviewed-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Replace use of the `TRIG_ROUND_...` macros with the new names
`CMDF_ROUND_...`. The numeric values are unchanged.
Signed-off-by: Ian Abbott <abbotti@mev.co.uk>
Reviewed-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
The `TRIG_ROUND_...` macros are some of the values that can be OR-ed
into the `flags` member of `struct comedi_cmd`. They may influence the
rounding of sample timings during operation of the asynchronous command.
The names are a bit of a left-over from earlier times. It would be
better to use the names `CMDF_ROUND_...` to match various other command
flags.
Define `CMDF_ROUND_MASK`, `CMDF_ROUND_NEAREST`, `CMDF_ROUND_DOWN`,
`CMDF_ROUND_UP` and `CMDF_ROUND_UP_NEXT` with the same numeric values as
`TRIG_ROUND_MASK`, `TRIG_ROUND_NEAREST`, `TRIG_ROUND_DOWN`,
`TRIG_ROUND_UP` and `TRIG_ROUND_UP_NEXT`, and redefine the
`TRIG_ROUND_...` macros as synonyms of the `CMDF_ROUND_...` macros.
Signed-off-by: Ian Abbott <abbotti@mev.co.uk>
Reviewed-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
`TRIG_BOGUS` is now just a synonym for `CMDF_BOGUS`. Change
`do_cmd_ioctl()` to use the new name.
Signed-off-by: Ian Abbott <abbotti@mev.co.uk>
Reviewed-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
`TRIG_BOGUS` is one of the values that can be OR-ed into the `flags`
member of `struct comedi_cmd`. It causes the comedi core to go through
some of the motions of setting up an asynchronous command without
actually setting it up. If all goes well, it causes the command set-up
to fail with an `EAGAIN` error.
The name `TRIG_BOGUS` is a bit of a left-over from earlier times. A
better name would be `CMDF_BOGUS` to match various other command flags.
Define `CMDF_BOGUS` with the same numeric value as the old `TRIG_BOGUS`
and redefine `TRIG_BOGUS` as a synonym of it.
Signed-off-by: Ian Abbott <abbotti@mev.co.uk>
Reviewed-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Replace use of `TRIG_WAKE_EOS` command flag with the new name
`CMDF_WAKE_EOS`. The numeric value is unchanged.
Signed-off-by: Ian Abbott <abbotti@mev.co.uk>
Reviewed-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Replace use of `TRIG_WAKE_EOS` command flag with the new name
`CMDF_WAKE_EOS`. The numeric value is unchanged.
Signed-off-by: Ian Abbott <abbotti@mev.co.uk>
Reviewed-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Replace use of `TRIG_WAKE_EOS` command flag with the new name
`CMDF_WAKE_EOS`. The numeric value is unchanged.
Signed-off-by: Ian Abbott <abbotti@mev.co.uk>
Reviewed-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Replace use of `TRIG_WAKE_EOS` command flag with the new name
`CMDF_WAKE_EOS`. The numeric value is the same.
Signed-off-by: Ian Abbott <abbotti@mev.co.uk>
Reviewed-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Replace use of `TRIG_WAKE_EOS` command flag with the new name
`CMDF_WAKE_EOS`. The numeric value is the same.
Signed-off-by: Ian Abbott <abbotti@mev.co.uk>
Reviewed-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Replace use of `TRIG_WAKE_EOS` command flag with the new name
`CMDF_WAKE_EOS`. The numeric value is unchanged.
Signed-off-by: Ian Abbott <abbotti@mev.co.uk>
Reviewed-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Replace use of `TRIG_WAKE_EOS` command flag with the new name
`CMDF_WAKE_EOS`. The numeric value is unchanged.
Signed-off-by: Ian Abbott <abbotti@mev.co.uk>
Reviewed-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Replace use of `TRIG_WAKE_EOS` command flag with the new name
`CMDF_WAKE_EOS`. The numeric value is unchanged.
Signed-off-by: Ian Abbott <abbotti@mev.co.uk>
Reviewed-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>