aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/input/mouse/elantech.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/drivers/input/mouse/elantech.c b/drivers/input/mouse/elantech.c
index 28eba48e68fd..095bd388c6dd 100644
--- a/drivers/input/mouse/elantech.c
+++ b/drivers/input/mouse/elantech.c
@@ -24,6 +24,10 @@
24 printk(KERN_DEBUG format, ##arg); \ 24 printk(KERN_DEBUG format, ##arg); \
25 } while (0) 25 } while (0)
26 26
27static bool force_elantech;
28module_param_named(force_elantech, force_elantech, bool, 0644);
29MODULE_PARM_DESC(force_elantech, "Force the Elantech PS/2 protocol extension to be used, 1 = enabled, 0 = disabled (default).");
30
27/* 31/*
28 * Send a Synaptics style sliced query command 32 * Send a Synaptics style sliced query command
29 */ 33 */
@@ -595,8 +599,12 @@ int elantech_detect(struct psmouse *psmouse, bool set_properties)
595 param[0], param[1], param[2]); 599 param[0], param[1], param[2]);
596 600
597 if (param[0] == 0 || param[1] != 0) { 601 if (param[0] == 0 || param[1] != 0) {
598 pr_debug("elantech.c: Probably not a real Elantech touchpad. Aborting.\n"); 602 if (!force_elantech) {
599 return -1; 603 pr_debug("elantech.c: Probably not a real Elantech touchpad. Aborting.\n");
604 return -1;
605 }
606
607 pr_debug("elantech.c: Probably not a real Elantech touchpad. Enabling anyway due to force_elantech.\n");
600 } 608 }
601 609
602 if (set_properties) { 610 if (set_properties) {