Skip to content

Commit

Permalink
staging: comedi: mite: use ilog2()
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Ian Abbott authored and Greg Kroah-Hartman committed Sep 17, 2012
1 parent 7d24e1a commit d6f015b
Showing 1 changed file with 7 additions and 7 deletions.
14 changes: 7 additions & 7 deletions drivers/staging/comedi/drivers/mite.h
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@
#define _MITE_H_

#include <linux/pci.h>
#include <linux/log2.h>
#include "../comedidev.h"

/* #define DEBUG_MITE */
Expand Down Expand Up @@ -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;
}
Expand Down Expand Up @@ -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;
}

Expand Down

0 comments on commit d6f015b

Please sign in to comment.