aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/input
diff options
context:
space:
mode:
authorTai-hwa Liang <avatar@sentelic.com>2010-01-13 03:16:27 -0500
committerDmitry Torokhov <dmitry.torokhov@gmail.com>2010-01-13 03:28:10 -0500
commit4a18b3ab6ed537b055e3fcfca64ab870b4f9acf0 (patch)
tree75bddbe555648890066625733710c102b6febd63 /drivers/input
parent15e184afa83a45cf8bafdb9dc906b97a8fbc974f (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')
-rw-r--r--drivers/input/mouse/psmouse-base.c28
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.