From 2d71464fd137d4a830dddfc799de8158e9ddc97c Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Tue, 13 Oct 2015 17:47:50 -0700 Subject: [PATCH] staging: comedi: cb_pcidas: absorb caldac/trimpot write functions These functions are all just wrappers for cb_pcidas_calib_write(). Remove them and absorb the code into the callers. Remove the unnecessary masking of the 'chan'. It will always be in range due to the subdevice initialization. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/cb_pcidas.c | 38 +++++++--------------- 1 file changed, 12 insertions(+), 26 deletions(-) diff --git a/drivers/staging/comedi/drivers/cb_pcidas.c b/drivers/staging/comedi/drivers/cb_pcidas.c index c034de3fca42..f22611b3edcd 100644 --- a/drivers/staging/comedi/drivers/cb_pcidas.c +++ b/drivers/staging/comedi/drivers/cb_pcidas.c @@ -571,13 +571,6 @@ static void cb_pcidas_calib_write(struct comedi_device *dev, outw(calib_bits, devpriv->pcibar1 + PCIDAS_CALIB_REG); } -static void cb_pcidas_caldac_8800_write(struct comedi_device *dev, - unsigned int chan, unsigned int val) -{ - /* write 11-bit value to caldac */ - cb_pcidas_calib_write(dev, ((chan & 0x7) << 8) | val, 11, false); -} - static int cb_pcidas_caldac_insn_write(struct comedi_device *dev, struct comedi_subdevice *s, struct comedi_insn *insn, @@ -589,7 +582,9 @@ static int cb_pcidas_caldac_insn_write(struct comedi_device *dev, unsigned int val = data[insn->n - 1]; if (s->readback[chan] != val) { - cb_pcidas_caldac_8800_write(dev, chan, val); + /* write 11-bit channel/value to caldac */ + cb_pcidas_calib_write(dev, (chan << 8) | val, 11, + false); s->readback[chan] = val; } } @@ -634,20 +629,6 @@ static int cb_pcidas_dac08_insn_write(struct comedi_device *dev, return insn->n; } -static void cb_pcidas_trimpot_7376_write(struct comedi_device *dev, - unsigned int val) -{ - /* write 7-bit value to trimpot */ - cb_pcidas_calib_write(dev, val, 7, true); -} - -static void cb_pcidas_trimpot_8402_write(struct comedi_device *dev, - unsigned int chan, unsigned int val) -{ - /* write 10-bit value to trimpot */ - cb_pcidas_calib_write(dev, ((chan & 0x3) << 8) | val, 10, true); -} - static void cb_pcidas_trimpot_write(struct comedi_device *dev, unsigned int chan, unsigned int val) { @@ -655,10 +636,12 @@ static void cb_pcidas_trimpot_write(struct comedi_device *dev, switch (board->trimpot) { case AD7376: - cb_pcidas_trimpot_7376_write(dev, val); + /* write 7-bit value to trimpot */ + cb_pcidas_calib_write(dev, val, 7, true); break; case AD8402: - cb_pcidas_trimpot_8402_write(dev, chan, val); + /* write 10-bit channel/value to trimpot */ + cb_pcidas_calib_write(dev, (chan << 8) | val, 10, true); break; default: dev_err(dev->class_dev, "driver bug?\n"); @@ -1414,8 +1397,11 @@ static int cb_pcidas_auto_attach(struct comedi_device *dev, return ret; for (i = 0; i < s->n_chan; i++) { - cb_pcidas_caldac_8800_write(dev, i, s->maxdata / 2); - s->readback[i] = s->maxdata / 2; + unsigned int val = s->maxdata / 2; + + /* write 11-bit channel/value to caldac */ + cb_pcidas_calib_write(dev, (i << 8) | val, 11, false); + s->readback[i] = val; } /* Calibration subdevice - trim potentiometer */