[PATCH 11/21] staging: comedi: adl_pci9118: refactor 'rangelist_ai' in boardinfo

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



The boards supported by this driver either have "normal" or "high gain"
analog input ranges.

For aesthetics, replace the 'rangelist_ai' member in the boardinfo with
a bit-field flag 'is_hg' to indicate the "high gain" range is used.
Refactor the subdevice init to use the flag to set the correct range_table.

Signed-off-by: H Hartley Sweeten <hsweeten@xxxxxxxxxxxxxxxxxxx>
Cc: Ian Abbott <abbotti@xxxxxxxxx>
Cc: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
---
 drivers/staging/comedi/drivers/adl_pci9118.c | 13 ++++++-------
 1 file changed, 6 insertions(+), 7 deletions(-)

diff --git a/drivers/staging/comedi/drivers/adl_pci9118.c b/drivers/staging/comedi/drivers/adl_pci9118.c
index 8653e42..f821427 100644
--- a/drivers/staging/comedi/drivers/adl_pci9118.c
+++ b/drivers/staging/comedi/drivers/adl_pci9118.c
@@ -197,7 +197,7 @@
 
 #define PCI9118_HALF_FIFO_SZ	(1024 / 2)
 
-static const struct comedi_lrange range_pci9118dg_hr = {
+static const struct comedi_lrange pci9118_ai_range = {
 	8, {
 		BIP_RANGE(5),
 		BIP_RANGE(2.5),
@@ -210,7 +210,7 @@ static const struct comedi_lrange range_pci9118dg_hr = {
 	}
 };
 
-static const struct comedi_lrange range_pci9118hg = {
+static const struct comedi_lrange pci9118hg_ai_range = {
 	8, {
 		BIP_RANGE(5),
 		BIP_RANGE(0.5),
@@ -232,7 +232,7 @@ struct boardtype {
 	const char *name;		/* board name */
 	int device_id;			/* PCI device ID of card */
 	int ai_maxdata;			/* resolution of A/D */
-	const struct comedi_lrange *rangelist_ai;	/* rangelist for A/D */
+	unsigned int is_hg:1;
 };
 
 static const struct boardtype boardtypes[] = {
@@ -240,17 +240,15 @@ static const struct boardtype boardtypes[] = {
 		.name		= "pci9118dg",
 		.device_id	= 0x80d9,
 		.ai_maxdata	= 0x0fff,
-		.rangelist_ai	= &range_pci9118dg_hr,
 	}, {
 		.name		= "pci9118hg",
 		.device_id	= 0x80d9,
 		.ai_maxdata	= 0x0fff,
-		.rangelist_ai	= &range_pci9118hg,
+		.is_hg		= 1,
 	}, {
 		.name		= "pci9118hr",
 		.device_id	= 0x80d9,
 		.ai_maxdata	= 0xffff,
-		.rangelist_ai	= &range_pci9118dg_hr,
 	},
 };
 
@@ -1874,7 +1872,8 @@ static int pci9118_common_attach(struct comedi_device *dev, int disable_irq,
 		s->n_chan = 16;
 
 	s->maxdata = this_board->ai_maxdata;
-	s->range_table = this_board->rangelist_ai;
+	s->range_table = this_board->is_hg ? &pci9118hg_ai_range
+					   : &pci9118_ai_range;
 	s->insn_read = pci9118_insn_read_ai;
 	if (dev->irq) {
 		dev->read_subdev = s;
-- 
2.0.3

_______________________________________________
devel mailing list
devel@xxxxxxxxxxxxxxxxxxxxxx
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel




[Index of Archives]     [Linux Driver Backports]     [DMA Engine]     [Linux GPIO]     [Linux SPI]     [Video for Linux]     [Linux USB Devel]     [Linux Coverity]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]
  Powered by Linux