The static inline functions `MITE_IODWBSR_1_WSIZE_bits()` and `CR_RL()`
in "mite.h" work out a base-2 logarithm using a `while` loop.  Change
them to use `ilog2()`.  Also change `CR_RL()` to clamp the maximum value
instead of printing an error.
Signed-off-by: Ian Abbott <abbotti@mev.co.uk>
Reviewed-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
 #define _MITE_H_
 
 #include <linux/pci.h>
+#include <linux/log2.h>
 #include "../comedidev.h"
 
 /*  #define DEBUG_MITE */
 static inline unsigned MITE_IODWBSR_1_WSIZE_bits(unsigned size)
 {
        unsigned order = 0;
-       while (size >>= 1)
-               ++order;
+
+       BUG_ON(size == 0);
+       order = ilog2(size);
        BUG_ON(order < 1);
        return (order - 1) & 0x1f;
 }
 {
        int value = 0;
 
-       while (retry_limit) {
-               retry_limit >>= 1;
-               value++;
-       }
+       if (retry_limit)
+               value = 1 + ilog2(retry_limit);
        if (value > 0x7)
-               printk("comedi: bug! retry_limit too large\n");
+               value = 0x7;
        return (value & 0x7) << 21;
 }