Messages in this thread Patch in this message | | | From | Dmitry Torokhov <> | Subject | Re: [Bug #12406] 2.6.28 thinks that my PS/2 mouse is a touchpad | Date | Tue, 20 Jan 2009 01:19:54 -0800 |
| |
> On Mon, Jan 19, 2009 at 10:45:42PM +0100, Rafael J. Wysocki wrote: > > The following bug entry is on the current list of known regressions > > introduced between 2.6.27 and 2.6.28. Please verify if it still should > > be listed and let me know (either way). > > Well. Dmitry hasn't replied yet to my suggestion how to fix this as > presented in the Patch entry. Without help from him as the Linux input > subsystem maintainer there is not a lot I can do. > > This means the regression is still present in the current 2.6.29 git tree.
Sorry, must have missed that. I think it's gonna be a bit chatty if user happens to have Logitech++ device attached, however I think if we complement it with the patch below I think it should work OK.
-- Dmitry
Input: psmouse - move Elantech detection towards end of the list
Elantech'd detection routine misfires on Logitech's devices so let's move it down to prevent false positives.
Signed-off-by: Dmitry Torokhov <dtor@mail.ru> ---
drivers/input/mouse/psmouse-base.c | 26 +++++++++++++------------- 1 files changed, 13 insertions(+), 13 deletions(-)
diff --git a/drivers/input/mouse/psmouse-base.c b/drivers/input/mouse/psmouse- base.c index f8f86de..e4106ba 100644 --- a/drivers/input/mouse/psmouse-base.c +++ b/drivers/input/mouse/psmouse-base.c @@ -651,19 +651,6 @@ static int psmouse_extensions(struct psmouse *psmouse, max_proto = PSMOUSE_IMEX; } -/* - * Try Elantech touchpad. - */ - if (max_proto > PSMOUSE_IMEX && - elantech_detect(psmouse, set_properties) == 0) { - if (!set_properties || elantech_init(psmouse) == 0) - return PSMOUSE_ELANTECH; -/* - * Init failed, try basic relative protocols - */ - max_proto = PSMOUSE_IMEX; - } - if (max_proto > PSMOUSE_IMEX) { if (genius_detect(psmouse, set_properties) == 0) return PSMOUSE_GENPS; @@ -679,6 +666,19 @@ static int psmouse_extensions(struct psmouse *psmouse, } /* + * Try Elantech touchpad. + */ + if (max_proto > PSMOUSE_IMEX && + elantech_detect(psmouse, set_properties) == 0) { + if (!set_properties || elantech_init(psmouse) == 0) + return PSMOUSE_ELANTECH; +/* + * Init failed, try basic relative protocols + */ + max_proto = PSMOUSE_IMEX; + } + +/* * Reset to defaults in case the device got confused by extended * protocol probes. Note that we follow up with full reset because * some mice put themselves to sleep when they see PSMOUSE_RESET_DIS.
| |