1. 10 10月, 2017 1 次提交
  2. 29 8月, 2017 1 次提交
    • A
      Input: synaptics - fix device info appearing different on reconnect · 3f9db52d
      Anthony Martin 提交于
      User-modified input settings no longer survive a suspend/resume cycle.
      Starting with 4.12, the touchpad is reinitialized on every reconnect
      because the hardware appears to be different. This can be reproduced
      by running the following as root:
      
          echo -n reconnect >/sys/devices/platform/i8042/serio1/drvctl
      
      A line like the following will show up in dmesg:
      
          [30378.295794] psmouse serio1: synaptics: hardware appears to be
                         different: id(149271-149271), model(114865-114865),
                         caps(d047b3-d047b1), ext(b40000-b40000).
      
      Note the single bit difference in caps: bit 1 (SYN_CAP_MULTIFINGER).
      
      This happens because we modify our stored copy of the device info
      capabilities when we enable advanced gesture mode but this change is
      not reflected in the actual hardware capabilities.
      
      It worked in the past because synaptics_query_hardware used to modify
      the stored synaptics_device_info struct instead of filling in a new
      one, as it does now.
      
      Fix it by no longer faking the SYN_CAP_MULTIFINGER bit when setting
      advanced gesture mode. This necessitated a small refactoring.
      
      Fixes: 6c53694f ("Input: synaptics - split device info into a separate structure")
      Signed-off-by: NAnthony Martin <ality@pbrane.org>
      Cc: stable@vger.kernel.org
      Signed-off-by: NDmitry Torokhov <dmitry.torokhov@gmail.com>
      3f9db52d
  3. 30 5月, 2017 4 次提交
  4. 04 4月, 2017 4 次提交
  5. 26 3月, 2017 2 次提交
  6. 24 3月, 2017 1 次提交
  7. 10 2月, 2017 1 次提交
  8. 18 3月, 2016 1 次提交
  9. 03 10月, 2015 1 次提交
  10. 27 8月, 2015 1 次提交
  11. 28 7月, 2015 1 次提交
  12. 11 7月, 2015 1 次提交
  13. 09 6月, 2015 1 次提交
  14. 07 4月, 2015 2 次提交
  15. 01 4月, 2015 1 次提交
  16. 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
  17. 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
  18. 09 3月, 2015 14 次提交
  19. 07 3月, 2015 1 次提交