Merge branch 'stable-3.2' into pandora-3.2
[pandora-kernel.git] / drivers / tty / vt / keyboard.c
index a605549..157aab9 100644 (file)
@@ -386,34 +386,22 @@ static void to_utf8(struct vc_data *vc, uint c)
  */
 void compute_shiftstate(void)
 {
-       unsigned int i, j, k, sym, val;
+       unsigned int k, sym, val;
 
        shift_state = 0;
        memset(shift_down, 0, sizeof(shift_down));
 
-       for (i = 0; i < ARRAY_SIZE(key_down); i++) {
-
-               if (!key_down[i])
+       for_each_set_bit(k, key_down, min(NR_KEYS, KEY_CNT)) {
+               sym = U(key_maps[0][k]);
+               if (KTYP(sym) != KT_SHIFT && KTYP(sym) != KT_SLOCK)
                        continue;
 
-               k = i * BITS_PER_LONG;
-
-               for (j = 0; j < BITS_PER_LONG; j++, k++) {
-
-                       if (!test_bit(k, key_down))
-                               continue;
+               val = KVAL(sym);
+               if (val == KVAL(K_CAPSSHIFT))
+                       val = KVAL(K_SHIFT);
 
-                       sym = U(key_maps[0][k]);
-                       if (KTYP(sym) != KT_SHIFT && KTYP(sym) != KT_SLOCK)
-                               continue;
-
-                       val = KVAL(sym);
-                       if (val == KVAL(K_CAPSSHIFT))
-                               val = KVAL(K_SHIFT);
-
-                       shift_down[val]++;
-                       shift_state |= (1 << val);
-               }
+               shift_down[val]++;
+               shift_state |= BIT(val);
        }
 }
 
@@ -1198,9 +1186,9 @@ static void kbd_keycode(unsigned int keycode, int down, int hw_raw)
        raw_mode = (kbd->kbdmode == VC_RAW);
        if (raw_mode && !hw_raw)
                if (emulate_raw(vc, keycode, !down << 7))
-                       if (keycode < BTN_MISC && printk_ratelimit())
+                       /*if (keycode < BTN_MISC && printk_ratelimit())
                                pr_warning("can't emulate rawmode for keycode %d\n",
-                                          keycode);
+                                          keycode)*/;
 
 #ifdef CONFIG_SPARC
        if (keycode == KEY_A && sparc_l1_a_state) {