Adds tio sub-devices of ni_mio_common supported hardware to the
implementation of test_route, connect_route, disconnect_route.  This change
delegates the actual functionality to the ni_tio module.

Signed-off-by: Spencer E. Olson <olso...@umich.edu>
---
 drivers/staging/comedi/drivers/ni_mio_common.c | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/drivers/staging/comedi/drivers/ni_mio_common.c 
b/drivers/staging/comedi/drivers/ni_mio_common.c
index 7903938..6c8d507 100644
--- a/drivers/staging/comedi/drivers/ni_mio_common.c
+++ b/drivers/staging/comedi/drivers/ni_mio_common.c
@@ -5617,6 +5617,8 @@ static inline int get_output_select_source(int dest, 
struct comedi_device *dev)
                        /* there are only two g_out outputs. */
                        return -EINVAL;
                reg = ni_get_gout_routing(dest, dev);
+       } else if (channel_is_ctr(dest)) {
+               reg = ni_tio_get_routing(devpriv->counter_dev, dest);
        } else {
                dev_dbg(dev->class_dev, "%s: unhandled destination (%d) 
queried\n",
                        __func__, dest);
@@ -5705,6 +5707,13 @@ static inline int connect_route(unsigned int src, 
unsigned int dest,
                        return -EINVAL;
                if (ni_set_gout_routing(src, dest, dev))
                        return -EINVAL;
+       } else if (channel_is_ctr(dest)) {
+               /*
+                * we are adding back the channel modifier info to set
+                * invert/edge info passed by the user
+                */
+               ni_tio_set_routing(devpriv->counter_dev, dest,
+                                  reg | (src & ~CR_CHAN(-1)));
        } else {
                return -EINVAL;
        }
@@ -5763,6 +5772,8 @@ static inline int disconnect_route(unsigned int src, 
unsigned int dest,
                        /* there are only two g_out outputs. */
                        return -EINVAL;
                reg = ni_disable_gout_routing(dest, dev);
+       } else if (channel_is_ctr(dest)) {
+               ni_tio_unset_routing(devpriv->counter_dev, dest);
        } else {
                return -EINVAL;
        }
-- 
1.9.1

_______________________________________________
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel

Reply via email to