1. 12 Apr, 2015 2 commits
    • Hans de Goede's avatar
      Input: alps - non interleaved V2 dualpoint has separate stick button bits · 92bac83d
      Hans de Goede authored
      Non interleaved V2 dualpoint touchpad / stick combos have separate stick
      button bits in the touchpad packets, if we do not check these then the
      trackpoint buttons will not work when using the touchpad, and when pressed
      when the user starts using the touchpad will report a release event even
      though the button is still pressed.
      
      This commit fixes this by checking the separate bits, note that we simply
      combine the buttons, since the hardware does the same when using the touchpad
      buttons with the trackpoint, so we do not have enough information to properly
      separate them.
      Reported-by: default avatarHans de Bruin <jmdebruin@xmsnet.nl>
      Signed-off-by: default avatarHans de Goede <hdegoede@redhat.com>
      Signed-off-by: default avatarDmitry Torokhov <dmitry.torokhov@gmail.com>
      92bac83d
    • Hans de Goede's avatar
      Input: alps - fix touchpad buttons getting stuck when used with trackpoint · 6bcca19f
      Hans de Goede authored
      When the left touchpad button gets pressed, and then the trackpoint is
      moved, and then the button is released, the following happens:
      
      1) touchpad packet is received, touchpad evdev node reports BTN_LEFT 1
      
      2) pointing stick packet is received, the hw will report a BTN_LEFT 1 in
         this packet because when the trackstick is active it communicates the
         combined touchpad + pointing stick buttons in the trackstick packet,
         since alps_report_bare_ps2_packet passes NULL (*) for the dev2 parameter
         to alps_report_buttons the combining is not detected and the
         pointing stick evdev node will also report BTN_LEFT 1
      
      3) on release of the button a pointing stick packet with BTN_LEFT 0 is
         received and the pointing stick evdev node will report BTN_LEFT 0
      
      Note how because of the passing as NULL for dev2 the touchpad evdev node
      will never send BTN_LEFT 0 in this scenario leading to a stuck mouse button.
      
      This is a regression in 4.0 introduced by commit 04aae283
      ("Input: ALPS - do not mix trackstick and external PS/2 mouse data")
      
      This commit fixes this by passing in the touchpad evdev as dev2 parameter
      when calling alps_report_buttons for the pointingstick on alps v2 devices,
      so that alps_report_buttons correctly detect that we're already reporting
      the button as pressed via the touchpad evdev node, and will also send the
      release event there.
      
      Cc: stable@vger.kernel.org # 4.0
      Reported-by: default avatarHans de Bruin <jmdebruin@xmsnet.nl>
      Signed-off-by: default avatarHans de Goede <hdegoede@redhat.com>
      Acked-by: default avatarPali Rohár <pali.rohar@gmail.com>
      Signed-off-by: default avatarDmitry Torokhov <dmitry.torokhov@gmail.com>
      6bcca19f
  2. 06 Apr, 2015 1 commit
  3. 05 Apr, 2015 3 commits
  4. 31 Mar, 2015 2 commits
  5. 23 Mar, 2015 2 commits
  6. 20 Mar, 2015 1 commit
    • Charlie Mooney's avatar
      Input: add MT_TOOL_PALM · a736775d
      Charlie Mooney authored
      Currently there are only two "tools" that can be specified by a multi-touch
      driver: MT_TOOL_FINGER and MT_TOOL_PEN. In working with Elan (The touch
      vendor) and discussing their next-gen devices it seems that it will be
      useful to have more tools so that their devices can give the upper layers
      of the stack hints as to what is touching the sensor.
      
      In particular they have new experimental firmware that can better
      differentiate between palms vs fingertips and would like to plumb a patch
      so that we can use their hints in higher-level gesture soft- ware.  The
      firmware on the device can reasonably do a better job of palm detection
      because it has access to all of the raw sensor readings as opposed to just
      the width/pressure/etc that are exposed by the driver.  As such, the
      firmware can characterize what a palm looks like in much finer-grained
      detail and this change would allow such a device to share its findings with
      the kernel.
      Signed-off-by: default avatarCharlie Mooney <charliemooney@chromium.org>
      Acked-by: default avatarPeter Hutterer <peter.hutterer@who-t.net>
      Signed-off-by: default avatarDmitry Torokhov <dmitry.torokhov@gmail.com>
      a736775d
  7. 16 Mar, 2015 2 commits
    • Dmitry Torokhov's avatar
      Revert "Input: synaptics - use dmax in input_mt_assign_slots" · 09d042a2
      Dmitry Torokhov authored
      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: default avatarBenjamin Tissoires <btissoir@redhat.com>
      Reported-by: default avatarHans de Goede <hdegoede@redhat.com>
      09d042a2
    • Dmitry Torokhov's avatar
      Merge branch 'synaptics' into for-linus · 6067fe5e
      Dmitry Torokhov authored
      Bring in changes needed to properly handle Lenovo 2015 lineup.
      6067fe5e
  8. 09 Mar, 2015 14 commits
  9. 07 Mar, 2015 4 commits
  10. 04 Mar, 2015 2 commits
  11. 02 Mar, 2015 3 commits
    • Arnd Bergmann's avatar
      Input: sun4i-ts - add thermal driver dependency · 4a6155a4
      Arnd Bergmann authored
      The sun4i-ts driver has had a dependency on the thermal code
      with the addition of the thermal zone sensor support, but this
      is not currently enforced in Kconfig, so with TOUCHSCREEN_SUN4I=y,
      THERMAL=m and THERMAL_OF=y we get
      
      drivers/built-in.o: In function `sun4i_ts_remove':
      :(.text+0x2376f4): undefined reference to `thermal_zone_of_sensor_unregister'
      drivers/built-in.o: In function `sun4i_ts_probe':
      :(.text+0x237a94): undefined reference to `thermal_zone_of_sensor_register'
      :(.text+0x237c00): undefined reference to `thermal_zone_of_sensor_unregister'
      
      We need the dependency on THERMAL in order to ensure that this
      driver becomes a loadable module if the thermal support itself
      is modular, while the dependency on THERMAL_OF is a runtime
      dependency and the driver will still build if it is missing.
      It is entirely possible to build sun4i-ts without THERMAL_OF
      just to use the hwmon sensors and/or touchscreen.
      
      Fixes: 22369710 ("Input: sun4i-ts - add thermal zone sensor support")
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      [wens@csie.org: Fix description and Kconfig dependencies]
      Signed-off-by: default avatarChen-Yu Tsai <wens@csie.org>
      Signed-off-by: default avatarDmitry Torokhov <dmitry.torokhov@gmail.com>
      4a6155a4
    • Geert Uytterhoeven's avatar
      Input: cyapa - remove superfluous type check in cyapa_gen5_read_idac_data() · 2523caab
      Geert Uytterhoeven authored
      drivers/input/mouse/cyapa_gen5.c: In function ‘cyapa_gen5_read_idac_data’:
      drivers/input/mouse/cyapa_gen5.c:1876: warning: ‘max_element_cnt’ may be used uninitialized in this function
      drivers/input/mouse/cyapa_gen5.c:1873: warning: ‘offset’ may be used uninitialized in this function
      
      If *data_size is non-zero, and idac_data_type contains an unknown type,
      max_element_cnt and offset will be uninitialized, and the loop will
      process non-existing data.
      
      However, this cannot happen (for now), as there's a test for unknown
      types at the top of cyapa_gen5_read_idac_data().
      
      As no "if ... else if ..." is used in other places, remove the
      superfluous "if" to silence the compiler warning.
      Signed-off-by: default avatarGeert Uytterhoeven <geert@linux-m68k.org>
      Acked-by: default avatarDudley Du <dudl@cypress.com>
      Signed-off-by: default avatarDmitry Torokhov <dmitry.torokhov@gmail.com>
      2523caab
    • Dudley Du's avatar
      Input: cyapa - fix unaligned functions redefinition error · 17a28055
      Dudley Du authored
      Use asm/unaligned.h instead of linux/unaligned/access_ok.h header file to
      fix compiling issues such as following while doing cross platform
      compiling:
      
      "include/linux/unaligned/access_ok.h:7:19: error: redefinition of
       'get_unaligned_le16'
      ...
      include/linux/unaligned/le_struct.h:6:19: note: previous definition of
       'get_unaligned_le16' was here".
      Reported-by: default avatarkbuild test robot <kbuild-all@01.org>
      Signed-off-by: default avatarDudley Du <dudl@cypress.com>
      Signed-off-by: default avatarDmitry Torokhov <dmitry.torokhov@gmail.com>
      17a28055
  12. 26 Feb, 2015 1 commit
  13. 20 Feb, 2015 1 commit
  14. 16 Feb, 2015 2 commits