1. 01 Jun, 2016 1 commit
  2. 07 Apr, 2015 1 commit
    • Benjamin Tissoires's avatar
      Input - mt: Fix input_mt_get_slot_by_key · c6275892
      Benjamin Tissoires authored
      The case occurred recently with a touchscreen using twice a slot during a
      single EV_SYN event:
      
      E: 0.288415 0000 0000 0000      # ------------ SYN_REPORT (0) ----------
      E: 0.296207 0003 002f 0000      # EV_ABS / ABS_MT_SLOT          0
      E: 0.296207 0003 0039 -001      # EV_ABS / ABS_MT_TRACKING_ID   -1
      E: 0.296207 0003 002f 0001      # EV_ABS / ABS_MT_SLOT          1
      E: 0.296207 0003 0035 0908      # EV_ABS / ABS_MT_POSITION_X    908
      E: 0.296207 0003 0036 1062      # EV_ABS / ABS_MT_POSITION_Y    1062
      E: 0.296207 0003 002f 0000      # EV_ABS / ABS_MT_SLOT          0
      E: 0.296207 0003 0039 8787      # EV_ABS / ABS_MT_TRACKING_ID   8787
      E: 0.296207 0003 0035 1566      # EV_ABS / ABS_MT_POSITION_X    1566
      E: 0.296207 0003 0036 0861      # EV_ABS / ABS_MT_POSITION_Y    861
      E: 0.296207 0003 0000 0908      # EV_ABS / ABS_X                908
      E: 0.296207 0003 0001 1062      # EV_ABS / ABS_Y                1062
      E: 0.296207 0000 0000 0000      # ------------ SYN_REPORT (0) ----------
      
      This occurred because while having already slots 0 and 1 assigned, the
      touchscreen sent:
      
      0.293377 Tip Switch: 0 | Contact Id: 0 | X:  539 | Y: 1960 | Contact Count: 3
      0.294783 Tip Switch: 1 | Contact Id: 1 | X:  908 | Y: 1062 | Contact Count: 0
      0.296187 Tip Switch: 1 | Contact Id: 2 | X: 1566 | Y:  861 | Contact Count: 0
      
      Slot 0 is released correclty, but when we look for Contact ID 2, the slot
      0 is then picked up again because it is marked as inactive (trackingID < 0).
      
      This is wrong, and we should not reuse a slot in the same frame.
      The test should also check for input_mt_is_used().
      
      In addition, we need to initialize mt->frame to an other value than 0.
      With mt->frame being 0, all slots are tags as currently used, and so
      input_mt_get_slot_by_key() would return -1 for all requests.
      
      Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=88903Signed-off-by: default avatarBenjamin Tissoires <benjamin.tissoires@redhat.com>
      Acked-by: default avatarDmitry Torokhov <dmitry.torokhov@gmail.com>
      Signed-off-by: default avatarJiri Kosina <jkosina@suse.cz>
      c6275892
  3. 06 Apr, 2015 1 commit
  4. 01 Feb, 2015 1 commit
  5. 25 Aug, 2014 1 commit
  6. 08 Aug, 2014 1 commit
  7. 08 Apr, 2013 1 commit
  8. 16 Feb, 2013 1 commit
  9. 15 Nov, 2012 1 commit
  10. 10 Nov, 2012 1 commit
  11. 25 Oct, 2012 1 commit
  12. 19 Sep, 2012 7 commits
  13. 04 Jun, 2012 1 commit
  14. 31 Oct, 2011 1 commit
  15. 24 Aug, 2011 1 commit
  16. 16 Dec, 2010 3 commits