[PATCH 09/48] staging: comedi: pcmmio: move ai shadow data to device private data
Ian Abbott
abbotti at mev.co.uk
Tue Dec 10 10:58:59 UTC 2013
On 2013-12-09 22:30, H Hartley Sweeten wrote:
> There is only one ai subdevice in this driver so there is no reason
> to hold the last sample written to each channel in the subdevice
> private data. Move the data into the device private data,
>
> This gets some of the data out of the subdevice private data union
> and removes some of the uses of the ugly 'subpriv' macro.
The patch title and description are wrong as this is the AO subdevice,
but apart from that it's fine!
>
> Signed-off-by: H Hartley Sweeten <hsweeten at visionengravers.com>
> Cc: Ian Abbott <abbotti at mev.co.uk>
> Cc: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
> ---
> drivers/staging/comedi/drivers/pcmmio.c | 12 ++++++------
> 1 file changed, 6 insertions(+), 6 deletions(-)
>
> diff --git a/drivers/staging/comedi/drivers/pcmmio.c b/drivers/staging/comedi/drivers/pcmmio.c
> index 704911c..f889e0f 100644
> --- a/drivers/staging/comedi/drivers/pcmmio.c
> +++ b/drivers/staging/comedi/drivers/pcmmio.c
> @@ -231,10 +231,6 @@ struct pcmmio_subdev_private {
> spinlock_t spinlock;
> } intr;
> } dio;
> - struct {
> - /* the last unsigned int data written */
> - unsigned int shadow_samples[8];
> - } ao;
> };
> };
>
> @@ -256,6 +252,7 @@ struct pcmmio_private {
> spinlock_t spinlock;
> } asics[MAX_ASICS];
> struct pcmmio_subdev_private *sprivs;
> + unsigned int ao_readback[8];
> };
>
> #define subpriv ((struct pcmmio_subdev_private *)s->private)
> @@ -857,11 +854,13 @@ static int pcmmio_ai_insn_read(struct comedi_device *dev,
> static int ao_rinsn(struct comedi_device *dev, struct comedi_subdevice *s,
> struct comedi_insn *insn, unsigned int *data)
> {
> + struct pcmmio_private *devpriv = dev->private;
> int n;
> +
> for (n = 0; n < insn->n; n++) {
> unsigned chan = CR_CHAN(insn->chanspec);
> if (chan < s->n_chan)
> - data[n] = subpriv->ao.shadow_samples[chan];
> + data[n] = devpriv->ao_readback[chan];
> }
> return n;
> }
> @@ -887,6 +886,7 @@ static int wait_dac_ready(unsigned long iobase)
> static int ao_winsn(struct comedi_device *dev, struct comedi_subdevice *s,
> struct comedi_insn *insn, unsigned int *data)
> {
> + struct pcmmio_private *devpriv = dev->private;
> int n;
> unsigned iobase = subpriv->iobase, iooffset = 0;
>
> @@ -925,7 +925,7 @@ static int ao_winsn(struct comedi_device *dev, struct comedi_subdevice *s,
> wait_dac_ready(iobase + iooffset);
>
> /* save to shadow register for ao_rinsn */
> - subpriv->ao.shadow_samples[chan] = data[n];
> + devpriv->ao_readback[chan] = data[n];
> }
> }
> return n;
>
--
-=( Ian Abbott @ MEV Ltd. E-mail: <abbotti at mev.co.uk> )=-
-=( Tel: +44 (0)161 477 1898 FAX: +44 (0)161 718 3587 )=-
More information about the devel
mailing list