[PATCH v2 6/9] staging: comedi: ni_usb6501: add ni6501_cnt_insn_config()
Luca Ellero
luca.ellero at brickedbrain.com
Tue Sep 16 11:40:04 UTC 2014
Add function for counter subdevice configuration.
Signed-off-by: Luca Ellero <luca.ellero at brickedbrain.com>
---
drivers/staging/comedi/drivers/ni_usb6501.c | 28 +++++++++++++++++++++++++++
1 file changed, 28 insertions(+)
diff --git a/drivers/staging/comedi/drivers/ni_usb6501.c b/drivers/staging/comedi/drivers/ni_usb6501.c
index 60fc1ee..31a798e 100644
--- a/drivers/staging/comedi/drivers/ni_usb6501.c
+++ b/drivers/staging/comedi/drivers/ni_usb6501.c
@@ -439,6 +439,34 @@ static int ni6501_dio_insn_bits(struct comedi_device *dev,
return insn->n;
}
+static int ni6501_cnt_insn_config(struct comedi_device *dev,
+ struct comedi_subdevice *s,
+ struct comedi_insn *insn,
+ unsigned int *data)
+{
+ int ret;
+ u32 counter = 0;
+
+ switch (data[0]) {
+ case INSN_CONFIG_ARM:
+ ret = ni6501_counter_command(dev, START_COUNTER, NULL);
+ break;
+ case INSN_CONFIG_DISARM:
+ ret = ni6501_counter_command(dev, STOP_COUNTER, NULL);
+ break;
+ case INSN_CONFIG_RESET:
+ ret = ni6501_counter_command(dev, STOP_COUNTER, NULL);
+ if (ret)
+ break;
+ ret = ni6501_counter_command(dev, WRITE_COUNTER, &counter);
+ break;
+ default:
+ return -EINVAL;
+ }
+
+ return ret;
+}
+
static int ni6501_alloc_usb_buffers(struct comedi_device *dev)
{
struct ni6501_private *devpriv = dev->private;
--
1.7.10.4
More information about the devel
mailing list