aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorH Hartley Sweeten <hsweeten@visionengravers.com>2013-01-18 10:46:49 -0700
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2013-01-18 12:57:23 -0800
commit8d5a19db72f72a730f3a1938044f12d9e1cf25a5 (patch)
tree158b6099ad5d744707606581d7c7ebd11bb81b02
parentb6e7714cc261ef478f95449a32565d41378c9a87 (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.c4
-rw-r--r--drivers/staging/comedi/drivers/addi_apci_16xx.c35
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;
}