Skip to content

Commit

Permalink
staging: comedi: cb_pcidas: cleanup ai_config_insn()
Browse files Browse the repository at this point in the history
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: H Hartley Sweeten <hsweeten@visionengravers.com>
Cc: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  • Loading branch information
H Hartley Sweeten authored and Greg Kroah-Hartman committed Jul 6, 2012
1 parent 8f608fc commit f3c34b2
Showing 1 changed file with 10 additions and 20 deletions.
30 changes: 10 additions & 20 deletions drivers/staging/comedi/drivers/cb_pcidas.c
Original file line number Diff line number Diff line change
Expand Up @@ -439,38 +439,28 @@ static int cb_pcidas_ai_rinsn(struct comedi_device *dev,
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,
struct comedi_insn *insn, unsigned int *data)
{
struct cb_pcidas_private *devpriv = dev->private;
int id = data[0];
unsigned int source = data[1];

switch (id) {
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;
default:
return -EINVAL;
break;
}
return -EINVAL;
return insn->n;
}

/* analog output insn for pcidas-1000 and 1200 series */
Expand Down

0 comments on commit f3c34b2

Please sign in to comment.