summaryrefslogtreecommitdiff
path: root/drivers/staging/comedi/drivers/ni_tio.c
diff options
context:
space:
mode:
authorH Hartley Sweeten <hsweeten@visionengravers.com>2014-07-24 10:14:57 -0700
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2014-07-27 11:16:48 -0700
commit704c6dbaa914c3f1e4493fe6d40e6a30e89a223b (patch)
tree266a8ae8b69957802f26dc8457e6b467c8299e66 /drivers/staging/comedi/drivers/ni_tio.c
parentf6e2278326fd0b845d892614ec5f30ef49ecea85 (diff)
staging: comedi: ni_tio: absorb ni_tio_counter_status()
This function is only called to handle the INSN_CONFIG_GET_COUNTER_STATUS instruction. For aesthetics, absorb the code into ni_tio_insn_config(). 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>
Diffstat (limited to 'drivers/staging/comedi/drivers/ni_tio.c')
-rw-r--r--drivers/staging/comedi/drivers/ni_tio.c25
1 files changed, 9 insertions, 16 deletions
diff --git a/drivers/staging/comedi/drivers/ni_tio.c b/drivers/staging/comedi/drivers/ni_tio.c
index d099f542b796..f0578484fba4 100644
--- a/drivers/staging/comedi/drivers/ni_tio.c
+++ b/drivers/staging/comedi/drivers/ni_tio.c
@@ -205,21 +205,6 @@ static void ni_tio_reset_count_and_disarm(struct ni_gpct *counter)
write_register(counter, Gi_Reset_Bit(cidx), NITIO_RESET_REG(cidx));
}
-static unsigned int ni_tio_counter_status(struct ni_gpct *counter)
-{
- unsigned cidx = counter->counter_index;
- const unsigned bits = read_register(counter,
- NITIO_SHARED_STATUS_REG(cidx));
- unsigned int status = 0;
-
- if (bits & Gi_Armed_Bit(cidx)) {
- status |= COMEDI_COUNTER_ARMED;
- if (bits & Gi_Counting_Bit(cidx))
- status |= COMEDI_COUNTER_COUNTING;
- }
- return status;
-}
-
static void ni_tio_set_sync_mode(struct ni_gpct *counter, int force_alt_sync)
{
struct ni_gpct_device *counter_dev = counter->counter_dev;
@@ -1282,6 +1267,8 @@ int ni_tio_insn_config(struct comedi_device *dev,
unsigned int *data)
{
struct ni_gpct *counter = s->private;
+ unsigned cidx = counter->counter_index;
+ unsigned status;
switch (data[0]) {
case INSN_CONFIG_SET_COUNTER_MODE:
@@ -1292,7 +1279,13 @@ int ni_tio_insn_config(struct comedi_device *dev,
ni_tio_arm(counter, 0, 0);
return 0;
case INSN_CONFIG_GET_COUNTER_STATUS:
- data[1] = ni_tio_counter_status(counter);
+ data[1] = 0;
+ status = read_register(counter, NITIO_SHARED_STATUS_REG(cidx));
+ if (status & Gi_Armed_Bit(cidx)) {
+ data[1] |= COMEDI_COUNTER_ARMED;
+ if (status & Gi_Counting_Bit(cidx))
+ data[1] |= COMEDI_COUNTER_COUNTING;
+ }
data[2] = COMEDI_COUNTER_ARMED | COMEDI_COUNTER_COUNTING;
return 0;
case INSN_CONFIG_SET_CLOCK_SRC: