1. 18 3月, 2016 1 次提交
  2. 03 10月, 2015 1 次提交
  3. 27 8月, 2015 1 次提交
  4. 28 7月, 2015 1 次提交
  5. 11 7月, 2015 1 次提交
  6. 09 6月, 2015 1 次提交
  7. 07 4月, 2015 2 次提交
  8. 01 4月, 2015 1 次提交
  9. 24 3月, 2015 1 次提交
    • R
      Input: synaptics - add quirk for Thinkpad E440 · 98dc0703
      Ramiro Morales 提交于
      Its ClickPad shares PNP ID "LEN2006" with the one in model E540 which is
      already handled by the driver (both are Haswell iterations of the Edge
      line, launched in 2014) but the dimensions it reports are different:
      
        $ sudo ./touchpad-edge-detector /dev/input/event3
        Touchpad SynPS/2 Synaptics TouchPad on /dev/input/event3
        Move one finger around the touchpad to detect the actual edges
        Kernel says: x [1472..5044], y [1408..3398]
        Touchpad sends: x [1024..5045], y [2457..4832] /^C
      
      Fortunately we can use the board ID, which is also different, to
      distinguish among them.
      
        $ dmesg | grep -i synaptics
        psmouse serio1: synaptics: Touchpad model: 1, fw: 8.1, id: 0x1e2b1,
            caps: 0xd001a3/0x940300/0x127c00, board id: 2691, fw id: 1494646
        psmouse serio1: synaptics: serio: Synaptics pass-through port at
            isa0060/serio1/input0
        input: SynPS/2 Synaptics TouchPad as
            /devices/platform/i8042/serio1/input/input4
      
      Board ID in E540 is 2722:
      
        psmouse serio1: synaptics: Touchpad model: 1, fw: 8.1, id: 0x1e2b1,
            caps: 0xd001a3/0x940300/0x127c00, board id: 2722, fw id: 1484859
      
      (from https://launchpadlibrarian.net/179702965/BootDmesg.txt)
      Signed-off-by: NRamiro Morales <cramm0@gmail.com>
      Reviewed-by: NBenjamin Tissoires <benjamin.tissoires@redhat.com>
      Signed-off-by: NDmitry Torokhov <dmitry.torokhov@gmail.com>
      98dc0703
  10. 17 3月, 2015 1 次提交
    • D
      Revert "Input: synaptics - use dmax in input_mt_assign_slots" · 09d042a2
      Dmitry Torokhov 提交于
      This reverts commit 6ab17a84 since it,
      according to Benjamin, causes issues with slot assignment:
      
      E: 15.669119 0000 0000 0000     # ------------ SYN_REPORT (0) ----------
      E: 15.954242 0003 002f 0000     # EV_ABS / ABS_MT_SLOT          0
      E: 15.954242 0003 0039 0505     # EV_ABS / ABS_MT_TRACKING_ID   505
      E: 15.954242 0003 0035 3851     # EV_ABS / ABS_MT_POSITION_X    3851
      E: 15.954242 0003 0036 4076     # EV_ABS / ABS_MT_POSITION_Y    4076
      E: 15.954242 0003 003a 0034     # EV_ABS / ABS_MT_PRESSURE      34
      E: 15.954242 0001 014a 0001     # EV_KEY / BTN_TOUCH            1
      E: 15.954242 0003 0000 3851     # EV_ABS / ABS_X                3851
      E: 15.954242 0003 0001 4076     # EV_ABS / ABS_Y                4076
      E: 15.954242 0003 0018 0034     # EV_ABS / ABS_PRESSURE         34
      E: 15.954242 0001 0145 0001     # EV_KEY / BTN_TOOL_FINGER      1
      E: 15.954242 0000 0000 0000     # ------------ SYN_REPORT (0) ----------
      ... (bunch of regular events)...
      E: 16.020614 0000 0000 0000     # ------------ SYN_REPORT (0) ----------
      E: 16.043601 0003 0035 3873     # EV_ABS / ABS_MT_POSITION_X    3873
      E: 16.043601 0003 0036 3903     # EV_ABS / ABS_MT_POSITION_Y    3903
      E: 16.043601 0003 003a 0050     # EV_ABS / ABS_MT_PRESSURE      50
      E: 16.043601 0003 0035 3032     # EV_ABS / ABS_MT_POSITION_X    3032
      E: 16.043601 0003 0036 3832     # EV_ABS / ABS_MT_POSITION_Y    3832
      E: 16.043601 0003 003a 0044     # EV_ABS / ABS_MT_PRESSURE      44
      E: 16.043601 0003 0000 3032     # EV_ABS / ABS_X                3032
      E: 16.043601 0003 0001 3832     # EV_ABS / ABS_Y                3832
      E: 16.043601 0003 0018 0044     # EV_ABS / ABS_PRESSURE         44
      E: 16.043601 0001 0145 0000     # EV_KEY / BTN_TOOL_FINGER      0
      E: 16.043601 0001 014d 0001     # EV_KEY / BTN_TOOL_DOUBLETAP   1
      E: 16.043601 0000 0000 0000     # ------------ SYN_REPORT (0) ----------
      E: 16.068837 0003 002f 0001     # EV_ABS / ABS_MT_SLOT          1
      E: 16.068837 0003 0039 0506     # EV_ABS / ABS_MT_TRACKING_ID   506
      E: 16.068837 0003 0035 3912     # EV_ABS / ABS_MT_POSITION_X    3912
      E: 16.068837 0003 0036 3743     # EV_ABS / ABS_MT_POSITION_Y    3743
      E: 16.068837 0003 003a 0056     # EV_ABS / ABS_MT_PRESSURE      56
      E: 16.068837 0003 002f 0000     # EV_ABS / ABS_MT_SLOT          0
      E: 16.068837 0003 0035 3026     # EV_ABS / ABS_MT_POSITION_X    3026
      E: 16.068837 0003 0036 3708     # EV_ABS / ABS_MT_POSITION_Y    3708
      E: 16.068837 0003 003a 0052     # EV_ABS / ABS_MT_PRESSURE      52
      E: 16.068837 0003 0000 3026     # EV_ABS / ABS_X                3026
      E: 16.068837 0003 0001 3708     # EV_ABS / ABS_Y                3708
      E: 16.068837 0003 0018 0052     # EV_ABS / ABS_PRESSURE         52
      E: 16.068837 0000 0000 0000     # ------------ SYN_REPORT (0) ----------
      
      Slot 0 and 1 gets inverted in the second report above, which
      introduces a cursor jump. The problem is that this cursor jump is
      often enough to leave the current widget, and X sends the
      scrolling events to whoever is now under the cursor.
      Reported-by: NBenjamin Tissoires <btissoir@redhat.com>
      Reported-by: NHans de Goede <hdegoede@redhat.com>
      09d042a2
  11. 09 3月, 2015 14 次提交
  12. 07 3月, 2015 1 次提交
  13. 16 2月, 2015 1 次提交
  14. 04 2月, 2015 1 次提交
    • B
      Input: synaptics - use dmax in input_mt_assign_slots · 6ab17a84
      Benjamin Tissoires 提交于
      When tapping a clickpad with two fingers, there is a chance that the sensor
      sees first only one finger, and at the next scan only the second one.  In
      this case, the sensors says that there has been only one finger on the
      clickpad, which moved really fast between two scans.
      
      We can try to counter this by adding a limit to what an actual finger can
      move between 2 scans.  A distance of 1cm between two scans for one finger
      seems reasonable.  However, this is not really accurate because the
      resolution in X and in Y differs. But heh, that's how the in-kernel
      tracking works right now, and its job is quite good, even with this
      approximation.
      
      This parameter solves most of the jumps observed, not all of them however.
      But this is a hardware defect, and we might not be able to get something
      better without much heavier computations.
      
      Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=76722Signed-off-by: NBenjamin Tissoires <benjamin.tissoires@redhat.com>
      Signed-off-by: NDmitry Torokhov <dmitry.torokhov@gmail.com>
      6ab17a84
  15. 02 2月, 2015 1 次提交
  16. 20 1月, 2015 1 次提交
  17. 30 12月, 2014 2 次提交
    • B
      Input: synaptics - remove duplicated code · aa104b1a
      Benjamin Tissoires 提交于
      synaptics_profile_sensor_process() and synaptics_report_mt_data() now
      share the exact same code. Remove one implementation and rely on the
      other where it was used.
      Signed-off-by: NBenjamin Tissoires <benjamin.tissoires@redhat.com>
      Signed-off-by: NDmitry Torokhov <dmitry.torokhov@gmail.com>
      aa104b1a
    • B
      Input: synaptics - use in-kernel tracking for reporting mt data · e9e8520f
      Benjamin Tissoires 提交于
      The current code tries to consider all states and transitions to properly
      detect which finger is attached to which slot. The code is quite huge
      and difficult to read.
      
      If the sensor manages to group the touch points but is not reliable in
      giving tracking ids, we can simply use the kernel tracking method. Note
      that it is already used by Cr-48 Chromebooks.
      
      Incidentaly, this fixes a bug reported by Peter Hutterer:
      """
      on the Lenovo T440, run:
      evemu-record /dev/input/event4 | grep BTN_
      
      then put one, two, three, two fingers down
      when you go from 3 to 2 fingers the driver sends a spurious BTN_TOUCH 0
      event:
      
      E: 0.000000 0001 014a 0001      # EV_KEY / BTN_TOUCH            1
      E: 0.000000 0001 0145 0001      # EV_KEY / BTN_TOOL_FINGER      1
      E: 0.770008 0001 0145 0000      # EV_KEY / BTN_TOOL_FINGER      0
      E: 0.770008 0001 014d 0001      # EV_KEY / BTN_TOOL_DOUBLETAP   1
      E: 1.924716 0001 014d 0000      # EV_KEY / BTN_TOOL_DOUBLETAP   0
      E: 1.924716 0001 014e 0001      # EV_KEY / BTN_TOOL_TRIPLETAP   1
      
      .. changing from 3 to 2 fingers now
      
      E: 3.152641 0001 014a 0000      # EV_KEY / BTN_TOUCH            0
      E: 3.152641 0001 014d 0001      # EV_KEY / BTN_TOOL_DOUBLETAP   1
      E: 3.152641 0001 014e 0000      # EV_KEY / BTN_TOOL_TRIPLETAP   0
      E: 3.176948 0001 014a 0001      # EV_KEY / BTN_TOUCH            1
      
      quick look in the kernel shows it's caused by hw.z going to 0 for a packet,
      so probably a firmware bug. either way, it makes it hard to track BTN_TOUCH
      as signal that at least one finger is down.
      """
      
      The in-kernel tracking is enough to remove this spurious BTN_TOUCH 0.
      Signed-off-by: NBenjamin Tissoires <benjamin.tissoires@redhat.com>
      Signed-off-by: NDmitry Torokhov <dmitry.torokhov@gmail.com>
      e9e8520f
  18. 17 11月, 2014 1 次提交
  19. 07 11月, 2014 1 次提交
  20. 12 10月, 2014 1 次提交
  21. 13 9月, 2014 1 次提交
  22. 10 9月, 2014 1 次提交
    • D
      Input: synaptics - add support for ForcePads · 5715fc76
      Dmitry Torokhov 提交于
      ForcePads are found on HP EliteBook 1040 laptops. They lack any kind of
      physical buttons, instead they generate primary button click when user
      presses somewhat hard on the surface of the touchpad. Unfortunately they
      also report primary button click whenever there are 2 or more contacts
      on the pad, messing up all multi-finger gestures (2-finger scrolling,
      multi-finger tapping, etc). To cope with this behavior we introduce a
      delay (currently 50 msecs) in reporting primary press in case more
      contacts appear.
      
      Cc: stable@vger.kernel.org
      Reviewed-by: NHans de Goede <hdegoede@redhat.com>
      Signed-off-by: NDmitry Torokhov <dmitry.torokhov@gmail.com>
      5715fc76
  23. 09 8月, 2014 1 次提交
    • H
      Input: synaptics - use firmware data for Cr-48 · e08d9afa
      Henrik Rydberg 提交于
      The profile sensor clickpad in a Cr-48 Chromebook does a reasonable job
      of tracking individual fingers. This tracking isn't perfect, but,
      experiments show that it works better than just passing "semi-mt" data
      to userspace, and making userspace try to deduce where the fingers are
      given a bounding box.
      
      This patch tries to report correct two-finger positions instead of the
      {(min_x, min_y), (max_x, max_y)} for profile sensor clickpads on Cr-48
      chromebooks. Note that this device's firmware always reports the higher
      (smaller y) finger in the "sgm" packet, and the lower (larger y) finger
      in the "agm" packet. Thus, when a new finger arrives on the pad, the
      kernel driver uses input core's contact tracking facilities to match
      contacts with slots.
      
      Inspired by patch by Daniel Kurtz <djkurtz@chromium.org> and Chung-yih
      Wang <cywang@chromium.org>
      Signed-off-by: NHenrik Rydberg <rydberg@euromail.se>
      Reviewed-by: NBenson Leung <bleung@chromium.org>
      Signed-off-by: NDmitry Torokhov <dmitry.torokhov@gmail.com>
      e08d9afa
  24. 08 8月, 2014 1 次提交
  25. 15 7月, 2014 1 次提交