[PATCH 11/11] staging: comedi: adq12b: use comedi_dio_insn_bits()

Ian Abbott abbotti at mev.co.uk
Thu Aug 29 13:28:39 UTC 2013


On 2013-08-28 21:31, H Hartley Sweeten wrote:
> Use comedi_dio_insn_bits() to handle the boilerplate code to update
> the subdevice s->state.
>
> 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/adq12b.c | 22 ++++++++++------------
>   1 file changed, 10 insertions(+), 12 deletions(-)
>
> diff --git a/drivers/staging/comedi/drivers/adq12b.c b/drivers/staging/comedi/drivers/adq12b.c
> index 054bed3..3093c392 100644
> --- a/drivers/staging/comedi/drivers/adq12b.c
> +++ b/drivers/staging/comedi/drivers/adq12b.c
> @@ -185,19 +185,17 @@ static int adq12b_di_insn_bits(struct comedi_device *dev,
>
>   static int adq12b_do_insn_bits(struct comedi_device *dev,
>   			       struct comedi_subdevice *s,
> -			       struct comedi_insn *insn, unsigned int *data)
> +			       struct comedi_insn *insn,
> +			       unsigned int *data)
>   {
> -	int channel;
> -
> -	for (channel = 0; channel < 8; channel++)
> -		if (((data[0] >> channel) & 0x01) != 0)
> -			outb((((data[1] >> channel) & 0x01) << 3) | channel,
> -			     dev->iobase + ADQ12B_OUTBR);
> -
> -	/* store information to retrieve when asked for reading */
> -	if (data[0]) {
> -		s->state &= ~data[0];
> -		s->state |= (data[0] & data[1]);
> +	unsigned int val;
> +	int chan;
> +
> +	if (comedi_dio_insn_bits(dev, s, insn, data)) {
> +		for (chan = 0; chan < 8; chan++) {
> +			val = (s->state >> chan) & 0x01;
> +			outb((val << 3) | chan, dev->iobase + ADQ12B_OUTBR);
> +		}
>   	}
>
>   	data[1] = s->state;
>

Since I was noting drivers that filtered the register writes based on 
the mask in previous patches, adq12b is another of those drivers.

-- 
-=( 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