Commit f3c34b2f authored by H Hartley Sweeten's avatar H Hartley Sweeten Committed by Greg Kroah-Hartman

staging: comedi: cb_pcidas: cleanup ai_config_insn()

Absorb the helper function ai_config_calibration_source() into
ai_config_insn() and remove the static const variable that
was in the helper function.

Return an error code (-EINVAL) when appropriate and the number
of data values used (insn->n) for success.
Signed-off-by: default avatarH Hartley Sweeten <hsweeten@visionengravers.com>
Cc: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 8f608fc8
...@@ -439,38 +439,28 @@ static int cb_pcidas_ai_rinsn(struct comedi_device *dev, ...@@ -439,38 +439,28 @@ static int cb_pcidas_ai_rinsn(struct comedi_device *dev,
return n; return n;
} }
static int ai_config_calibration_source(struct comedi_device *dev,
unsigned int *data)
{
struct cb_pcidas_private *devpriv = dev->private;
static const int num_calibration_sources = 8;
unsigned int source = data[1];
if (source >= num_calibration_sources) {
dev_err(dev->class_dev, "invalid calibration source: %i\n",
source);
return -EINVAL;
}
devpriv->calibration_source = source;
return 2;
}
static int ai_config_insn(struct comedi_device *dev, struct comedi_subdevice *s, static int ai_config_insn(struct comedi_device *dev, struct comedi_subdevice *s,
struct comedi_insn *insn, unsigned int *data) struct comedi_insn *insn, unsigned int *data)
{ {
struct cb_pcidas_private *devpriv = dev->private;
int id = data[0]; int id = data[0];
unsigned int source = data[1];
switch (id) { switch (id) {
case INSN_CONFIG_ALT_SOURCE: case INSN_CONFIG_ALT_SOURCE:
return ai_config_calibration_source(dev, data); if (source >= 8) {
dev_err(dev->class_dev,
"invalid calibration source: %i\n",
source);
return -EINVAL;
}
devpriv->calibration_source = source;
break; break;
default: default:
return -EINVAL; return -EINVAL;
break; break;
} }
return -EINVAL; return insn->n;
} }
/* analog output insn for pcidas-1000 and 1200 series */ /* analog output insn for pcidas-1000 and 1200 series */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment