[PATCH] Separate macro for generation of keyrelease events

From: Daniel Mierswa
Date: Sat Nov 29 2008 - 16:39:34 EST


---
drivers/input/keyboard/atkbd.c | 23 +++++++++++++----------
1 files changed, 13 insertions(+), 10 deletions(-)

diff --git a/drivers/input/keyboard/atkbd.c b/drivers/input/keyboard/atkbd.c
index 22016ca..99ef522 100644
--- a/drivers/input/keyboard/atkbd.c
+++ b/drivers/input/keyboard/atkbd.c
@@ -834,6 +834,17 @@ static void atkbd_disconnect(struct serio *serio)
}

/*
+ * generate release events for the keycodes given in forced_release_keys[]
+ */
+#define GEN_RELEASE_EVENT \
+ int i; \
+\
+ if (atkbd->set == 2) \
+ for (i = 0; i < ARRAY_SIZE(forced_release_keys); i++) \
+ __set_bit(forced_release_keys[i], \
+ atkbd->force_release_mask);
+
+/*
* Most special keys (Fn+F?) on Dell laptops do not generate release
* events so we have to do it ourselves.
*/
@@ -842,12 +853,8 @@ static void atkbd_dell_laptop_keymap_fixup(struct atkbd *atkbd)
const unsigned int forced_release_keys[] = {
0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8f, 0x93,
};
- int i;

- if (atkbd->set == 2)
- for (i = 0; i < ARRAY_SIZE(forced_release_keys); i++)
- __set_bit(forced_release_keys[i],
- atkbd->force_release_mask);
+ GEN_RELEASE_EVENT
}

/*
@@ -859,12 +866,8 @@ static void atkbd_hp_keymap_fixup(struct atkbd *atkbd)
const unsigned int forced_release_keys[] = {
0x94,
};
- int i;

- if (atkbd->set == 2)
- for (i = 0; i < ARRAY_SIZE(forced_release_keys); i++)
- __set_bit(forced_release_keys[i],
- atkbd->force_release_mask);
+ GEN_RELEASE_EVENT
}

/*
--
1.6.0.4