]> err.no Git - linux-2.6/blobdiff - drivers/input/mouse/psmouse-base.c
Input: do not corrupt system-wide procfs fops.
[linux-2.6] / drivers / input / mouse / psmouse-base.c
index abb575f2b0c74b9472f54f7aa88df02c2fe56873..0ecf1297b6a84ba16fa6718e01259f5c2bfee981 100644 (file)
@@ -424,8 +424,18 @@ static int psmouse_extensions(struct psmouse *psmouse,
 {
        int synaptics_hardware = 0;
 
-       if (lifebook_detect(psmouse, max_proto, set_properties) == 0)
-               return PSMOUSE_LIFEBOOK;
+/*
+ * We always check for lifebook because it does not disturb mouse
+ * (it only checks DMI information).
+ */
+       if (lifebook_detect(psmouse, set_properties) == 0 ||
+           max_proto == PSMOUSE_LIFEBOOK) {
+
+               if (max_proto > PSMOUSE_IMEX) {
+                       if (!set_properties || lifebook_init(psmouse) == 0)
+                               return PSMOUSE_LIFEBOOK;
+               }
+       }
 
 /*
  * Try Kensington ThinkingMouse (we try first, because synaptics probe
@@ -579,8 +589,6 @@ static void psmouse_set_rate(struct psmouse *psmouse, unsigned int rate)
 
 static void psmouse_initialize(struct psmouse *psmouse)
 {
-        if (psmouse->type==PSMOUSE_LIFEBOOK)
-                return;
 /*
  * We set the mouse into streaming mode.
  */