[PATCH 9/9] staging: comedi: ni_usb6501: add counter subdevice

Ian Abbott abbotti at mev.co.uk
Mon Sep 15 13:24:20 UTC 2014


On 2014-09-15 13:59, Luca Ellero wrote:
> Signed-off-by: Luca Ellero <luca.ellero at brickedbrain.com>
> ---
>   drivers/staging/comedi/drivers/ni_usb6501.c |   12 +++++++++++-
>   1 file changed, 11 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/staging/comedi/drivers/ni_usb6501.c b/drivers/staging/comedi/drivers/ni_usb6501.c
> index c33d857..711d349 100644
> --- a/drivers/staging/comedi/drivers/ni_usb6501.c
> +++ b/drivers/staging/comedi/drivers/ni_usb6501.c
> @@ -576,7 +576,7 @@ static int ni6501_auto_attach(struct comedi_device *dev,
>   	sema_init(&devpriv->sem, 1);
>   	usb_set_intfdata(intf, devpriv);
>
> -	ret = comedi_alloc_subdevices(dev, 1);
> +	ret = comedi_alloc_subdevices(dev, 2);
>   	if (ret)
>   		return ret;
>
> @@ -590,6 +590,16 @@ static int ni6501_auto_attach(struct comedi_device *dev,
>   	s->insn_bits = ni6501_dio_insn_bits;
>   	s->insn_config = ni6501_dio_insn_config;
>
> +	/* Counter subdevice */
> +	s = &dev->subdevices[1];
> +	s->type		= COMEDI_SUBD_COUNTER;
> +	s->subdev_flags	= SDF_READABLE | SDF_WRITEABLE;

You could OR in the SDF_LSAMPL flag to indicate that the subdevice uses 
the larger (32-bit) comedi sample size.  The flag is only really 
relevant for comedi asynchronous command support, so is not that 
important here.

> +	s->n_chan	= 1;
> +	s->maxdata	= 0xffffffff;
> +	s->insn_read	= ni6501_cnt_insn_read;
> +	s->insn_write	= ni6501_cnt_insn_write;
> +	s->insn_config	= ni6501_cnt_insn_config;
> +
>   	return 0;
>   }
>
>


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