[PATCH 1/1] Input: atkbd - add keyboard quirk for HP Pavilion ZV6100 laptop
Stefan Bader
stefan.bader at canonical.com
Thu Jan 15 14:04:05 UTC 2009
Andy Whitcroft wrote:
> From: Rikard Ljungstrand <lrikard at student.chalmers.se>
>
> Bug: #291878
>
> commit 181f63827a7655e84781fe0494189c1fea52816f upstream
>
> Add quirk for misbehaving volume buttons on HP Pavilion ZV6100 laptop which
> are not sending keyrelease events, as reported by Aaron Pickett.
>
> Signed-off-by: Rikard Ljungstrand <lrikard at student.chalmers.se>
> Signed-off-by: Dmitry Torokhov <dtor at mail.ru>
> Signed-off-by: Andy Whitcroft <apw at canonical.com>
> ---
> drivers/input/keyboard/atkbd.c | 26 ++++++++++++++++++++++++++
> 1 files changed, 26 insertions(+), 0 deletions(-)
>
> diff --git a/drivers/input/keyboard/atkbd.c b/drivers/input/keyboard/atkbd.c
> index c694eaa..1aa2eaf 100644
> --- a/drivers/input/keyboard/atkbd.c
> +++ b/drivers/input/keyboard/atkbd.c
> @@ -884,6 +884,23 @@ static void atkbd_inventec_keymap_fixup(struct atkbd *atkbd)
> }
>
> /*
> + * Perform fixup for HP Pavilion ZV6100 laptop that doesn't generate release
> + * for its volume buttons
> + */
> +static void atkbd_hp_zv6100_keymap_fixup(struct atkbd *atkbd)
> +{
> + const unsigned int forced_release_keys[] = {
> + 0xae, 0xb0,
> + };
> + 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);
> +}
> +
> +/*
> * atkbd_set_keycode_table() initializes keyboard's keycode table
> * according to the selected scancode set
> */
> @@ -1495,6 +1512,15 @@ static struct dmi_system_id atkbd_dmi_quirk_table[] __initdata = {
> .driver_data = atkbd_hp_keymap_fixup,
> },
> {
> + .ident = "HP Pavilion ZV6100",
> + .matches = {
> + DMI_MATCH(DMI_SYS_VENDOR, "Hewlett-Packard"),
> + DMI_MATCH(DMI_PRODUCT_NAME, "Pavilion ZV6100"),
> + },
> + .callback = atkbd_setup_fixup,
> + .driver_data = atkbd_hp_zv6100_keymap_fixup,
> + },
> + {
> .ident = "Inventec Symphony",
> .matches = {
> DMI_MATCH(DMI_SYS_VENDOR, "INVENTEC"),
ACK
--
When all other means of communication fail, try words!
More information about the kernel-team
mailing list