public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Daniel Mierswa <impulze@impulze.org>
To: linux-kernel@vger.kernel.org
Subject: [PATCH] Fujitsu Amilo PA 1510 key-release events quirk
Date: Sat, 29 Nov 2008 22:59:36 +0100	[thread overview]
Message-ID: <4931BB48.9010706@impulze.org> (raw)

[-- Attachment #1: Type: text/plain, Size: 671 bytes --]

heya,
the fujitsu amilo pa 1510 laptop needs a little lovin' regarding the 
release event of the volume up and down keys. I attached a format-patch 
(against torvalds/linux-2.6.git ed313489badef16d7) which separates the 
generation of release events for certain scancodes into a macro since 3 
dmi matches are already using it and generation of the missing release 
events for that particular laptop. Please post back with any advice and 
thoughts for that patch.

Thanks in advance.

-- 
Mierswa, Daniel

If you still don't like it, that's ok: that's why I'm boss. I simply know better than you do.
               --- Linus Torvalds, comp.os.linux.advocacy, 1996/07/22


[-- Attachment #2: fujitsu-siemens-amilopa1510-quirks.patch --]
[-- Type: text/plain, Size: 3476 bytes --]

>From a197dfb0eed23b87418c0a7fe6a562910046576e Mon Sep 17 00:00:00 2001
From: Daniel Mierswa <impulze@impulze.org>
Date: Sat, 29 Nov 2008 22:39:34 +0100
Subject: [PATCH] Separate macro for generation of keyrelease events

---
 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


>From add1de59a8337442154fb3d7427ae8fd500de47a Mon Sep 17 00:00:00 2001
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
+}
+
+/*
  * 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"),
-- 
1.6.0.4


             reply	other threads:[~2008-11-29 22:08 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-11-29 21:59 Daniel Mierswa [this message]
2008-11-30  7:38 ` [PATCH] Fujitsu Amilo PA 1510 key-release events quirk Andrew Morton
2008-11-30  7:42   ` Andrew Morton
2008-12-01 20:59   ` [PATCH] Fujitsu Amilo PA 1510 key-release events quirk (PATCH 1/3) Daniel Mierswa
2008-12-01 21:00   ` [PATCH] Fujitsu Amilo PA 1510 key-release events quirk (PATCH 2/3) Daniel Mierswa
2008-12-01 21:01   ` [PATCH] Fujitsu Amilo PA 1510 key-release events quirk (PATCH 3/3) Daniel Mierswa
2008-12-03  6:11     ` Andrew Morton
2008-11-30  7:41 ` [PATCH] Fujitsu Amilo PA 1510 key-release events quirk Andrew Morton

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4931BB48.9010706@impulze.org \
    --to=impulze@impulze.org \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox