aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
Diffstat (limited to 'drivers')
-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.