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.