summaryrefslogtreecommitdiffstats
path: root/drivers/staging/comedi/drivers/cb_das16_cs.c
diff options
context:
space:
mode:
authorH Hartley Sweeten <hsweeten@visionengravers.com>2015-10-12 16:07:09 -0700
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2015-10-13 10:26:19 -0700
commitb93c2862b95d4c4021aeaf6c18b89e11e245ebab (patch)
tree78f54661b86d818540088d747df555f3ee6d0862 /drivers/staging/comedi/drivers/cb_das16_cs.c
parentc34f202ba32c1ef10b36b61c1ca236120b8cc4b3 (diff)
downloadlinux-b93c2862b95d4c4021aeaf6c18b89e11e245ebab.tar.bz2
staging: comedi: cb_das16_cs: the DAC16/16-AO only has 4 digital I/O
The PC-CARD DAS16/16-AO board only has 4 digital I/O channels. The other boards supported by this driver have 8. Add the boardinfo to correctly initialize the subdevice. Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com> Reviewed-by: Ian Abbott <abbotti@mev.co.uk> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/staging/comedi/drivers/cb_das16_cs.c')
-rw-r--r--drivers/staging/comedi/drivers/cb_das16_cs.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/staging/comedi/drivers/cb_das16_cs.c b/drivers/staging/comedi/drivers/cb_das16_cs.c
index 0769878f082f..45db386331aa 100644
--- a/drivers/staging/comedi/drivers/cb_das16_cs.c
+++ b/drivers/staging/comedi/drivers/cb_das16_cs.c
@@ -100,6 +100,7 @@ struct das16cs_board {
const char *name;
int device_id;
unsigned int has_ao:1;
+ unsigned int has_4dio:1;
};
static const struct das16cs_board das16cs_boards[] = {
@@ -107,6 +108,7 @@ static const struct das16cs_board das16cs_boards[] = {
.name = "PC-CARD DAS16/16-AO",
.device_id = 0x0039,
.has_ao = 1,
+ .has_4dio = 1,
}, {
.name = "PCM-DAS16s/16",
.device_id = 0x4009,
@@ -407,11 +409,11 @@ static int das16cs_auto_attach(struct comedi_device *dev,
s->type = COMEDI_SUBD_UNUSED;
}
+ /* Digital I/O subdevice */
s = &dev->subdevices[2];
- /* digital i/o subdevice */
s->type = COMEDI_SUBD_DIO;
s->subdev_flags = SDF_READABLE | SDF_WRITABLE;
- s->n_chan = 8;
+ s->n_chan = board->has_4dio ? 4 : 8;
s->maxdata = 1;
s->range_table = &range_digital;
s->insn_bits = das16cs_dio_insn_bits;