Absorb this helper function into the analog input (*do_cmd).
For aesthetics, convert the switch code into if/else.

Signed-off-by: H Hartley Sweeten <hswee...@visionengravers.com>
Cc: Ian Abbott <abbo...@mev.co.uk>
Cc: Greg Kroah-Hartman <gre...@linuxfoundation.org>
---
 drivers/staging/comedi/drivers/das1800.c | 58 +++++++++++---------------------
 1 file changed, 19 insertions(+), 39 deletions(-)

diff --git a/drivers/staging/comedi/drivers/das1800.c 
b/drivers/staging/comedi/drivers/das1800.c
index 2f31ed4..d2aab27 100644
--- a/drivers/staging/comedi/drivers/das1800.c
+++ b/drivers/staging/comedi/drivers/das1800.c
@@ -794,44 +794,6 @@ static unsigned char das1800_ai_chanspec_bits(struct 
comedi_subdevice *s,
        return bits;
 }
 
-static int control_c_bits(struct comedi_subdevice *s,
-                         const struct comedi_cmd *cmd)
-{
-       int control_c;
-
-       control_c = das1800_ai_chanspec_bits(s, cmd->chanlist[0]);
-
-       /* set clock source to internal or external */
-       switch (cmd->scan_begin_src) {
-       case TRIG_FOLLOW:       /*  not in burst mode */
-               switch (cmd->convert_src) {
-               case TRIG_TIMER:
-                       /* trig on cascaded counters */
-                       control_c |= IPCLK;
-                       break;
-               case TRIG_EXT:
-                       /* trig on falling edge of external trigger */
-                       control_c |= XPCLK;
-                       break;
-               default:
-                       break;
-               }
-               break;
-       case TRIG_TIMER:
-               /*  burst mode with internal pacer clock */
-               control_c |= BMDE | IPCLK;
-               break;
-       case TRIG_EXT:
-               /*  burst mode with external trigger */
-               control_c |= BMDE | XPCLK;
-               break;
-       default:
-               break;
-       }
-
-       return control_c;
-}
-
 static unsigned int das1800_ai_transfer_size(struct comedi_device *dev,
                                             struct comedi_subdevice *s,
                                             unsigned int maxbytes,
@@ -948,7 +910,25 @@ static int das1800_ai_cmd(struct comedi_device *dev,
 
        /*  determine proper bits for control registers */
        control_a = control_a_bits(cmd);
-       control_c = control_c_bits(s, cmd);
+
+       control_c = das1800_ai_chanspec_bits(s, cmd->chanlist[0]);
+       /* set clock source to internal or external */
+       if (cmd->scan_begin_src == TRIG_FOLLOW) {
+               /* not in burst mode */
+               if (cmd->convert_src == TRIG_TIMER) {
+                       /* trig on cascaded counters */
+                       control_c |= IPCLK;
+               } else { /* TRIG_EXT */
+                       /* trig on falling edge of external trigger */
+                       control_c |= XPCLK;
+               }
+       } else if (cmd->scan_begin_src == TRIG_TIMER) {
+               /* burst mode with internal pacer clock */
+               control_c |= BMDE | IPCLK;
+       } else { /* TRIG_EXT */
+               /* burst mode with external trigger */
+               control_c |= BMDE | XPCLK;
+       }
 
        /* setup card and start */
        program_chanlist(dev, cmd);
-- 
2.6.3

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

Reply via email to