From 63d6ba20bab01ea1a92b3fe7718416a8527e009a Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Tue, 23 Apr 2013 12:57:38 -0700 Subject: [PATCH] staging: comedi: ni_labpc: cleanup true/false flags in boardinfo The 'register_layout' in the boardinfo can be represented as a true/false flag instead of an enum. Rename the variable to 'is_labpc1200' and change it to an unsigned 1-bit bit-field. The 'has_ao' variable is also a true/false flag. Change it to an unsigned 1-bit bit-field. Reorder the boardinfo data so that the bit-field data is grouped together. For aesthetic reasons, and move the 'const' variables then reorder the boardinfo declarations to match the definition. Signed-off-by: H Hartley Sweeten Cc: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/ni_labpc.c | 34 +++++++++---------- drivers/staging/comedi/drivers/ni_labpc.h | 17 +++------- drivers/staging/comedi/drivers/ni_labpc_cs.c | 6 ++-- drivers/staging/comedi/drivers/ni_labpc_pci.c | 6 ++-- 4 files changed, 27 insertions(+), 36 deletions(-) diff --git a/drivers/staging/comedi/drivers/ni_labpc.c b/drivers/staging/comedi/drivers/ni_labpc.c index 3d978f34d212..da10a762e8c2 100644 --- a/drivers/staging/comedi/drivers/ni_labpc.c +++ b/drivers/staging/comedi/drivers/ni_labpc.c @@ -238,26 +238,25 @@ static inline void labpc_writeb(unsigned int byte, unsigned long address) static const struct labpc_boardinfo labpc_boards[] = { { .name = "lab-pc-1200", - .ai_speed = 10000, - .register_layout = labpc_1200_layout, - .has_ao = 1, .ai_range_table = &range_labpc_1200_ai, .ai_range_code = labpc_1200_ai_gain_bits, + .ai_speed = 10000, .ai_scan_up = 1, + .has_ao = 1, + .is_labpc1200 = 1, }, { .name = "lab-pc-1200ai", - .ai_speed = 10000, - .register_layout = labpc_1200_layout, .ai_range_table = &range_labpc_1200_ai, .ai_range_code = labpc_1200_ai_gain_bits, + .ai_speed = 10000, .ai_scan_up = 1, + .is_labpc1200 = 1, }, { .name = "lab-pc+", - .ai_speed = 12000, - .register_layout = labpc_plus_layout, - .has_ao = 1, .ai_range_table = &range_labpc_plus_ai, .ai_range_code = labpc_plus_ai_gain_bits, + .ai_speed = 12000, + .has_ao = 1, }, }; #endif @@ -347,7 +346,7 @@ static void labpc_setup_cmd6_reg(struct comedi_device *dev, const struct labpc_boardinfo *board = comedi_board(dev); struct labpc_private *devpriv = dev->private; - if (board->register_layout != labpc_1200_layout) + if (!board->is_labpc1200) return; /* reference inputs to ground or common? */ @@ -759,7 +758,7 @@ static int labpc_ai_cmdtest(struct comedi_device *dev, err |= cfc_check_trigger_src(&cmd->scan_end_src, TRIG_COUNT); stop_mask = TRIG_COUNT | TRIG_NONE; - if (board->register_layout == labpc_1200_layout) + if (board->is_labpc1200) stop_mask |= TRIG_EXT; err |= cfc_check_trigger_src(&cmd->stop_src, stop_mask); @@ -895,7 +894,7 @@ static int labpc_ai_cmd(struct comedi_device *dev, struct comedi_subdevice *s) /* pc-plus has no fifo-half full interrupt */ } else #endif - if (board->register_layout == labpc_1200_layout && + if (board->is_labpc1200 && /* wake-end-of-scan should interrupt on fifo not empty */ (cmd->flags & TRIG_WAKE_EOS) == 0 && /* make sure we are taking more than just a few points */ @@ -1176,7 +1175,7 @@ static irqreturn_t labpc_interrupt(int irq, void *d) /* read board status */ devpriv->stat1 = devpriv->read_byte(dev->iobase + STAT1_REG); - if (board->register_layout == labpc_1200_layout) + if (board->is_labpc1200) devpriv->stat2 = devpriv->read_byte(dev->iobase + STAT2_REG); if ((devpriv->stat1 & (STAT1_GATA0 | STAT1_CNTINT | STAT1_OVERFLOW | @@ -1202,8 +1201,7 @@ static irqreturn_t labpc_interrupt(int irq, void *d) * has occurred */ if (devpriv->stat1 & STAT1_GATA0 || - (board->register_layout == labpc_1200_layout - && devpriv->stat2 & STAT2_OUTA1)) { + (board->is_labpc1200 && devpriv->stat2 & STAT2_OUTA1)) { handle_isa_dma(dev); } } else @@ -1267,7 +1265,7 @@ static int labpc_ao_insn_write(struct comedi_device *dev, spin_unlock_irqrestore(&dev->spinlock, flags); /* set range */ - if (board->register_layout == labpc_1200_layout) { + if (board->is_labpc1200) { range = CR_RANGE(insn->chanspec); if (labpc_range_is_unipolar(s, range)) devpriv->cmd6 |= CMD6_DACUNI(channel); @@ -1604,7 +1602,7 @@ int labpc_common_attach(struct comedi_device *dev, devpriv->write_byte(devpriv->cmd2, dev->iobase + CMD2_REG); devpriv->write_byte(devpriv->cmd3, dev->iobase + CMD3_REG); devpriv->write_byte(devpriv->cmd4, dev->iobase + CMD4_REG); - if (board->register_layout == labpc_1200_layout) { + if (board->is_labpc1200) { devpriv->write_byte(devpriv->cmd5, dev->iobase + CMD5_REG); devpriv->write_byte(devpriv->cmd6, dev->iobase + CMD6_REG); } @@ -1672,7 +1670,7 @@ int labpc_common_attach(struct comedi_device *dev, /* calibration subdevices for boards that have one */ s = &dev->subdevices[3]; - if (board->register_layout == labpc_1200_layout) { + if (board->is_labpc1200) { s->type = COMEDI_SUBD_CALIB; s->subdev_flags = SDF_READABLE | SDF_WRITABLE | SDF_INTERNAL; s->n_chan = 16; @@ -1687,7 +1685,7 @@ int labpc_common_attach(struct comedi_device *dev, /* EEPROM */ s = &dev->subdevices[4]; - if (board->register_layout == labpc_1200_layout) { + if (board->is_labpc1200) { s->type = COMEDI_SUBD_MEMORY; s->subdev_flags = SDF_READABLE | SDF_WRITABLE | SDF_INTERNAL; s->n_chan = EEPROM_SIZE; diff --git a/drivers/staging/comedi/drivers/ni_labpc.h b/drivers/staging/comedi/drivers/ni_labpc.h index b0327c53603b..f4381815efe9 100644 --- a/drivers/staging/comedi/drivers/ni_labpc.h +++ b/drivers/staging/comedi/drivers/ni_labpc.h @@ -27,26 +27,19 @@ #define EEPROM_SIZE 256 /* 256 byte eeprom */ #define NUM_AO_CHAN 2 /* boards have two analog output channels */ -enum labpc_register_layout { labpc_plus_layout, labpc_1200_layout }; enum transfer_type { fifo_not_empty_transfer, fifo_half_full_transfer, isa_dma_transfer }; struct labpc_boardinfo { const char *name; - int ai_speed; /* maximum input speed in nanoseconds */ - - /* 1200 has extra registers compared to pc+ */ - enum labpc_register_layout register_layout; - int has_ao; /* has analog output true/false */ const struct comedi_lrange *ai_range_table; const int *ai_range_code; - - /* board can auto scan up in ai channels, not just down */ - unsigned ai_scan_up:1; - - /* uses memory mapped io instead of ioports */ - unsigned has_mmio:1; + int ai_speed; /* maximum input speed in ns */ + unsigned ai_scan_up:1; /* can auto scan up in ai channels */ + unsigned has_ao:1; /* has analog outputs */ + unsigned is_labpc1200:1; /* has extra regs compared to pc+ */ + unsigned has_mmio:1; /* uses memory mapped io */ }; struct labpc_private { diff --git a/drivers/staging/comedi/drivers/ni_labpc_cs.c b/drivers/staging/comedi/drivers/ni_labpc_cs.c index 5f8de1142099..2c1ea01f5a64 100644 --- a/drivers/staging/comedi/drivers/ni_labpc_cs.c +++ b/drivers/staging/comedi/drivers/ni_labpc_cs.c @@ -76,11 +76,11 @@ NI manuals: static const struct labpc_boardinfo labpc_cs_boards[] = { { .name = "daqcard-1200", - .ai_speed = 10000, - .register_layout = labpc_1200_layout, - .has_ao = 1, .ai_range_table = &range_labpc_1200_ai, .ai_range_code = labpc_1200_ai_gain_bits, + .ai_speed = 10000, + .has_ao = 1, + .is_labpc1200 = 1, }, }; diff --git a/drivers/staging/comedi/drivers/ni_labpc_pci.c b/drivers/staging/comedi/drivers/ni_labpc_pci.c index 8e916f86ccea..b993b69459ae 100644 --- a/drivers/staging/comedi/drivers/ni_labpc_pci.c +++ b/drivers/staging/comedi/drivers/ni_labpc_pci.c @@ -49,12 +49,12 @@ enum labpc_pci_boardid { static const struct labpc_boardinfo labpc_pci_boards[] = { [BOARD_NI_PCI1200] = { .name = "ni_pci-1200", - .ai_speed = 10000, - .register_layout = labpc_1200_layout, - .has_ao = 1, .ai_range_table = &range_labpc_1200_ai, .ai_range_code = labpc_1200_ai_gain_bits, + .ai_speed = 10000, .ai_scan_up = 1, + .has_ao = 1, + .is_labpc1200 = 1, .has_mmio = 1, }, }; -- 2.20.1