Skip to content

Commit

Permalink
staging: comedi: addi_apci_16xx: cleanup subdevice initialization
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
H Hartley Sweeten authored and Greg Kroah-Hartman committed Jan 18, 2013
1 parent b6e7714 commit 8d5a19d
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 28 deletions.
4 changes: 0 additions & 4 deletions drivers/staging/comedi/drivers/addi-data/hwdrv_apci16xx.c
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
35 changes: 11 additions & 24 deletions drivers/staging/comedi/drivers/addi_apci_16xx.c
Original file line number Diff line number Diff line change
Expand Up @@ -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[] = {
Expand All @@ -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,
},
};

Expand Down Expand Up @@ -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;
}
Expand Down

0 comments on commit 8d5a19d

Please sign in to comment.