All of lore.kernel.org
 help / color / mirror / Atom feed
From: whs_jwc <whs_jwc@163.com>
To: whs_jwc@163.com
Subject: [PATCH] Some Samsung laptops with Fn+Fx key release not working
Date: Sat, 27 Oct 2012 21:58:07 +0800 (CST)	[thread overview]
Message-ID: <69021e29.7876.13aa283f3de.Coremail.whs_jwc@163.com> (raw)

[PATCH] Some Samsung laptops with Fn+Fx key release not working

    Some new Samsung laptops doesn't send key-release signal of the 
    volume key to the OS, it's quite hard to change the volume by 
    using Fn+Fx, so I decode the DMI and add several samsung machines
    to the forced_release_keys table in order to fixed this problem.
    
    DMI (only a part):
    # dmidecode
... 
Handle 0x0001, DMI type 1, 27 bytes
System Information
        Manufacturer: SAMSUNG ELECTRONICS CO., LTD.
        Product Name: 355V4C/355V4X/355V5C/355V5X/356V4C/356V4X/356V5C/356V5X/3445VC/3445VX/3545VC/3545VX
        Version: P02AAN.014.CP
        Serial Number: HTD798FC7B1TQY
        UUID: 7661EB04-63B7-E111-9466-B888E35FDCEE
        Wake-up Type: Power Switch
        SKU Number: P02AAN.014.CP
        Family: Eureka
...
    P.S: I have tested this patch on all these machines and It
         works very well.
    
    Patched file(s):
    drivers/input/keyboard/atkbd.c


-----  input_keyboard_samsung_laptops.patch -----

commit f7540722cf2e98a01f64239c184882de000904ac
Author: WenCong Ji <whs_jwc@163.com>
Date:   Sat Oct 27 21:11:20 2012 +0800
    
    input/keyboard: Some Samsung laptops with Fn+Fx key release not working
    
    Some new Samsung laptops doesn't send key-release signal to the Operating
    System when we click on Fn+F[6-8], so we have to force it to release immedi-
    ately after receiving the key-press signal.
    
Signed-off-by: WenCong Ji <whs_jwc@163.com>
Signed-off-by: Cai Liu <lcc_xiaojsoft@163.com>

diff -up a/drivers/input/keyboard/atkbd.c b/drivers/input/keyboard/atkbd.c
--- a/drivers/input/keyboard/atkbd.c
+++ b/drivers/input/keyboard/atkbd.c
@@ -915,10 +915,10 @@ static unsigned int atkbd_hp_forced_rele
 };
 
 /*
- * Samsung NC10,NC20 with Fn+F? key release not working
+ * Some Samsung laptops with Fn+F? key release not working
  */
 static unsigned int atkbd_samsung_forced_release_keys[] = {
-	0x82, 0x83, 0x84, 0x86, 0x88, 0x89, 0xb3, 0xf7, 0xf9, -1U
+	0x82, 0x83, 0x84, 0x86, 0x88, 0x89, 0xa0, 0xae, 0xb0, 0xb3, 0xf7, 0xf9, -1U
 };
 
 /*
@@ -1700,6 +1700,114 @@ static const struct dmi_system_id atkbd_
 		},
 		.callback = atkbd_setup_forced_release,
 		.driver_data = atkbd_samsung_forced_release_keys,
+	},
+	{
+		/* Samsung 355V4C */
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "SAMSUNG ELECTRONICS CO., LTD."),
+			DMI_MATCH(DMI_PRODUCT_NAME, "355V4C"),
+		},
+		.callback = atkbd_setup_forced_release,
+		.driver_data = atkbd_samsung_forced_release_keys,
+	},
+	{
+		/* Samsung 355V4X */
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "SAMSUNG ELECTRONICS CO., LTD."),
+			DMI_MATCH(DMI_PRODUCT_NAME, "355V4X"),
+		},
+		.callback = atkbd_setup_forced_release,
+		.driver_data = atkbd_samsung_forced_release_keys,
+	},
+	{
+		/* Samsung 355V5C */
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "SAMSUNG ELECTRONICS CO., LTD."),
+			DMI_MATCH(DMI_PRODUCT_NAME, "355V5C"),
+		},
+		.callback = atkbd_setup_forced_release,
+		.driver_data = atkbd_samsung_forced_release_keys,
+	},
+	{
+		/* Samsung 355V5X */
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "SAMSUNG ELECTRONICS CO., LTD."),
+			DMI_MATCH(DMI_PRODUCT_NAME, "355V5X"),
+		},
+		.callback = atkbd_setup_forced_release,
+		.driver_data = atkbd_samsung_forced_release_keys,
+	},
+	{
+		/* Samsung 356V4C */
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "SAMSUNG ELECTRONICS CO., LTD."),
+			DMI_MATCH(DMI_PRODUCT_NAME, "356V4C"),
+		},
+		.callback = atkbd_setup_forced_release,
+		.driver_data = atkbd_samsung_forced_release_keys,
+	},
+	{
+		/* Samsung 356V4X */
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "SAMSUNG ELECTRONICS CO., LTD."),
+			DMI_MATCH(DMI_PRODUCT_NAME, "356V4X"),
+		},
+		.callback = atkbd_setup_forced_release,
+		.driver_data = atkbd_samsung_forced_release_keys,
+	},
+	{
+		/* Samsung 356V5C */
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "SAMSUNG ELECTRONICS CO., LTD."),
+			DMI_MATCH(DMI_PRODUCT_NAME, "356V5C"),
+		},
+		.callback = atkbd_setup_forced_release,
+		.driver_data = atkbd_samsung_forced_release_keys,
+	},
+	{
+		/* Samsung 356V5X */
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "SAMSUNG ELECTRONICS CO., LTD."),
+			DMI_MATCH(DMI_PRODUCT_NAME, "356V5X"),
+		},
+		.callback = atkbd_setup_forced_release,
+		.driver_data = atkbd_samsung_forced_release_keys,
+	},
+	{
+		/* Samsung 3445VC */
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "SAMSUNG ELECTRONICS CO., LTD."),
+			DMI_MATCH(DMI_PRODUCT_NAME, "3445VC"),
+		},
+		.callback = atkbd_setup_forced_release,
+		.driver_data = atkbd_samsung_forced_release_keys,
+	},
+	{
+		/* Samsung 3445VX */
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "SAMSUNG ELECTRONICS CO., LTD."),
+			DMI_MATCH(DMI_PRODUCT_NAME, "3445VX"),
+		},
+		.callback = atkbd_setup_forced_release,
+		.driver_data = atkbd_samsung_forced_release_keys,
+	},
+	{
+		/* Samsung 3545VC */
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "SAMSUNG ELECTRONICS CO., LTD."),
+			DMI_MATCH(DMI_PRODUCT_NAME, "3545VC"),
+		},
+		.callback = atkbd_setup_forced_release,
+		.driver_data = atkbd_samsung_forced_release_keys,
+	},
+	{
+		/* Samsung 3545VX */
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "SAMSUNG ELECTRONICS CO., LTD."),
+			DMI_MATCH(DMI_PRODUCT_NAME, "3545VX"),
+		},
+		.callback = atkbd_setup_forced_release,
+		.driver_data = atkbd_samsung_forced_release_keys,
 	},
 	{
 		/* Fujitsu Amilo PA 1510 */

                 reply	other threads:[~2012-10-27 14:15 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

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=69021e29.7876.13aa283f3de.Coremail.whs_jwc@163.com \
    --to=whs_jwc@163.com \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.