diff options
author | H Hartley Sweeten <hsweeten@visionengravers.com> | 2013-01-18 10:46:49 -0700 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2013-01-18 12:57:23 -0800 |
commit | 8d5a19db72f72a730f3a1938044f12d9e1cf25a5 (patch) | |
tree | 158b6099ad5d744707606581d7c7ebd11bb81b02 | |
parent | b6e7714cc261ef478f95449a32565d41378c9a87 (diff) |
staging: comedi: addi_apci_16xx: cleanup subdevice initialization
The comedi subdevice in this driver is a simple digital i/o
device.
Currently, the code abuses the comedi API by redefining the
COMEDI_SUBD_SERIAL type as COMEDI_SUBD_TTLIO and using that
for the 's->type'. Remove the defines and use the proper type,
COMEDI_SUBD_DIO.
The current code also sets the subdev_flags SDF_GROUND and SDF_COMMON
for the subdevice. These flags really only have meaning for analog
subdevices. Remove them.
All the boards supported by this driver use the same functions for
the subdevice 'insn_*' operations. Remove this information from
the boardinfo and set the s->insn_* operations directly in the init.
Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Cc: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r-- | drivers/staging/comedi/drivers/addi-data/hwdrv_apci16xx.c | 4 | ||||
-rw-r--r-- | drivers/staging/comedi/drivers/addi_apci_16xx.c | 35 |
2 files changed, 11 insertions, 28 deletions
diff --git a/drivers/staging/comedi/drivers/addi-data/hwdrv_apci16xx.c b/drivers/staging/comedi/drivers/addi-data/hwdrv_apci16xx.c index da4f03ba8fa..97f74417249 100644 --- a/drivers/staging/comedi/drivers/addi-data/hwdrv_apci16xx.c +++ b/drivers/staging/comedi/drivers/addi-data/hwdrv_apci16xx.c @@ -47,10 +47,6 @@ You should also find the complete GPL in the COPYING file accompanying this sour +-----------------------------------------------------------------------+ */ -#ifndef COMEDI_SUBD_TTLIO -#define COMEDI_SUBD_TTLIO 11 /* Digital Input Output But TTL */ -#endif - #define APCI16XX_TTL_INIT 0 #define APCI16XX_TTL_INITDIRECTION 1 #define APCI16XX_TTL_OUTPUTMEMORY 2 diff --git a/drivers/staging/comedi/drivers/addi_apci_16xx.c b/drivers/staging/comedi/drivers/addi_apci_16xx.c index 5f1de019f51..3ad3fec54f0 100644 --- a/drivers/staging/comedi/drivers/addi_apci_16xx.c +++ b/drivers/staging/comedi/drivers/addi_apci_16xx.c @@ -3,10 +3,6 @@ #include "addi-data/addi_common.h" -#ifndef COMEDI_SUBD_TTLIO -#define COMEDI_SUBD_TTLIO 11 /* Digital Input Output But TTL */ -#endif - #include "addi-data/hwdrv_apci16xx.c" static const struct addi_board apci16xx_boardtypes[] = { @@ -15,19 +11,11 @@ static const struct addi_board apci16xx_boardtypes[] = { .i_VendorId = PCI_VENDOR_ID_ADDIDATA, .i_DeviceId = 0x1009, .i_NbrTTLChannel = 48, - .ttl_config = i_APCI16XX_InsnConfigInitTTLIO, - .ttl_bits = i_APCI16XX_InsnBitsReadTTLIO, - .ttl_read = i_APCI16XX_InsnReadTTLIOAllPortValue, - .ttl_write = i_APCI16XX_InsnBitsWriteTTLIO, }, { .pc_DriverName = "apci1696", .i_VendorId = PCI_VENDOR_ID_ADDIDATA, .i_DeviceId = 0x100A, .i_NbrTTLChannel = 96, - .ttl_config = i_APCI16XX_InsnConfigInitTTLIO, - .ttl_bits = i_APCI16XX_InsnBitsReadTTLIO, - .ttl_read = i_APCI16XX_InsnReadTTLIOAllPortValue, - .ttl_write = i_APCI16XX_InsnBitsWriteTTLIO, }, }; @@ -80,18 +68,17 @@ static int apci16xx_auto_attach(struct comedi_device *dev, /* Initialize the TTL digital i/o */ s = &dev->subdevices[0]; - s->type = COMEDI_SUBD_TTLIO; - s->subdev_flags = - SDF_WRITEABLE | SDF_READABLE | SDF_GROUND | SDF_COMMON; - s->n_chan = this_board->i_NbrTTLChannel; - s->maxdata = 1; - s->io_bits = 0; /* all bits input */ - s->len_chanlist = this_board->i_NbrTTLChannel; - s->range_table = &range_digital; - s->insn_config = this_board->ttl_config; - s->insn_bits = this_board->ttl_bits; - s->insn_read = this_board->ttl_read; - s->insn_write = this_board->ttl_write; + s->type = COMEDI_SUBD_DIO; + s->subdev_flags = SDF_WRITEABLE | SDF_READABLE; + s->n_chan = this_board->i_NbrTTLChannel; + s->maxdata = 1; + s->io_bits = 0; /* all bits input */ + s->len_chanlist = this_board->i_NbrTTLChannel; + s->range_table = &range_digital; + s->insn_config = i_APCI16XX_InsnConfigInitTTLIO; + s->insn_bits = i_APCI16XX_InsnBitsReadTTLIO; + s->insn_read = i_APCI16XX_InsnReadTTLIOAllPortValue; + s->insn_write = i_APCI16XX_InsnBitsWriteTTLIO; return 0; } |