diff options
-rw-r--r-- | drivers/input/mouse/elantech.c | 12 |
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 | ||
27 | static bool force_elantech; | ||
28 | module_param_named(force_elantech, force_elantech, bool, 0644); | ||
29 | MODULE_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) { |