Commit d6f015b6 authored by Ian Abbott's avatar Ian Abbott Committed by Greg Kroah-Hartman

staging: comedi: mite: use ilog2()

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: default avatarIan Abbott <abbotti@mev.co.uk>
Reviewed-by: default avatarH Hartley Sweeten <hsweeten@visionengravers.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 7d24e1ac
......@@ -25,6 +25,7 @@
#define _MITE_H_
#include <linux/pci.h>
#include <linux/log2.h>
#include "../comedidev.h"
/* #define DEBUG_MITE */
......@@ -245,8 +246,9 @@ enum MITE_IODWBSR_bits {
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;
}
......@@ -393,12 +395,10 @@ static inline int CR_RL(unsigned int retry_limit)
{
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;
}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment