From: Dmitry Torokhov <dmitry.torokhov@gmail.com>
To: Srihari Vijayaraghavan <linux.bug.reporting@gmail.com>
Cc: linux-input@vger.kernel.org,
"Mateusz Jończyk" <mat.jonczyk@o2.pl>,
"Zakariya Dehlawi" <zdehlawi@gmail.com>,
guillaum.bouchard@gmail.com
Subject: Re: [PATCH 1/1] Elantech touchpad detection fix for laptops
Date: Tue, 6 Jan 2015 23:44:33 -0800 [thread overview]
Message-ID: <20150107074433.GC5256@dtor-ws> (raw)
In-Reply-To: <CAEK4c-8CsrBaf8gaH2B2kuoMTHrLpLMgGQPrXTZAX3W5At0uoA@mail.gmail.com>
Hi Srihari,
On Mon, Jan 05, 2015 at 07:45:39PM +1100, Srihari Vijayaraghavan wrote:
> Hello Folks & Dmitry,
>
> Further to the previous patch, here is the current version (against
> mainline) updated with the DMI info of another laptop model where this
> fix had helped a user.
>
> Can you please review it & give some feedback? If it looks good as it
> is, then on behalf of all affected users (including yours truly), may
> I request for it to be merged upstream (and possibly stable too)?
>
> (If the patch gets spoiled by gmail, please ref to this bugzilla URL,
> where this patch is there as a file attachment:
> https://bugzilla.kernel.org/show_bug.cgi?id=81331)
I am not terribly happy with having fiddling with keyboard from i8042
core, but I guess that's what we have to do unless someone has better
idea...
I'll drop mention of Elantech from the option though as it may well be
needed for other devices in the future.
Thanks!
>
> Thanks
> commit c77a39a799b51fbb68b72330267c2d32a8e20542
> Author: Srihari Vijayaraghavan <linux.bug.reporting@gmail.com>
> Date: Mon Jan 5 18:53:04 2015 +1100
>
> As reported in kernel bugzilla 81331, on many laptops keyboard needs to be reset
> for the detection of Elantech touchpad. Based on the original patch by Mateusz Jończyk
> this version has been expanded to include DMI based detection & application of the fix
> automatically. Confirmed to fix the problem by three users already.
>
> Signed-off-by: Srihari Vijayaraghavan <linux.bug.reporting@gmail.com>
> Acked-by: Mateusz Jończyk <mat.jonczyk@o2.pl>
> Tested-by: Srihari Vijayaraghavan <linux.bug.reporting@gmail.com>
> Tested by: Zakariya Dehlawi <zdehlawi@gmail.com>
> Tested-by: Guillaum Bouchard <guillaum.bouchard@gmail.com>
>
> diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt
> index 4df73da..c6e8cbc 100644
> --- a/Documentation/kernel-parameters.txt
> +++ b/Documentation/kernel-parameters.txt
> @@ -1277,6 +1277,7 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
> i8042.notimeout [HW] Ignore timeout condition signalled by controller
> i8042.reset [HW] Reset the controller during init and cleanup
> i8042.unlock [HW] Unlock (ignore) the keylock
> + i8042.kbdreset [HW] Reset keyboard to detect Elantech touchpad
>
> i810= [HW,DRM]
>
> diff --git a/drivers/input/serio/i8042-x86ia64io.h b/drivers/input/serio/i8042-x86ia64io.h
> index c66d1b5..734360b 100644
> --- a/drivers/input/serio/i8042-x86ia64io.h
> +++ b/drivers/input/serio/i8042-x86ia64io.h
> @@ -745,6 +745,36 @@ static const struct dmi_system_id __initconst i8042_dmi_dritek_table[] = {
> { }
> };
>
> +/*
> + * Just as per kernel bugzilla #81331, some Elantech touchpad based laptops
> + * need keyboard reset while probing for the tochpad to get detected,
> + * initialised & finally work.
> + */
> +static const struct dmi_system_id __initconst i8042_dmi_elantech_kbdreset_table[] = {
> + {
> + /* Gigabyte P35 v2 */
> + .matches = {
> + DMI_MATCH(DMI_SYS_VENDOR, "GIGABYTE"),
> + DMI_MATCH(DMI_PRODUCT_NAME, "P35V2"),
> + },
> + },
> + {
> + /* Aorus branded Gigabyte X3 Plus */
> + .matches = {
> + DMI_MATCH(DMI_SYS_VENDOR, "GIGABYTE"),
> + DMI_MATCH(DMI_PRODUCT_NAME, "X3"),
> + },
> + },
> + {
> + /* Gigabyte P34 */
> + .matches = {
> + DMI_MATCH(DMI_SYS_VENDOR, "GIGABYTE"),
> + DMI_MATCH(DMI_PRODUCT_NAME, "P34"),
> + },
> + },
> + { }
> +};
> +
> #endif /* CONFIG_X86 */
>
> #ifdef CONFIG_PNP
> @@ -1040,6 +1070,9 @@ static int __init i8042_platform_init(void)
> if (dmi_check_system(i8042_dmi_dritek_table))
> i8042_dritek = true;
>
> + if (dmi_check_system(i8042_dmi_elantech_kbdreset_table))
> + i8042_kbdreset = true;
> +
> /*
> * A20 was already enabled during early kernel init. But some buggy
> * BIOSes (in MSI Laptops) require A20 to be enabled using 8042 to
> diff --git a/drivers/input/serio/i8042.c b/drivers/input/serio/i8042.c
> index 924e4bf..92d0aa8 100644
> --- a/drivers/input/serio/i8042.c
> +++ b/drivers/input/serio/i8042.c
> @@ -67,6 +67,10 @@ static bool i8042_notimeout;
> module_param_named(notimeout, i8042_notimeout, bool, 0);
> MODULE_PARM_DESC(notimeout, "Ignore timeouts signalled by i8042");
>
> +static bool i8042_kbdreset;
> +module_param_named(kbdreset, i8042_kbdreset, bool, 0);
> +MODULE_PARM_DESC(kbdreset, "Reset keyboard to detect Elantech touchpad on some laptops");
> +
> #ifdef CONFIG_X86
> static bool i8042_dritek;
> module_param_named(dritek, i8042_dritek, bool, 0);
> @@ -790,6 +794,14 @@ static int __init i8042_check_aux(void)
> return -1;
>
> /*
> + * Reset keyboard to detect touchpad on some laptops having Elantech touchpad
> + */
> + if (i8042_kbdreset) {
> + pr_warn("Resetting keyboard to detect Elantech touchpad on some laptops\n");
> + i8042_kbd_write(NULL, (unsigned char) 0xff);
> + }
> +
> +/*
> * Test AUX IRQ delivery to make sure BIOS did not grab the IRQ and
> * used it for a PCI card or somethig else.
> */
--
Dmitry
--
To unsubscribe from this list: send the line "unsubscribe linux-input" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
next prev parent reply other threads:[~2015-01-07 7:44 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-12-24 0:17 [PATCH 1/1] Elantech touchpad detection fix for laptops Srihari Vijayaraghavan
2015-01-05 8:45 ` Srihari Vijayaraghavan
2015-01-07 7:44 ` Dmitry Torokhov [this message]
2015-01-07 8:23 ` Srihari Vijayaraghavan
2015-01-07 9:11 ` Srihari Vijayaraghavan
2015-01-08 1:23 ` Dmitry Torokhov
2015-01-08 5:02 ` Srihari Vijayaraghavan
2015-01-08 22:09 ` Dmitry Torokhov
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=20150107074433.GC5256@dtor-ws \
--to=dmitry.torokhov@gmail.com \
--cc=guillaum.bouchard@gmail.com \
--cc=linux-input@vger.kernel.org \
--cc=linux.bug.reporting@gmail.com \
--cc=mat.jonczyk@o2.pl \
--cc=zdehlawi@gmail.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).