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>
This commit is contained in:
parent
b639e09608
commit
75a45d924d
1 changed files with 23 additions and 20 deletions
|
@ -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 @@ static int vmk80xx_do_insn_bits(struct comedi_device *dev,
|
|||
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 */
|
||||
|
|
Loading…
Reference in a new issue