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

staging: comedi: addi_apci_3xxx: absorb apci3xxx_di_insn_bits()



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: default avatarH Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: default avatarIan Abbott <abbotti@mev.co.uk>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent c3d8605f
Loading
Loading
Loading
Loading
+0 −12
Original line number Diff line number Diff line
@@ -1271,15 +1271,3 @@ static int i_APCI3XXX_InsnWriteTTLIO(struct comedi_device *dev,

	return i_ReturnValue;
}

static int apci3xxx_di_insn_bits(struct comedi_device *dev,
				 struct comedi_subdevice *s,
				 struct comedi_insn *insn,
				 unsigned int *data)
{
	struct addi_private *devpriv = dev->private;

	data[1] = inl(devpriv->iobase + 32) & 0xf;

	return insn->n;
}
+13 −18
Original line number Diff line number Diff line
@@ -187,7 +187,6 @@ static const struct addi_board apci3xxx_boardtypes[] = {
		.interrupt		= v_APCI3XXX_Interrupt,
		.ai_config		= i_APCI3XXX_InsnConfigAnalogInput,
		.ai_read		= i_APCI3XXX_InsnReadAnalogInput,
		.di_bits		= apci3xxx_di_insn_bits,
		.ttl_config		= i_APCI3XXX_InsnConfigInitTTLIO,
		.ttl_bits		= i_APCI3XXX_InsnBitsTTLIO,
		.ttl_read		= i_APCI3XXX_InsnReadTTLIO,
@@ -212,7 +211,6 @@ static const struct addi_board apci3xxx_boardtypes[] = {
		.interrupt		= v_APCI3XXX_Interrupt,
		.ai_config		= i_APCI3XXX_InsnConfigAnalogInput,
		.ai_read		= i_APCI3XXX_InsnReadAnalogInput,
		.di_bits		= apci3xxx_di_insn_bits,
		.ttl_config		= i_APCI3XXX_InsnConfigInitTTLIO,
		.ttl_bits		= i_APCI3XXX_InsnBitsTTLIO,
		.ttl_read		= i_APCI3XXX_InsnReadTTLIO,
@@ -237,7 +235,6 @@ static const struct addi_board apci3xxx_boardtypes[] = {
		.interrupt		= v_APCI3XXX_Interrupt,
		.ai_config		= i_APCI3XXX_InsnConfigAnalogInput,
		.ai_read		= i_APCI3XXX_InsnReadAnalogInput,
		.di_bits		= apci3xxx_di_insn_bits,
		.ttl_config		= i_APCI3XXX_InsnConfigInitTTLIO,
		.ttl_bits		= i_APCI3XXX_InsnBitsTTLIO,
		.ttl_read		= i_APCI3XXX_InsnReadTTLIO,
@@ -262,7 +259,6 @@ static const struct addi_board apci3xxx_boardtypes[] = {
		.interrupt		= v_APCI3XXX_Interrupt,
		.ai_config		= i_APCI3XXX_InsnConfigAnalogInput,
		.ai_read		= i_APCI3XXX_InsnReadAnalogInput,
		.di_bits		= apci3xxx_di_insn_bits,
		.ttl_config		= i_APCI3XXX_InsnConfigInitTTLIO,
		.ttl_bits		= i_APCI3XXX_InsnBitsTTLIO,
		.ttl_read		= i_APCI3XXX_InsnReadTTLIO,
@@ -287,7 +283,6 @@ static const struct addi_board apci3xxx_boardtypes[] = {
		.interrupt		= v_APCI3XXX_Interrupt,
		.ai_config		= i_APCI3XXX_InsnConfigAnalogInput,
		.ai_read		= i_APCI3XXX_InsnReadAnalogInput,
		.di_bits		= apci3xxx_di_insn_bits,
		.ttl_config		= i_APCI3XXX_InsnConfigInitTTLIO,
		.ttl_bits		= i_APCI3XXX_InsnBitsTTLIO,
		.ttl_read		= i_APCI3XXX_InsnReadTTLIO,
@@ -312,7 +307,6 @@ static const struct addi_board apci3xxx_boardtypes[] = {
		.interrupt		= v_APCI3XXX_Interrupt,
		.ai_config		= i_APCI3XXX_InsnConfigAnalogInput,
		.ai_read		= i_APCI3XXX_InsnReadAnalogInput,
		.di_bits		= apci3xxx_di_insn_bits,
		.ttl_config		= i_APCI3XXX_InsnConfigInitTTLIO,
		.ttl_bits		= i_APCI3XXX_InsnBitsTTLIO,
		.ttl_read		= i_APCI3XXX_InsnReadTTLIO,
@@ -441,7 +435,6 @@ static const struct addi_board apci3xxx_boardtypes[] = {
		.ai_config		= i_APCI3XXX_InsnConfigAnalogInput,
		.ai_read		= i_APCI3XXX_InsnReadAnalogInput,
		.ao_write		= i_APCI3XXX_InsnWriteAnalogOutput,
		.di_bits		= apci3xxx_di_insn_bits,
		.ttl_config		= i_APCI3XXX_InsnConfigInitTTLIO,
		.ttl_bits		= i_APCI3XXX_InsnBitsTTLIO,
		.ttl_read		= i_APCI3XXX_InsnReadTTLIO,
@@ -470,7 +463,6 @@ static const struct addi_board apci3xxx_boardtypes[] = {
		.ai_config		= i_APCI3XXX_InsnConfigAnalogInput,
		.ai_read		= i_APCI3XXX_InsnReadAnalogInput,
		.ao_write		= i_APCI3XXX_InsnWriteAnalogOutput,
		.di_bits		= apci3xxx_di_insn_bits,
		.ttl_config		= i_APCI3XXX_InsnConfigInitTTLIO,
		.ttl_bits		= i_APCI3XXX_InsnBitsTTLIO,
		.ttl_read		= i_APCI3XXX_InsnReadTTLIO,
@@ -499,7 +491,6 @@ static const struct addi_board apci3xxx_boardtypes[] = {
		.ai_config		= i_APCI3XXX_InsnConfigAnalogInput,
		.ai_read		= i_APCI3XXX_InsnReadAnalogInput,
		.ao_write		= i_APCI3XXX_InsnWriteAnalogOutput,
		.di_bits		= apci3xxx_di_insn_bits,
		.ttl_config		= i_APCI3XXX_InsnConfigInitTTLIO,
		.ttl_bits		= i_APCI3XXX_InsnBitsTTLIO,
		.ttl_read		= i_APCI3XXX_InsnReadTTLIO,
@@ -528,7 +519,6 @@ static const struct addi_board apci3xxx_boardtypes[] = {
		.ai_config		= i_APCI3XXX_InsnConfigAnalogInput,
		.ai_read		= i_APCI3XXX_InsnReadAnalogInput,
		.ao_write		= i_APCI3XXX_InsnWriteAnalogOutput,
		.di_bits		= apci3xxx_di_insn_bits,
		.ttl_config		= i_APCI3XXX_InsnConfigInitTTLIO,
		.ttl_bits		= i_APCI3XXX_InsnBitsTTLIO,
		.ttl_read		= i_APCI3XXX_InsnReadTTLIO,
@@ -551,7 +541,6 @@ static const struct addi_board apci3xxx_boardtypes[] = {
		.interrupt		= v_APCI3XXX_Interrupt,
		.ai_config		= i_APCI3XXX_InsnConfigAnalogInput,
		.ai_read		= i_APCI3XXX_InsnReadAnalogInput,
		.di_bits		= apci3xxx_di_insn_bits,
	},
	[BOARD_APCI3002_16] = {
		.pc_DriverName		= "apci3002-16",
@@ -570,7 +559,6 @@ static const struct addi_board apci3xxx_boardtypes[] = {
		.interrupt		= v_APCI3XXX_Interrupt,
		.ai_config		= i_APCI3XXX_InsnConfigAnalogInput,
		.ai_read		= i_APCI3XXX_InsnReadAnalogInput,
		.di_bits		= apci3xxx_di_insn_bits,
	},
	[BOARD_APCI3002_8] = {
		.pc_DriverName		= "apci3002-8",
@@ -589,7 +577,6 @@ static const struct addi_board apci3xxx_boardtypes[] = {
		.interrupt		= v_APCI3XXX_Interrupt,
		.ai_config		= i_APCI3XXX_InsnConfigAnalogInput,
		.ai_read		= i_APCI3XXX_InsnReadAnalogInput,
		.di_bits		= apci3xxx_di_insn_bits,
	},
	[BOARD_APCI3002_4] = {
		.pc_DriverName		= "apci3002-4",
@@ -608,7 +595,6 @@ static const struct addi_board apci3xxx_boardtypes[] = {
		.interrupt		= v_APCI3XXX_Interrupt,
		.ai_config		= i_APCI3XXX_InsnConfigAnalogInput,
		.ai_read		= i_APCI3XXX_InsnReadAnalogInput,
		.di_bits		= apci3xxx_di_insn_bits,
	},
	[BOARD_APCI3500] = {
		.pc_DriverName		= "apci3500",
@@ -628,6 +614,18 @@ static const struct addi_board apci3xxx_boardtypes[] = {
	},
};

static int apci3xxx_di_insn_bits(struct comedi_device *dev,
				 struct comedi_subdevice *s,
				 struct comedi_insn *insn,
				 unsigned int *data)
{
	struct addi_private *devpriv = dev->private;

	data[1] = inl(devpriv->iobase + 32) & 0xf;

	return insn->n;
}

static int apci3xxx_do_insn_bits(struct comedi_device *dev,
				 struct comedi_subdevice *s,
				 struct comedi_insn *insn,
@@ -856,10 +854,7 @@ static int apci3xxx_auto_attach(struct comedi_device *dev,
		s->len_chanlist = devpriv->s_EeParameters.i_NbrDiChannel;
		s->range_table = &range_digital;
		s->io_bits = 0;	/* all bits input */
		s->insn_config = board->di_config;
		s->insn_read = board->di_read;
		s->insn_write = board->di_write;
		s->insn_bits = board->di_bits;
		s->insn_bits = apci3xxx_di_insn_bits;
	} else {
		s->type = COMEDI_SUBD_UNUSED;
	}