- 17 Jun, 2013 40 commits
-
-
H Hartley Sweeten authored
Some of the boards supported by this driver only have differential analog inputs. Add a new boardinfo, 'ai_subdev_flags', to allow properly setting the subdev_flags for the analog input subdevice. 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>
-
H Hartley Sweeten authored
Rename this CamelCase boardinfo. Also, change its type to match the type of comedi_subdevice 'maxdata'. For aesthetic reasons, change the values to hex since this is more common for the 'maxdata' values in comedi drivers. 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>
-
H Hartley Sweeten authored
Rename this CamelCase 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>
-
H Hartley Sweeten authored
The analog input s->len_chanlist for the boards supported by this driver should always be the number of channels (s->n_chan). Use that instead and remove the 'i_AiChannelList' from 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>
-
H Hartley Sweeten authored
The interrupt function should be using comedi_event() to let the user know data is available from the analog input subdevice. The analog input subdevice is currently broken and nothing sets tsk_Current anyway so just 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>
-
H Hartley Sweeten authored
This variable holds the ioremap'ed PCI bar 3 used to read/write the analog input and output registers. Rename it to simply 'mmio'. 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>
-
H Hartley Sweeten authored
The private data 'iobase' is the same as the comedi_device 'iobase'. Use the one in the comedi_device instead. 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>
-
H Hartley Sweeten authored
This variable is not used by the driver. 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>
-
H Hartley Sweeten authored
The analog input subdevice in this driver is broken. It abuses the comedi API and will not work as-is. Start cleaning it up so it can be fixed. Rename the CamelCase function and the local variables. Refactor the function to remove the indents. Most of the indents are left over from the previous patches. Invert the early tests to provide a quick exit from the function. 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>
-
H Hartley Sweeten authored
The comedi core validates the insn->chanspec channel and range before calling the subdevice (*insn_read) function. Remove the unnecessary sanity checks. 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>
-
H Hartley Sweeten authored
This variable is set during the attach of the board and never cleared so the test in i_APCI3XXX_InsnReadAnalogInput() will always succeed. Just remove the variable to help with cleaning up this 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>
-
H Hartley Sweeten authored
This define is not used by the driver. 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>
-
H Hartley Sweeten authored
Currently, the subdevice functions used to configure and read/write the ttl digital i/o ports is way over to complicated. The (*insn_config) function also abuses the comedi API by overriding the instruction command passed in data[0]. Fix the ttl digital i/o support to work like the comedi core expects. The (*insn_config) function supports the three instructions common for COMEDI_SUBD_DIO subdevices: INSN_CONFIG_DIO_INPUT - configure the specified channel as input INSN_CONFIG_DIO_OUTPUT - configure the specified channel as output INSN_CONFIG_DIO_QUERY - returns the status of the specified channel Port 0 (channels 0-7) is always input Port 1 (channels 8-15) is always output Port 2 (channels 9-23) are programmable i/o (all channels are input or output) The (*insn_bits) function allows writing to the output channels and returns the state of all channels. The (*insn_read) and (*insn_write) functions are not required. The comedi core will emulate them using the (*insn_bits) function. 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>
-
H Hartley Sweeten authored
Rename this CamelCase function and absorb it from hwdrv_apci3xxx.c directly into the driver. Tidy up the analog output subdevice init by adding some whitespace. 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>
-
H Hartley Sweeten authored
The boards that have analog outputs always have 4 channels. Remove the 'i_NbrAoChannel' data from the boardinfo and add a bit field to indicate that the board 'has_ao'. Use that to conditionally initialize the subdevice and open code the s->n_chan value of 4. 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>
-
H Hartley Sweeten authored
Rename the CamelCase local variables. The comedi core validates the insn->chanspec to make sure the channel number and range are valid for the subdevice. The extra checks in this function are not required. (*insn_write) functions are supposed to write all the data passed in the data pointer (insn->n values) then return the number of data values written of an errno. Fix this function to work like the core expects. 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>
-
H Hartley Sweeten authored
For aesthetic reasons, add some whitespace to the initialization of the ttl digital i/o subdevices. Fix the subdev_flags for the subdevice. The SDF_GROUND and SDF_COMMON flags only apply to analog subdevices. Fix the s->iobits for the subdevice. According to the datasheet: Port 0 (channels 0-7) are always outputs Port 1 (channels 8-15) are always inputs Port 2 (channels 9-23) are programmable i/o (default to 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>
-
H Hartley Sweeten authored
For aesthetic reasons, add some whitespace to the initialization of the digital input and output subdevices. Fix the subdev_flags for both subdevices. The SDF_GROUND and SDF_COMMON flags only apply to analog subdevices. Digital output subdevices do not need the SDF_READABLE flag set. Remove the initialization of s->io_bits. It only has meaning for COMEDI_SUBD_DIO subdevices. 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>
-
H Hartley Sweeten authored
The boards that have analog outputs always have 12-bit resolution. Remove the 'i_AoMaxdata' data from the boardinfo and open code the s->maxdata. Use the hex value for the resolution since that is more common in comedi drivers. 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>
-
H Hartley Sweeten authored
The boards that have ttl input and output channels always have 24 channels. Remove the 'i_NbrTTLChannel' data from the boardinfo and add a bit field to indicate that the board 'has_ttl_io'. Use that to conditionally initialize the subdevice and open code the s->n_chan value of 24. 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>
-
H Hartley Sweeten authored
The boards that have digital input and output channels always have 4 inputs and 4 outputs. Remove the 'i_NbrD[io]Channel' data from the boardinfo and add two bit fields to indicate that the board 'has_dig_in' and 'has_dig_out'. Use those to conditionally initialize the subdevices and open code the s->n_chan value of 4 for both subdevices. 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>
-
H Hartley Sweeten authored
This data in the boardinfo is not used. 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>
-
H Hartley Sweeten authored
Move the copyright information from hwdrv_apci3xxx.c to the actual driver, addi_apci_3xxx.c. Reformat the information to follow the CodingStyle. 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>
-
H Hartley Sweeten authored
This driver does not use anything provided by these includes. Remove 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>
-
H Hartley Sweeten authored
This driver abuses the enum comedi_subdevice_type by redefining enum 11 - COMEDI_SUBD_SERIAL as COMEDI_SUBD_TTLIO. The subdevice that uses COMEDI_SUBD_TTLIO is a TTL Digital Input/Output subdevice. Remove COMEDI_SUBD_TTLIO and just use COMEDI_SUBD_DIO as the subdevice type. 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>
-
H Hartley Sweeten authored
The struct addi_private definition from the addi-data "common" code is very bloated. Introduce a local struct apci3xxx_private that just has the data needed by this driver. Add a couple includes that this driver depends on and remove the include of "addi-data/addi_common.h" since this driver no longer depends on 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>
-
H Hartley Sweeten authored
The struct addi_board definition from the addi-data "common" code is very bloated. Introduce a private struct apci3xxx_boardinfo that just has the data needed by this driver. Move the #include "addi-data/hwdrv_apci3xxx.c" so it will have the new struct definition. 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>
-
H Hartley Sweeten authored
The same subdevice callbacks are used by all the boards supported by this driver. Remove the information from the boardinfo and initialize the subdevices directly. Remove the callback initializations that are always = NULL. 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>
-
H Hartley Sweeten authored
The boards supported by this driver do not have an eeprom. Remove the need for the devpriv->s_EeParameters values by just using the values from the boardinfo directly. 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>
-
H Hartley Sweeten authored
Digital output subdevices always have a 'maxdata' of '1'. Remove the 'i_DoMaxData' boardinfo and just open code the value. 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>
-
H Hartley Sweeten authored
All of the boards supported by this driver have a PCI 9054 chip without an attached eeprom. Remove the unused support code that reads the eeprom. Also, remove the unnecessary 'i_PCIEeprom' and 'pc_EepromChip' data from 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>
-
H Hartley Sweeten authored
None of the boards supported by this driver have a timer. Remove the unnecessary 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>
-
H Hartley Sweeten authored
This driver does not use dma. Remove the unnecessary 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>
-
H Hartley Sweeten authored
The boards supported by this driver all have an ADDIDATA_9054 eeprom. Knowing this we can simplify the code that reads the PCI bars to get the iobase address 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>
-
H Hartley Sweeten authored
All the boards supported by this driver have the same private analog input and output ranges. Absorb the comedi_lrange tables from hwdrv_apci3xxx.c directly into the driver. For aesthetic reasons, rename the tables so they have namespace associated with the driver. Remove the 'pr_AiRangelist' and 'pr_AoRangelist' data from the boardinfo and use the range tables directly when initializing the subdevices. 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>
-
H Hartley Sweeten authored
All the boards supported by this driver use the same 'interrupt' callback in the boardinfo. Absorb the interrupt function from hwdrv_apci3xxx.c directly into the driver. Rename the CamelCase function to apci3xxx_irq_handler(). Remove v_ADDI_Interrupt(), which indirectly called the interrupt function, and use apci3xxx_irq_handler instead when requesting the irq. Remove the 'interrupt' callback from 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>
-
H Hartley Sweeten authored
Remove the extra comments and rename the CamelCase local variables. 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>
-
H Hartley Sweeten authored
All the boards supported by this driver that have digital inputs use the same 'di_bits' callback in the boardinfo. Absorb the function from hwdrv_apci3xxx.c directly into the driver. Remove the 'di_bits' callback from the boardinfo and use the function directly to set the subdevice (*insn_bits). None of the boards supported by this driver have a 'di_config', 'di_read', or 'io_write' callback. Remove the unnecessary setting of the subdevice callbacks. 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>
-
H Hartley Sweeten authored
All the boards supported by this driver that have digital outputs use the same 'do_bits' callback in the boardinfo. Absorb the function from hwdrv_apci3xxx.c directly into the driver. Remove the 'do_bits' callback from the boardinfo and use the function directly to set the subdevice (*insn_bits). None of the boards supported by this driver have a 'do_config', 'do_write', or 'do_read' callback. Remove the unnecessary setting of the subdevice callbacks. 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>
-
H Hartley Sweeten authored
All the boards supported by this driver use the same 'reset' callback in the boardinfo. Absorb the reset function, apci3xxx_reset(), from hwdrv_apci3xxx.c directly into the driver. Remove i_ADDI_Reset(), which indirectly called the reset function, and just call apci3xx_reset() directly. Remove the 'reset' callback from 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>
-