From: H Hartley Sweeten Date: Fri, 20 Jun 2014 20:12:55 +0000 (-0700) Subject: staging: comedi: dt282x: fix Analog Input se/diff channel configuration X-Git-Url: http://drtracing.org/?a=commitdiff_plain;h=d5aa6b7c31d8f9667e743a8bb2a6677caf78cd31;p=deliverable%2Flinux.git 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 --- 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 {