Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 181f6382 authored by Rikard Ljungstrand's avatar Rikard Ljungstrand Committed by Dmitry Torokhov
Browse files

Input: atkbd - add keyboard quirk for HP Pavilion ZV6100 laptop



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: default avatarRikard Ljungstrand <lrikard@student.chalmers.se>
Signed-off-by: default avatarDmitry Torokhov <dtor@mail.ru>
parent 93b8eef1
Loading
Loading
Loading
Loading
+26 −0
Original line number Diff line number Diff line
@@ -883,6 +883,23 @@ static void atkbd_inventec_keymap_fixup(struct atkbd *atkbd)
				  atkbd->force_release_mask);
}

/*
 * 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
@@ -1484,6 +1501,15 @@ static struct dmi_system_id atkbd_dmi_quirk_table[] __initdata = {
		.callback = atkbd_setup_fixup,
		.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 = {