From d5aa6b7c31d8f9667e743a8bb2a6677caf78cd31 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Fri, 20 Jun 2014 13:12:55 -0700 Subject: [PATCH] staging: comedi: dt282x: fix Analog Input se/diff channel configuration Most of the boards supported by this driver can do either single-ended or differential Analog Input but there are a couple that can only do one or the other. On the boards that can do both the type of input is set with jumpers on the board. The 'it->options[4]' passed by the user during the board (*attach) is used to determine how the Analog Inputs are configured. This is used to set the subdevice flags and number of channels correctly. Fix the check of this option so that it only applies when the board can actually do differential input. Also, default to differential inputs if that is the only mode the board supports. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/dt282x.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/comedi/drivers/dt282x.c b/drivers/staging/comedi/drivers/dt282x.c index 9c512dac6567..66f15aa55b7e 100644 --- a/drivers/staging/comedi/drivers/dt282x.c +++ b/drivers/staging/comedi/drivers/dt282x.c @@ -1215,7 +1215,7 @@ static int dt282x_attach(struct comedi_device *dev, struct comedi_devconfig *it) s = &dev->subdevices[0]; s->type = COMEDI_SUBD_AI; s->subdev_flags = SDF_READABLE; - if (it->options[4]) { + if ((it->options[4] && board->adchan_di) || board->adchan_se == 0) { s->subdev_flags |= SDF_DIFF; s->n_chan = board->adchan_di; } else { -- 2.34.1