Hi Greg,
I've added changelog text to the patch below. Appreciate your 
feedback!
Regards,
Chris Opperman

>8----------------------------------------------------------------------8<

Improved the readability of comedi_nsamples_left:
a) Reduced nesting by using more return calls.
b) Separated variable declarations from code.
c) Using kernel integer types.

Signed-off-by: Chris Opperman <eklikeroo...@gmail.com>
---
 drivers/staging/comedi/drivers.c | 29 ++++++++++++++---------------
 1 file changed, 14 insertions(+), 15 deletions(-)

diff --git a/drivers/staging/comedi/drivers.c b/drivers/staging/comedi/drivers.c
index 9d73347..3207ae2 100644
--- a/drivers/staging/comedi/drivers.c
+++ b/drivers/staging/comedi/drivers.c
@@ -468,26 +468,25 @@ EXPORT_SYMBOL_GPL(comedi_nscans_left);
  * Returns the number of samples remaining to complete the command, or the
  * specified expected number of samples (@nsamples), whichever is fewer.
  */
-unsigned int comedi_nsamples_left(struct comedi_subdevice *s,
-                                 unsigned int nsamples)
+u32 comedi_nsamples_left(struct comedi_subdevice *s, u32 nsamples)
 {
        struct comedi_async *async = s->async;
        struct comedi_cmd *cmd = &async->cmd;
+       u32 scans_left;
+       u64 samples_left;
 
-       if (cmd->stop_src == TRIG_COUNT) {
-               unsigned int scans_left = __comedi_nscans_left(s, 
cmd->stop_arg);
-               unsigned int scan_pos =
-                   comedi_bytes_to_samples(s, async->scan_progress);
-               unsigned long long samples_left = 0;
-
-               if (scans_left) {
-                       samples_left = ((unsigned long long)scans_left *
-                                       cmd->scan_end_arg) - scan_pos;
-               }
+       if (cmd->stop_src != TRIG_COUNT)
+               return nsamples;
 
-               if (samples_left < nsamples)
-                       nsamples = samples_left;
-       }
+       scans_left = __comedi_nscans_left(s, cmd->stop_arg);
+       if (!scans_left)
+               return 0;
+
+       samples_left = ((u64)scans_left * cmd->scan_end_arg) -
+               comedi_bytes_to_samples(s, async->scan_progress);
+
+       if (samples_left < nsamples)
+               return samples_left;
        return nsamples;
 }
 EXPORT_SYMBOL_GPL(comedi_nsamples_left);
-- 
2.1.4

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

Reply via email to