diff options
author | Tai-hwa Liang <avatar@sentelic.com> | 2010-01-13 03:16:27 -0500 |
---|---|---|
committer | Dmitry Torokhov <dmitry.torokhov@gmail.com> | 2010-01-13 03:28:10 -0500 |
commit | 4a18b3ab6ed537b055e3fcfca64ab870b4f9acf0 (patch) | |
tree | 75bddbe555648890066625733710c102b6febd63 /drivers/input/mouse/psmouse-base.c | |
parent | 15e184afa83a45cf8bafdb9dc906b97a8fbc974f (diff) |
Input: pmouse - move Sentelic probe down the list
Sentelic probes confuse IBM trackpoints so they stop responding to
TP_READ_ID command. See:
http://bugzilla.kernel.org/show_bug.cgi?id=14970
Let's move FSP detection lower so it is probed after trackpoint and
others, just before we strat probing for Intellimouse Explorer.
Signed-off-by: Tai-hwa Liang <avatar@sentelic.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
Diffstat (limited to 'drivers/input/mouse/psmouse-base.c')
-rw-r--r-- | drivers/input/mouse/psmouse-base.c | 28 |
1 files changed, 15 insertions, 13 deletions
diff --git a/drivers/input/mouse/psmouse-base.c b/drivers/input/mouse/psmouse-base.c index cabf4e1caacc..9774bdfaa482 100644 --- a/drivers/input/mouse/psmouse-base.c +++ b/drivers/input/mouse/psmouse-base.c | |||
@@ -690,19 +690,6 @@ static int psmouse_extensions(struct psmouse *psmouse, | |||
690 | max_proto = PSMOUSE_IMEX; | 690 | max_proto = PSMOUSE_IMEX; |
691 | } | 691 | } |
692 | 692 | ||
693 | /* | ||
694 | * Try Finger Sensing Pad | ||
695 | */ | ||
696 | if (max_proto > PSMOUSE_IMEX) { | ||
697 | if (fsp_detect(psmouse, set_properties) == 0) { | ||
698 | if (!set_properties || fsp_init(psmouse) == 0) | ||
699 | return PSMOUSE_FSP; | ||
700 | /* | ||
701 | * Init failed, try basic relative protocols | ||
702 | */ | ||
703 | max_proto = PSMOUSE_IMEX; | ||
704 | } | ||
705 | } | ||
706 | 693 | ||
707 | if (max_proto > PSMOUSE_IMEX) { | 694 | if (max_proto > PSMOUSE_IMEX) { |
708 | if (genius_detect(psmouse, set_properties) == 0) | 695 | if (genius_detect(psmouse, set_properties) == 0) |
@@ -719,6 +706,21 @@ static int psmouse_extensions(struct psmouse *psmouse, | |||
719 | } | 706 | } |
720 | 707 | ||
721 | /* | 708 | /* |
709 | * Try Finger Sensing Pad. We do it here because its probe upsets | ||
710 | * Trackpoint devices (causing TP_READ_ID command to time out). | ||
711 | */ | ||
712 | if (max_proto > PSMOUSE_IMEX) { | ||
713 | if (fsp_detect(psmouse, set_properties) == 0) { | ||
714 | if (!set_properties || fsp_init(psmouse) == 0) | ||
715 | return PSMOUSE_FSP; | ||
716 | /* | ||
717 | * Init failed, try basic relative protocols | ||
718 | */ | ||
719 | max_proto = PSMOUSE_IMEX; | ||
720 | } | ||
721 | } | ||
722 | |||
723 | /* | ||
722 | * Reset to defaults in case the device got confused by extended | 724 | * Reset to defaults in case the device got confused by extended |
723 | * protocol probes. Note that we follow up with full reset because | 725 | * protocol probes. Note that we follow up with full reset because |
724 | * some mice put themselves to sleep when they see PSMOUSE_RESET_DIS. | 726 | * some mice put themselves to sleep when they see PSMOUSE_RESET_DIS. |