Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8d5a19db authored by H Hartley Sweeten's avatar H Hartley Sweeten Committed by Greg Kroah-Hartman
Browse files

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: default avatarH Hartley Sweeten <hsweeten@visionengravers.com>
Cc: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent b6e7714c
Loading
Loading
Loading
Loading
+0 −4
Original line number Diff line number Diff line
@@ -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
+11 −24
Original line number Diff line number Diff line
@@ -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->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 = 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->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;
}