summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorH Hartley Sweeten <hsweeten@visionengravers.com>2014-10-20 11:34:26 -0700
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2014-10-29 15:58:37 +0800
commit758505199e89de48374ed1c8618f95c218e9cd6f (patch)
tree619edce1e44261db93c872963946924665bb40ba
parent2a420f408aa73759b61446503adbd83c88e33966 (diff)
staging: comedi: addi_apci_3120: tidy up timer subdevice init
It appears that this subdevice is actually broken. The subdevice functions all violate the comedi API and, it they did work, it appears they would break the analog input async commands. For now just tidy up the subdevice init. Add the SDF_READABLE subdev_flag, this subdevice provides an (*insn_read). Fix the subdevice 'maxdata' initialization. The timer is 24-bits. Remove the 'len_chanlist' initialization. This member is only used by subdevices that support async commands. Also remove the 'range_table' initialization. The core will set it to range_unknown which is appropriate. Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com> Reviewed-by: Ian Abbott <abbotti@mev.co.uk> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r--drivers/staging/comedi/drivers/addi_apci_3120.c19
1 files changed, 8 insertions, 11 deletions
diff --git a/drivers/staging/comedi/drivers/addi_apci_3120.c b/drivers/staging/comedi/drivers/addi_apci_3120.c
index cc561788e740..ec6f89b9e99c 100644
--- a/drivers/staging/comedi/drivers/addi_apci_3120.c
+++ b/drivers/staging/comedi/drivers/addi_apci_3120.c
@@ -222,18 +222,15 @@ static int apci3120_auto_attach(struct comedi_device *dev,
s->range_table = &range_digital;
s->insn_bits = apci3120_do_insn_bits;
- /* Allocate and Initialise Timer Subdevice Structures */
+ /* Timer subdevice */
s = &dev->subdevices[4];
- s->type = COMEDI_SUBD_TIMER;
- s->subdev_flags = SDF_WRITEABLE | SDF_GROUND | SDF_COMMON;
- s->n_chan = 1;
- s->maxdata = 0;
- s->len_chanlist = 1;
- s->range_table = &range_digital;
-
- s->insn_write = apci3120_write_insn_timer;
- s->insn_read = apci3120_read_insn_timer;
- s->insn_config = apci3120_config_insn_timer;
+ s->type = COMEDI_SUBD_TIMER;
+ s->subdev_flags = SDF_WRITEABLE | SDF_READABLE;
+ s->n_chan = 1;
+ s->maxdata = 0x00ffffff;
+ s->insn_write = apci3120_write_insn_timer;
+ s->insn_read = apci3120_read_insn_timer;
+ s->insn_config = apci3120_config_insn_timer;
apci3120_reset(dev);
return 0;