]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - drivers/input/mouse/sentelic.c
Merge branches 'from-henrik', 'hidraw', 'logitech', 'picolcd', 'ps3', 'uclogic',...
[karo-tx-linux.git] / drivers / input / mouse / sentelic.c
index 3f5649f190824408a25c495bdfd4da88b8febe9a..e582922bacf7d5715cf0f70216c3dd8a4d299eeb 100644 (file)
@@ -721,6 +721,17 @@ static psmouse_ret_t fsp_process_byte(struct psmouse *psmouse)
 
        switch (psmouse->packet[0] >> FSP_PKT_TYPE_SHIFT) {
        case FSP_PKT_TYPE_ABS:
+
+               if ((packet[0] == 0x48 || packet[0] == 0x49) &&
+                   packet[1] == 0 && packet[2] == 0) {
+                       /*
+                        * Ignore coordinate noise when finger leaving the
+                        * surface, otherwise cursor may jump to upper-left
+                        * corner.
+                        */
+                       packet[3] &= 0xf0;
+               }
+
                abs_x = GET_ABS_X(packet);
                abs_y = GET_ABS_Y(packet);
 
@@ -960,7 +971,7 @@ static int fsp_set_input_params(struct psmouse *psmouse)
 
                input_set_abs_params(dev, ABS_X, 0, abs_x, 0, 0);
                input_set_abs_params(dev, ABS_Y, 0, abs_y, 0, 0);
-               input_mt_init_slots(dev, 2);
+               input_mt_init_slots(dev, 2, 0);
                input_set_abs_params(dev, ABS_MT_POSITION_X, 0, abs_x, 0, 0);
                input_set_abs_params(dev, ABS_MT_POSITION_Y, 0, abs_y, 0, 0);
        }