public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH] Make Dell keyboard repeat quirk apply to a wider range of hardware
@ 2008-08-14  3:32 Matthew Garrett
  2008-08-15 19:04 ` Dmitry Torokhov
  0 siblings, 1 reply; 12+ messages in thread
From: Matthew Garrett @ 2008-08-14  3:32 UTC (permalink / raw)
  To: linux-input; +Cc: linux-kernel

Dell laptops fail to send key up events for several of their special 
keys. There's an existing quirk in the kernel to handle this, but it's 
limited to the Latitude range. This patch extends it to cover all 
portable Dells.

Signed-off-by: Matthew Garrett <mjg@redhat.com>

---
diff --git a/drivers/input/keyboard/atkbd.c b/drivers/input/keyboard/atkbd.c
index b1ce10f..e32c24d 100644
--- a/drivers/input/keyboard/atkbd.c
+++ b/drivers/input/keyboard/atkbd.c
@@ -834,10 +834,10 @@ static void atkbd_disconnect(struct serio *serio)
 }
 
 /*
- * Most special keys (Fn+F?) on Dell Latitudes do not generate release
+ * Most special keys (Fn+F?) on Dell laptops do not generate release
  * events so we have to do it ourselves.
  */
-static void atkbd_latitude_keymap_fixup(struct atkbd *atkbd)
+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,
@@ -1461,13 +1461,13 @@ static int __init atkbd_setup_fixup(const struct dmi_system_id *id)
 
 static struct dmi_system_id atkbd_dmi_quirk_table[] __initdata = {
 	{
-		.ident = "Dell Latitude series",
+		.ident = "Dell Laptop",
 		.matches = {
 			DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
-			DMI_MATCH(DMI_PRODUCT_NAME, "Latitude"),
+			DMI_MATCH(DMI_CHASSIS_TYPE, "8"), /* Portable */
 		},
 		.callback = atkbd_setup_fixup,
-		.driver_data = atkbd_latitude_keymap_fixup,
+		.driver_data = atkbd_dell_laptop_keymap_fixup,
 	},
 	{
 		.ident = "HP 2133",

-- 
Matthew Garrett | mjg59@srcf.ucam.org

^ permalink raw reply related	[flat|nested] 12+ messages in thread
* Re: [PATCH] Make Dell keyboard repeat quirk apply to a wider range of hardware
@ 2008-11-11  7:47 Nick Warne
  2008-11-12 13:14 ` Nick Warne
  0 siblings, 1 reply; 12+ messages in thread
From: Nick Warne @ 2008-11-11  7:47 UTC (permalink / raw)
  To: linux-kernel, Matthew Garrett


> Dell laptops fail to send key up events for several of their special 
> keys. There's an existing quirk in the kernel to handle this, but it's 
> limited to the Latitude range. This patch extends it to cover all 
> portable Dells.
> 
> Signed-off-by: Matthew Garrett <mjg@redhat.com>
> 
> ---
> diff --git a/drivers/input/keyboard/atkbd.c b/drivers/input/keyboard/atkbd.c
> index b1ce10f..e32c24d 100644
> --- a/drivers/input/keyboard/atkbd.c
> +++ b/drivers/input/keyboard/atkbd.c
> @@ -834,10 +834,10 @@ static void atkbd_disconnect(struct serio *serio)
>  }
>  
>  /*
> - * Most special keys (Fn+F?) on Dell Latitudes do not generate release
> + * Most special keys (Fn+F?) on Dell laptops do not generate release
>   * events so we have to do it ourselves.
>   */
> -static void atkbd_latitude_keymap_fixup(struct atkbd *atkbd)
> +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,
> @@ -1461,13 +1461,13 @@ static int __init atkbd_setup_fixup(const struct dmi_system_id *id)
>  
>  static struct dmi_system_id atkbd_dmi_quirk_table[] __initdata = {
>  	{
> -		.ident = "Dell Latitude series",
> +		.ident = "Dell Laptop",
>  		.matches = {
>  			DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
> -			DMI_MATCH(DMI_PRODUCT_NAME, "Latitude"),
> +			DMI_MATCH(DMI_CHASSIS_TYPE, "8"), /* Portable */
>  		},
>  		.callback = atkbd_setup_fixup,
> -		.driver_data = atkbd_latitude_keymap_fixup,
> +		.driver_data = atkbd_dell_laptop_keymap_fixup,
>  	},
>  	{
>  		.ident = "HP 2133",

This issue has hit a lot of Ubuntu Dell uses (like myself), and the
patch indeed fixes it up - but it appears not all Dell machines are
alike.  One user has reported it doesn't work, and his investigation
reveals dmicode output shows:

Vendor: Dell Computer Corporation

So I guess this isn't totally fixed yet.  As to what the vendor output
is al all these machines, I don't know, but I guess now it could be any
permatation of Dell Inc., Dell Computer Corp. etc.

Ref. Ubuntu bug report thread:

https://bugs.launchpad.net/ubuntu/+source/acpid/+bug/285323/comments/88

Nick

-- 
Free Software Foundation Associate Member 5508

^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2008-12-29 11:36 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-08-14  3:32 [PATCH] Make Dell keyboard repeat quirk apply to a wider range of hardware Matthew Garrett
2008-08-15 19:04 ` Dmitry Torokhov
  -- strict thread matches above, loose matches on Subject: below --
2008-11-11  7:47 Nick Warne
2008-11-12 13:14 ` Nick Warne
2008-11-12 16:45   ` Andreas Mohr
2008-11-12 16:56   ` Matthew Garrett
2008-11-12 17:24     ` Nick Warne
2008-11-12 17:27       ` Matthew Garrett
2008-11-12 17:40         ` Nick Warne
2008-11-12 17:41           ` Matthew Garrett
2008-11-15 12:32     ` Nick Warne
2008-12-29 11:36     ` Nick Warne

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox