1. 26 Jun, 2018 1 commit
  2. 23 May, 2018 1 commit
  3. 03 Feb, 2018 4 commits
    • Dmitry Torokhov's avatar
      Input: psmouse - move sliced command implementation to libps2 · 08be954b
      Dmitry Torokhov authored
      
      
      In preparation to adding some debugging statements to PS/2 control
      sequences let's move psmouse_sliced_command() into libps2 and rename it
      to ps2_sliced_command().
      Signed-off-by: default avatarDmitry Torokhov <dmitry.torokhov@gmail.com>
      08be954b
    • Stephen Lyons's avatar
      Input: psmouse - add support for 2nd wheel on A4Tech Dual-Scroll wheel mice · 4c711ef6
      Stephen Lyons authored
      This Far-Eastern company's PS/2 mice use a deviant format for the data
      relating to movement of the scroll wheels for, at least, their dual wheel
      mice, such as their "Optical GreatEye Wheelmouse" model "WOP-35".  This
      product has five "buttons" (one of which is the click action on the first
      wheel) and TWO scroll wheels.  However for a byte comprising d0-d7 instead
      of setting one of d6-7 in the forth byte of the mouse data packet and a
      twos complement number of scroll steps in the remaining d5-d0 (or d3-d0
      should there be a fourth (BTN_SIDE - d4) or fifth (BTN_EXTRA - d5) button
      to report; they only report a single +/- event for each wheel and use a bit
      pattern that corresponds to +/-1 for the first wheel and +/- 2 for the
      second in the lower nibble of the fourth byte.
      
      The effect with existing code is that the second mouse wheel merely repeats
      the effect of the first but providing two steps per click rather than the
      one of the first wheel - so there is no HORIZONTAL scroll wheel movement
      detected from the device as far as the rest of the kernel sees it.
      
      This patch, if enabled by the "a4tech_workaround" module parameter modifies
      the handling just for mice of type PSMOUSE_IMEX so that the second scroll
      wheel movement gets correctly reported as REL_HWHEEL events.  Should this
      module parameter be activated for other mice of the same PSMOUSE_IMEX type
      then it is possible that at the point where the mouse reports more than a
      single movement step the user may start seeing horizontal rather than
      vertical wheel events, but should the movement steps get to be more than
      two at a time the hack will get immediately deactivated and the behaviour
      will revert to the past code.
      
      This was discussed around *fifteen* *years* *ago* on the LKML and the best
      summary is in post https://lkml.org/lkml/2002/7/18/111 "Re: PS2 Input Core
      Support" by Vojtech Pavlik. I was not able to locate any discussion later
      than this on this topic.
      
      Given that most users of the "psmouse" module will NOT want this additional
      feature enabled I have taken the apparently erroneous step of defaulting
      the module parameter that enables it to be "disabled" - this functionality
      may interfere with the operation of "normal" mice of this type (until a
      large enough scroll wheel movement is detected) so I cannot see how it
      would want to be enabled for "normal" users - i.e.  everyone without this
      brand of mouse.
      
      I am using this patch at the moment and I can confirm that it is working
      for me as both a module and compiled into the kernel for my mouse that is
      of the type (WOP-35) described - I note that it is still available from
      certain on-line retailers and that the manufacturers site does not list
      GNU/Linux as being supported on the product page - this patch however does
      enable full use of this product:
      http://www.a4tech.com/product.asp?cid=3D1&scid=3D8&id=3D22
      
      Signed-off-by: default avatarStephen Lyons <slysven@virginmedia.com>
      Signed-off-by: default avatarDmitry Torokhov <dmitry.torokhov@gmail.com>
      4c711ef6
    • Dmitry Torokhov's avatar
      Input: psmouse - clean up code · ba667650
      Dmitry Torokhov authored
      
      
      - switch to using BIT() macros
      - use u8 instead of unsigned char for byte data
      - use input_set_capability() instead of manipulating capabilities bits
        directly
      - use sign_extend32() when extracting wheel data.
      - do not abuse -1 as error code, propagate errors from various calls.
      Signed-off-by: default avatarDmitry Torokhov <dmitry.torokhov@gmail.com>
      ba667650
    • Dmitry Torokhov's avatar
      Input: psmouse - create helper for reporting standard buttons/motion · 1ef85805
      Dmitry Torokhov authored
      
      
      Many protocol driver re-implement code to parse buttons or motion data from
      the standard PS/2 protocol. Let's split the parsing into separate
      functions and reuse them in protocol drivers.
      Signed-off-by: default avatarDmitry Torokhov <dmitry.torokhov@gmail.com>
      1ef85805
  4. 16 Jan, 2018 1 commit
  5. 12 Jul, 2017 1 commit
  6. 25 Mar, 2017 5 commits
  7. 09 Feb, 2017 1 commit
  8. 17 Nov, 2016 1 commit
    • Dmitry Torokhov's avatar
      Input: psmouse - disable automatic probing of BYD touchpads · e9fb7cc6
      Dmitry Torokhov authored
      BYD automatic protocol detection is extremely unreliable and is often
      triggers false positives on regular mice, Sentelic touchpads, and other
      devices. BYD has several documents that have recommended detection
      sequence, but they conflict with each other and, as far as I can see, still
      would not produce unique enough output to reliably differentiate BYD from
      other PS/2 devices.
      
      OEMs sourcing BYD devices also do not do us any favors by not supplying any
      reasonable DMI data and instead leaving turds like "To Be Filled By O.E.M."
      in place of vendor data, or "System Serial Number" as serial number.
      
      On top of that BYD is not truly modern multitouch controller, but rather a
      single-touch transitional device that only reports absolute coordinates at
      the beginning of finger contact and then reverts to reporting
      displacements, and thus not very precise; the only benefit from using BYD
      mode vs the legacy PS/2 mode is possibility of edge scrolling.
      
      Given the above, and the fact that BYD devices are somewhat uncommon, let's
      disable automatic detection of BYD devices. Users who know they have BYD
      trackpads or want to experiment can attempt to activate BYD protocol via
      sysfs:
      
      	echo -n "byd" > /sys/bus/serio/devices/serio1/drvctl
      
      Fixes: https://bugzilla.kernel.org/show_bug.cgi?id=151691
      Fixes: https://bugzilla.kernel.org/show_bug.cgi?id=175421
      Fixes: https://bugzilla.kernel.org/show_bug.cgi?id=120781
      Fixes: https://bugzilla.kernel.org/show_bug.cgi?id=121281
      Fixes: 98ee3771
      
       ("Input: byd - add BYD PS/2 touchpad driver")
      Cc: stable@vger.kernel.org # 4.6+
      Reviewed-by: default avatarPali Rohár <pali.rohar@gmail.com>
      Signed-off-by: default avatarDmitry Torokhov <dmitry.torokhov@gmail.com>
      e9fb7cc6
  9. 25 Aug, 2016 1 commit
  10. 18 Mar, 2016 1 commit
  11. 28 Jan, 2016 1 commit
    • Chris Diamand's avatar
      Input: byd - add BYD PS/2 touchpad driver · 98ee3771
      Chris Diamand authored
      
      
      Driver for the BYD BTP10463 touchpad, found in PC Specialist `Lafite'
      laptops. This patch sends the magic command sequence which causes the
      touchpad to stream intellimouse-style packets.
      
      Gestures are detected inside the touchpad, and exposed as special
      values in the Z component of each packet - absolute coordinates are
      not supported, even in the Windows driver. At present, this supports
      two-finger vertical and horizontal scrolling, and provides the
      framework to expose the other gestures it can recognize.
      Signed-off-by: default avatarChris Diamand <chris@diamand.org>
      Signed-off-by: default avatarDmitry Torokhov <dmitry.torokhov@gmail.com>
      98ee3771
  12. 17 Dec, 2015 8 commits
  13. 26 Aug, 2015 1 commit
  14. 28 May, 2015 1 commit
    • Luis R. Rodriguez's avatar
      kernel/params: constify struct kernel_param_ops uses · 9c27847d
      Luis R. Rodriguez authored
      
      
      Most code already uses consts for the struct kernel_param_ops,
      sweep the kernel for the last offending stragglers. Other than
      include/linux/moduleparam.h and kernel/params.c all other changes
      were generated with the following Coccinelle SmPL patch. Merge
      conflicts between trees can be handled with Coccinelle.
      
      In the future git could get Coccinelle merge support to deal with
      patch --> fail --> grammar --> Coccinelle --> new patch conflicts
      automatically for us on patches where the grammar is available and
      the patch is of high confidence. Consider this a feature request.
      
      Test compiled on x86_64 against:
      
      	* allnoconfig
      	* allmodconfig
      	* allyesconfig
      
      @ const_found @
      identifier ops;
      @@
      
      const struct kernel_param_ops ops = {
      };
      
      @ const_not_found depends on !const_found @
      identifier ops;
      @@
      
      -struct kernel_param_ops ops = {
      +const struct kernel_param_ops ops = {
      };
      
      Generated-by: Coccinelle SmPL
      Cc: Rusty Russell <rusty@rustcorp.com.au>
      Cc: Junio C Hamano <gitster@pobox.com>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Cc: Kees Cook <keescook@chromium.org>
      Cc: Tejun Heo <tj@kernel.org>
      Cc: Ingo Molnar <mingo@kernel.org>
      Cc: cocci@systeme.lip6.fr
      Cc: linux-kernel@vger.kernel.org
      Signed-off-by: default avatarLuis R. Rodriguez <mcgrof@suse.com>
      Signed-off-by: default avatarRusty Russell <rusty@rustcorp.com.au>
      9c27847d
  15. 26 May, 2015 1 commit
  16. 14 Apr, 2015 1 commit
    • Thomas Hellstrom's avatar
      Input: add vmmouse driver · 8b8be51b
      Thomas Hellstrom authored
      
      
      VMMouse enables low-latency mouse-cursor-movements for VMWare and QEMU
      guests.  By removing the guest cursor and using the host as a guest cursor
      the cursor movement appears instant although in reality there is some lag.
      To be able to do this, the host's view of the cursor position must exactly
      match the guest's view and an absolute pointer device is needed. Enter the
      VMMouse. While the VMMouse driver has historically been an Xorg user-space
      driver, implementing it as a kernel imput driver enables rootless Xorg and
      new compositing display servers for VMware guests.
      Signed-off-by: default avatarThomas Hellstrom <thellstrom@vmware.com>
      Signed-off-by: default avatarDmitry Torokhov <dmitry.torokhov@gmail.com>
      8b8be51b
  17. 07 Mar, 2015 1 commit
  18. 06 Mar, 2015 1 commit
  19. 16 Feb, 2015 1 commit
  20. 29 Dec, 2014 1 commit
  21. 28 Oct, 2014 1 commit
  22. 15 Sep, 2014 1 commit
  23. 13 Sep, 2014 1 commit
  24. 08 Sep, 2014 1 commit
  25. 17 Jan, 2013 1 commit
  26. 24 Feb, 2012 1 commit