[PATCH 09/46] staging: comedi: me4000: refactor 'ao_nchan' boardinfo

H Hartley Sweeten hsweeten at visionengravers.com
Tue Aug 4 17:57:38 UTC 2015


For the boards that have analog output capability, there are always
4 analog output channels. Convert the 'ao_nchan' member of the boardinfo
into a bit-field, 'has_ao', to save a bit of space and set the analog
output subdevice 'n_chan' to 4 when supported.

Signed-off-by: H Hartley Sweeten <hsweeten at visionengravers.com>
---
 drivers/staging/comedi/drivers/me4000.c | 22 +++++++++++-----------
 1 file changed, 11 insertions(+), 11 deletions(-)

diff --git a/drivers/staging/comedi/drivers/me4000.c b/drivers/staging/comedi/drivers/me4000.c
index 0c1991b..a012917 100644
--- a/drivers/staging/comedi/drivers/me4000.c
+++ b/drivers/staging/comedi/drivers/me4000.c
@@ -188,12 +188,12 @@ enum me4000_boardid {
 
 struct me4000_board {
 	const char *name;
-	int ao_nchan;
 	int ao_fifo;
 	int ai_nchan;
 	int ai_sh_nchan;
 	unsigned int can_do_diff_ai:1;
 	unsigned int ex_trig_analog:1;
+	unsigned int has_ao:1;
 	unsigned int has_counter:1;
 };
 
@@ -230,74 +230,74 @@ static const struct me4000_board me4000_boards[] = {
 	},
 	[BOARD_ME4670] = {
 		.name		= "ME-4670",
-		.ao_nchan	= 4,
 		.ai_nchan	= 32,
 		.can_do_diff_ai	= 1,
 		.ex_trig_analog	= 1,
+		.has_ao		= 1,
 		.has_counter	= 1,
 	},
 	[BOARD_ME4670I] = {
 		.name		= "ME-4670i",
-		.ao_nchan	= 4,
 		.ai_nchan	= 32,
 		.can_do_diff_ai	= 1,
 		.ex_trig_analog	= 1,
+		.has_ao		= 1,
 		.has_counter	= 1,
 	},
 	[BOARD_ME4670S] = {
 		.name		= "ME-4670s",
-		.ao_nchan	= 4,
 		.ai_nchan	= 32,
 		.ai_sh_nchan	= 8,
 		.can_do_diff_ai	= 1,
 		.ex_trig_analog	= 1,
+		.has_ao		= 1,
 		.has_counter	= 1,
 	},
 	[BOARD_ME4670IS] = {
 		.name		= "ME-4670is",
-		.ao_nchan	= 4,
 		.ai_nchan	= 32,
 		.ai_sh_nchan	= 8,
 		.can_do_diff_ai	= 1,
 		.ex_trig_analog	= 1,
+		.has_ao		= 1,
 		.has_counter	= 1,
 	},
 	[BOARD_ME4680] = {
 		.name		= "ME-4680",
-		.ao_nchan	= 4,
 		.ao_fifo	= 4,
 		.ai_nchan	= 32,
 		.can_do_diff_ai	= 1,
 		.ex_trig_analog	= 1,
+		.has_ao		= 1,
 		.has_counter	= 1,
 	},
 	[BOARD_ME4680I] = {
 		.name		= "ME-4680i",
-		.ao_nchan	= 4,
 		.ao_fifo	= 4,
 		.ai_nchan	= 32,
 		.can_do_diff_ai	= 1,
 		.ex_trig_analog	= 1,
+		.has_ao		= 1,
 		.has_counter	= 1,
 	},
 	[BOARD_ME4680S] = {
 		.name		= "ME-4680s",
-		.ao_nchan	= 4,
 		.ao_fifo	= 4,
 		.ai_nchan	= 32,
 		.ai_sh_nchan	= 8,
 		.can_do_diff_ai	= 1,
 		.ex_trig_analog	= 1,
+		.has_ao		= 1,
 		.has_counter	= 1,
 	},
 	[BOARD_ME4680IS] = {
 		.name		= "ME-4680is",
-		.ao_nchan	= 4,
 		.ao_fifo	= 4,
 		.ai_nchan	= 32,
 		.ai_sh_nchan	= 8,
 		.can_do_diff_ai	= 1,
 		.ex_trig_analog	= 1,
+		.has_ao		= 1,
 		.has_counter	= 1,
 	},
 };
@@ -1300,10 +1300,10 @@ static int me4000_auto_attach(struct comedi_device *dev,
 
 	s = &dev->subdevices[1];
 
-	if (board->ao_nchan) {
+	if (board->has_ao) {
 		s->type = COMEDI_SUBD_AO;
 		s->subdev_flags = SDF_WRITABLE | SDF_COMMON | SDF_GROUND;
-		s->n_chan = board->ao_nchan;
+		s->n_chan = 4;
 		s->maxdata = 0xFFFF;	/*  16 bit DAC */
 		s->range_table = &range_bipolar10;
 		s->insn_write = me4000_ao_insn_write;
-- 
2.4.3



More information about the devel mailing list