1. 07 8月, 2020 1 次提交
  2. 19 7月, 2019 1 次提交
  3. 16 7月, 2019 1 次提交
    • H
      Input: alps - don't handle ALPS cs19 trackpoint-only device · 7e4935cc
      Hui Wang 提交于
      On a latest Lenovo laptop, the trackpoint and 3 buttons below it
      don't work at all, when we move the trackpoint or press those 3
      buttons, the kernel will print out:
      "Rejected trackstick packet from non DualPoint device"
      
      This device is identified as an alps touchpad but the packet has
      trackpoint format, so the alps.c drops the packet and prints out
      the message above.
      
      According to XiaoXiao's explanation, this device is named cs19 and
      is trackpoint-only device, its firmware is only for trackpoint, it
      is independent of touchpad and is a device completely different from
      DualPoint ones.
      
      To drive this device with mininal changes to the existing driver, we
      just let the alps driver not handle this device, then the trackpoint.c
      will be the driver of this device if the trackpoint driver is enabled.
      (if not, this device will fallback to a bare PS/2 device)
      
      With the trackpoint.c, this trackpoint and 3 buttons all work well,
      they have all features that the trackpoint should have, like
      scrolling-screen, drag-and-drop and frame-selection.
      Signed-off-by: NXiaoXiao Liu <sliuuxiaonxiao@gmail.com>
      Signed-off-by: NHui Wang <hui.wang@canonical.com>
      Reviewed-by: NPali Rohár <pali.rohar@gmail.com>
      Cc: stable@vger.kernel.org
      Signed-off-by: NDmitry Torokhov <dmitry.torokhov@gmail.com>
      7e4935cc
  4. 19 6月, 2019 1 次提交
  5. 16 6月, 2018 1 次提交
  6. 24 4月, 2018 2 次提交
    • P
      Input: alps - fix reporting pressure of v3 trackstick · 9c71b2c5
      Pali Rohár 提交于
      According to documentation, all 7 lower bits represents trackpoint pressure.
      
      Fixes: 4621c966 ("Input: alps - report pressure of v3 and v7 trackstick")
      Signed-off-by: NPali Rohár <pali.rohar@gmail.com>
      Signed-off-by: NDmitry Torokhov <dmitry.torokhov@gmail.com>
      9c71b2c5
    • P
      Input: alps - demystify trackstick initialization for v3 and v6 protocols · d91abc21
      Pali Rohár 提交于
      Remove cite "Not sure what this does, but it is absolutely essential".
      
      Extract initialization of trackstick part when touchpad is in passthrough
      mode for v3 and v6 protocols into own function. Initialization for v3 is:
      setscale11, setscale11, setscale11, nibble 0x9, nibble 0x4. Initialization
      for v6 is: setscale11, setscale11, setscale11, setrate 0xC8, setrate 0x14.
      Nibbles 0x9 and 0x4 for v3 protocol correspond to setrate 0xC8 and 0x14,
      therefore these sequences are same.
      
      When touchpad is in passthrough mode, then OS communicates with trackstick
      and this sequence is some magic vendor PS/2 command to put trackstick into
      "extended" mode. After that sequence trackstick starts reporting packets in
      some vendor 4 bytes format (first byte is always 0xE8).
      
      Next step after configuring trackstick to be in "extended" mode, is to
      configure touchpad for v3 protocol to expect that trackstick reports data
      in "extended" mode. For v3 protocol this is done by setting bit 1 in
      register 0xC2C8 (offset 0x08 from base address 0xC2C0).
      
      When both touchpad and trackstick are not configured for "extended" mode
      then touchpad reports trackstick packets in different format, which is not
      supported by psmouse/alps driver (yet).
      
      In Cirque documentation GP-AN- 130823 INTERFACING TO GEN4 OVER I2C (PDF)
      available at http://www.cirque.com/gen4-dev-resources is Logical Address
      0xC2C8 named as PS2AuxControl and Bit Number 1 as ProcessAuxExtendedData
      with description: Auxiliary device data is assumed to be extended data when
      set.
      Signed-off-by: NPali Rohár <pali.rohar@gmail.com>
      Signed-off-by: NDmitry Torokhov <dmitry.torokhov@gmail.com>
      d91abc21
  7. 31 3月, 2018 1 次提交
  8. 27 3月, 2018 1 次提交
  9. 03 2月, 2018 1 次提交
  10. 12 1月, 2018 1 次提交
    • N
      Input: ALPS - fix multi-touch decoding on SS4 plus touchpads · 4d94e776
      Nir Perry 提交于
      The fix for handling two-finger scroll (i4a646580 - "Input: ALPS -
      fix two-finger scroll breakage in right side on ALPS touchpad")
      introduced a minor "typo" that broke decoding of multi-touch events are
      decoded on some ALPS touchpads.  For example, tapping with three-fingers
      can no longer be used to emulate middle-mouse-button (the kernel doesn't
      recognize this as the proper event, and doesn't report it correctly to
      userspace).  This affects touchpads that use SS4 "plus" protocol
      variant, like those found on Dell E7270 & E7470 laptops (tested on
      E7270).
      
      First, probably the code in alps_decode_ss4_v2() for case
      SS4_PACKET_ID_MULTI used inconsistent indices to "f->mt[]". You can see
      0 & 1 are used for the "if" part but 2 & 3 are used for the "else" part.
      
      Second, in the previous patch, new macros were introduced to decode X
      coordinates specific to the SS4 "plus" variant, but the macro to
      define the maximum X value wasn't changed accordingly. The macros to
      decode X values for "plus" variant are effectively shifted right by 1
      bit, but the max wasn't shifted too. This causes the driver to
      incorrectly handle "no data" cases, which also interfered with how
      multi-touch was handled.
      
      Fixes: 4a646580 ("Input: ALPS - fix two-finger scroll breakage...")
      Signed-off-by: NNir Perry <nirperry@gmail.com>
      Reviewed-by: NMasaki Ota <masaki.ota@jp.alps.com>
      Cc: stable@vger.kernel.org
      Signed-off-by: NDmitry Torokhov <dmitry.torokhov@gmail.com>
      4d94e776
  11. 24 10月, 2017 1 次提交
  12. 25 8月, 2017 1 次提交
    • M
      Input: ALPS - fix two-finger scroll breakage in right side on ALPS touchpad · 4a646580
      Masaki Ota 提交于
      Fixed the issue that two finger scroll does not work correctly
      on V8 protocol. The cause is that V8 protocol X-coordinate decode
      is wrong at SS4 PLUS device. I added SS4 PLUS X decode definition.
      
      Mote notes:
      the problem manifests itself by the commit e7348396 ("Input: ALPS
      - fix V8+ protocol handling (73 03 28)"), where a fix for the V8+
      protocol was applied.  Although the culprit must have been present
      beforehand, the two-finger scroll worked casually even with the
      wrongly reported values by some reason.  It got broken by the commit
      above just because it changed x_max value, and this made libinput
      correctly figuring the MT events.  Since the X coord is reported as
      falsely doubled, the events on the right-half side go outside the
      boundary, thus they are no longer handled.  This resulted as a broken
      two-finger scroll.
      
      One finger event is decoded differently, and it didn't suffer from
      this problem.  The problem was only about MT events. --tiwai
      
      Fixes: e7348396 ("Input: ALPS - fix V8+ protocol handling (73 03 28)")
      Signed-off-by: NMasaki Ota <masaki.ota@jp.alps.com>
      Tested-by: NTakashi Iwai <tiwai@suse.de>
      Tested-by: NPaul Donohue <linux-kernel@PaulSD.com>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      Signed-off-by: NDmitry Torokhov <dmitry.torokhov@gmail.com>
      4a646580
  13. 18 3月, 2017 2 次提交
  14. 08 3月, 2017 3 次提交
  15. 22 1月, 2017 1 次提交
  16. 29 11月, 2016 3 次提交
  17. 05 10月, 2016 4 次提交
  18. 07 1月, 2016 2 次提交
  19. 27 10月, 2015 1 次提交
  20. 04 8月, 2015 1 次提交
  21. 05 6月, 2015 1 次提交
  22. 21 5月, 2015 8 次提交
  23. 13 4月, 2015 1 次提交