[ALSA] rtctimer: optimize module parameter validation
Clemens Ladisch [Tue, 27 Sep 2005 13:57:24 +0000 (15:57 +0200)]
Modules: RTC timer driver

The check whether rtctimer_freq is a power of two can be done easier
with a simple bit operation.

Signed-off-by: Clemens Ladisch <clemens@ladisch.de>

sound/core/rtctimer.c

index 85627db..8762ff8 100644 (file)
@@ -119,16 +119,11 @@ static void rtctimer_interrupt(void *private_data)
  */
 static int __init rtctimer_init(void)
 {
-       int order, err;
+       int err;
        snd_timer_t *timer;
 
-       if (rtctimer_freq < 2 || rtctimer_freq > 8192) {
-               snd_printk(KERN_ERR "rtctimer: invalid frequency %d\n", rtctimer_freq);
-               return -EINVAL;
-       }
-       for (order = 1; rtctimer_freq > order; order <<= 1)
-               ;
-       if (rtctimer_freq != order) {
+       if (rtctimer_freq < 2 || rtctimer_freq > 8192 ||
+           (rtctimer_freq & (rtctimer_freq - 1)) != 0) {
                snd_printk(KERN_ERR "rtctimer: invalid frequency %d\n", rtctimer_freq);
                return -EINVAL;
        }