Messages in this thread | | | Date | Sat, 29 Nov 2008 23:41:48 -0800 | From | Andrew Morton <> | Subject | Re: [PATCH] Fujitsu Amilo PA 1510 key-release events quirk |
| |
On Sat, 29 Nov 2008 22:59:36 +0100 Daniel Mierswa <impulze@impulze.org> wrote:
> From: Daniel Mierswa <impulze@impulze.org> > Date: Sat, 29 Nov 2008 22:40:20 +0100 > Subject: [PATCH] Fujitsu Siemens Amilo PA 1510 quirks > > The volume up and down keys on the Fujitsu Siemens Amilo PA 1510 laptop > won't generate release events, so we have to do that. Use the same > way that is already used with other models. > --- > drivers/input/keyboard/atkbd.c | 22 ++++++++++++++++++++++ > 1 files changed, 22 insertions(+), 0 deletions(-) > > diff --git a/drivers/input/keyboard/atkbd.c b/drivers/input/keyboard/atkbd.c > index 99ef522..1250242 100644 > --- a/drivers/input/keyboard/atkbd.c > +++ b/drivers/input/keyboard/atkbd.c > @@ -845,6 +845,19 @@ static void atkbd_disconnect(struct serio *serio) > atkbd->force_release_mask); > > /* > + * The volume up and volume down special keys on a Fujitsu Amilo PA 1510 laptop > + * do not generate release events so we have to do it ourselves. > + */ > +static void atkbd_amilopa1510_keymap_fixup(struct atkbd *atkbd) > +{ > + const unsigned int forced_release_keys[] = { > + 0xb0, 0xae, > + }; > + > + GEN_RELEASE_EVENT > +}
It's best to make forced_release_keys static as well - there is no need to build this array on the stack at runtime. The compiler _could_ perform this optimisation itself andallegedly it will sometimes do so. Last time I checked it did not.
> +/* > * Most special keys (Fn+F?) on Dell laptops do not generate release > * events so we have to do it ourselves. > */ > @@ -1463,6 +1476,15 @@ static struct dmi_system_id atkbd_dmi_quirk_table[] __initdata = { > .driver_data = atkbd_dell_laptop_keymap_fixup, > }, > { > + .ident = "Fujitsu Amilo PA 1510", > + .matches = { > + DMI_MATCH(DMI_SYS_VENDOR, "FUJITSU SIEMENS"), > + DMI_MATCH(DMI_PRODUCT_NAME, "AMILO Pa 1510"), > + }, > + .callback = atkbd_setup_fixup, > + .driver_data = atkbd_amilopa1510_keymap_fixup, > + }, > + { > .ident = "HP 2133", > .matches = { > DMI_MATCH(DMI_SYS_VENDOR, "Hewlett-Packard"),
| |