diff options
author | H Hartley Sweeten | 2013-02-05 17:27:37 -0700 |
---|---|---|
committer | Greg Kroah-Hartman | 2013-02-05 18:07:12 -0800 |
commit | 75a45d924dd33882caf80d3a78dd96c370a6580b (patch) | |
tree | 2f84e6110ebe505ec6559fa1786feef54cd23bbf | |
parent | b639e09608f0103761751d707e837a7ca01d82a7 (diff) |
staging: comedi: vmk80xx: cleanup counter subdevice init
Change the 'cnt_bits' in the boardinfo to 'cnt_maxdata' so that the
calculation of s->maxdata can be removed. Also, change the type to
match the comedi_subdevice type. Add a comment about the '0' value
for DEVICE_VMK8061.
The s->maxdata should always be set for the subdevice. Move it out
of the conditional.
Rename the (*insn_read), (*insn_config_, and (*insn_write) functions
for the counter subdevice to make grepping easier.
For aesthetic reasons, add some whitespace to the subdevice init.
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>
-rw-r--r-- | drivers/staging/comedi/drivers/vmk80xx.c | 43 |
1 files changed, 23 insertions, 20 deletions
diff --git a/drivers/staging/comedi/drivers/vmk80xx.c b/drivers/staging/comedi/drivers/vmk80xx.c index 4d51f6c9d1f9..26a9a9607f35 100644 --- a/drivers/staging/comedi/drivers/vmk80xx.c +++ b/drivers/staging/comedi/drivers/vmk80xx.c @@ -163,7 +163,7 @@ struct vmk80xx_board { unsigned int ai_maxdata; int ao_nchans; int di_nchans; - __le16 cnt_bits; + unsigned int cnt_maxdata; __u8 pwm_chans; __le16 pwm_bits; }; @@ -177,7 +177,7 @@ static const struct vmk80xx_board vmk80xx_boardinfo[] = { .ai_maxdata = 0x00ff, .ao_nchans = 2, .di_nchans = 6, - .cnt_bits = 16, + .cnt_maxdata = 0xffff, .pwm_chans = 0, .pwm_bits = 0, }, @@ -189,7 +189,7 @@ static const struct vmk80xx_board vmk80xx_boardinfo[] = { .ai_maxdata = 0x03ff, .ao_nchans = 8, .di_nchans = 8, - .cnt_bits = 0, + .cnt_maxdata = 0, /* unknown, device is not writeable */ .pwm_chans = 1, .pwm_bits = 10, }, @@ -900,9 +900,10 @@ out: return retval; } -static int vmk80xx_cnt_rinsn(struct comedi_device *dev, - struct comedi_subdevice *s, - struct comedi_insn *insn, unsigned int *data) +static int vmk80xx_cnt_insn_read(struct comedi_device *dev, + struct comedi_subdevice *s, + struct comedi_insn *insn, + unsigned int *data) { struct vmk80xx_private *devpriv = dev->private; int chan; @@ -947,9 +948,10 @@ static int vmk80xx_cnt_rinsn(struct comedi_device *dev, return n; } -static int vmk80xx_cnt_cinsn(struct comedi_device *dev, - struct comedi_subdevice *s, - struct comedi_insn *insn, unsigned int *data) +static int vmk80xx_cnt_insn_config(struct comedi_device *dev, + struct comedi_subdevice *s, + struct comedi_insn *insn, + unsigned int *data) { struct vmk80xx_private *devpriv = dev->private; unsigned int insn_cmd; @@ -993,9 +995,10 @@ static int vmk80xx_cnt_cinsn(struct comedi_device *dev, return n; } -static int vmk80xx_cnt_winsn(struct comedi_device *dev, - struct comedi_subdevice *s, - struct comedi_insn *insn, unsigned int *data) +static int vmk80xx_cnt_insn_write(struct comedi_device *dev, + struct comedi_subdevice *s, + struct comedi_insn *insn, + unsigned int *data) { struct vmk80xx_private *devpriv = dev->private; unsigned long debtime; @@ -1248,15 +1251,15 @@ static int vmk80xx_attach_common(struct comedi_device *dev) /* Counter subdevice */ s = &dev->subdevices[4]; - s->type = COMEDI_SUBD_COUNTER; - s->subdev_flags = SDF_READABLE; - s->n_chan = 2; - s->insn_read = vmk80xx_cnt_rinsn; - s->insn_config = vmk80xx_cnt_cinsn; + s->type = COMEDI_SUBD_COUNTER; + s->subdev_flags = SDF_READABLE; + s->n_chan = 2; + s->maxdata = boardinfo->cnt_maxdata; + s->insn_read = vmk80xx_cnt_insn_read; + s->insn_config = vmk80xx_cnt_insn_config; if (devpriv->model == VMK8055_MODEL) { - s->subdev_flags |= SDF_WRITEABLE; - s->maxdata = (1 << boardinfo->cnt_bits) - 1; - s->insn_write = vmk80xx_cnt_winsn; + s->subdev_flags |= SDF_WRITEABLE; + s->insn_write = vmk80xx_cnt_insn_write; } /* PWM subdevice */ |