31 May, 2019

1 commit

  • Based on 1 normalized pattern(s):

    this program is free software you can redistribute it and or modify
    it under the terms of the gnu general public license as published by
    the free software foundation either version 2 of the license or at
    your option any later version

    extracted by the scancode license scanner the SPDX license identifier

    GPL-2.0-or-later

    has been chosen to replace the boilerplate/reference in 3029 file(s).

    Signed-off-by: Thomas Gleixner
    Reviewed-by: Allison Randal
    Cc: linux-spdx@vger.kernel.org
    Link: https://lkml.kernel.org/r/20190527070032.746973796@linutronix.de
    Signed-off-by: Greg Kroah-Hartman

    Thomas Gleixner
     

25 Jun, 2018

1 commit


06 Mar, 2018

1 commit


03 Aug, 2017

1 commit


28 Dec, 2015

1 commit


06 Nov, 2015

1 commit

  • When configuring input device via input_configured callback we may
    encounter errors (for example input_mt_init_slots() may fail). Instead
    of continuing with half-initialized input device let's allow driver
    indicate failures.

    Signed-off-by: Jaikumar Ganesh
    Signed-off-by: Arve Hjønnevåg
    Reviewed-by: Benjamin Tissoires
    Reviewed-by: David Herrmann
    Acked-by: Nikolai Kondrashov
    Acked-by: Andrew Duggan
    Signed-off-by: Dmitry Torokhov
    Signed-off-by: Jiri Kosina

    Dmitry Torokhov
     

04 Sep, 2013

1 commit

  • A HID device could send a malicious feature report that would cause the
    ntrig HID driver to trigger a NULL dereference during initialization:

    [57383.031190] usb 3-1: New USB device found, idVendor=1b96, idProduct=0001
    ...
    [57383.315193] BUG: unable to handle kernel NULL pointer dereference at 0000000000000030
    [57383.315308] IP: [] ntrig_probe+0x25e/0x420 [hid_ntrig]

    CVE-2013-2896

    Signed-off-by: Kees Cook
    Cc: stable@kernel.org
    Signed-off-by: Rafi Rubin
    Signed-off-by: Jiri Kosina

    Kees Cook
     

23 Jul, 2013

1 commit


25 Feb, 2013

2 commits

  • This removes most of the dependencies between hid drivers and usbhid.

    The patch was constructed by replacing all occurences of
    usbhid_wait_io() by its hid_hw_wait() counterpart.
    Then, drivers not requiring USB_HID anymore have their USB_HID
    dependency cleaned in the Kconfig file.

    As of today, few drivers are still requiring an explicit USB layer
    dependency:
    * ntrig (a patch is on its way)
    * multitouch (one patch following and another on its way)
    * lenovo tpkbd
    * roccat
    * sony

    The last three are two deeply using direct calls to the usb subsystem
    to be able to be cleaned right now.

    Signed-off-by: Benjamin Tissoires
    Reviewed-by: Mika Westerberg
    Signed-off-by: Jiri Kosina

    Benjamin Tissoires
     
  • This allows the hid drivers to be independent from the transport layer.

    The patch was constructed by replacing all occurences of
    usbhid_submit_report() by its hid_hw_request() counterpart.
    Then, drivers not requiring USB_HID anymore have their USB_HID
    dependency cleaned in the Kconfig file.

    Finally, few drivers still depends on USB_HID. Many of them
    are requiring the io wait callback. They are found in the next patch.

    Signed-off-by: Benjamin Tissoires
    Reviewed-by: Mika Westerberg

    For the sensor-hub part:
    Tested-by: Mika Westerberg
    Signed-off-by: Jiri Kosina

    Benjamin Tissoires
     

21 Feb, 2013

1 commit


18 Feb, 2013

1 commit


03 Jan, 2013

1 commit

  • Use the new module_hid_driver macro in all HID drivers that have
    a simple register/unregister init/exit.

    This also converts the hid drivers that test for a failure of
    hid_register_driver() and report the failure. Using module_hid_driver
    in those drivers removes the failure message.

    Signed-off-by: H Hartley Sweeten
    Signed-off-by: Jiri Kosina

    H Hartley Sweeten
     

25 Sep, 2012

1 commit


14 Mar, 2011

2 commits


10 Mar, 2011

1 commit


08 Mar, 2011

1 commit


10 Dec, 2010

1 commit

  • Neaten current uses of dev_ by adding and using
    hid specific hid_ macros.

    Convert existing uses of dev_ uses to hid_.
    Convert hid-pidff printk uses to hid_.

    Remove err_hid and use hid_err instead.

    Add missing newlines to logging messages where necessary.
    Coalesce format strings.

    Add and use pr_fmt(fmt) KBUILD_MODNAME ": " fmt

    Other miscellaneous changes:

    Add const struct hid_device * argument to hid-core functions
    extract() and implement() so hid_ can be used by them.
    Fix bad indentation in hid-core hid_input_field function
    that calls extract() function above.

    Signed-off-by: Joe Perches
    Signed-off-by: Jiri Kosina

    Joe Perches
     

08 Sep, 2010

1 commit

  • This adds firmware version polling to the end of probe and reports the
    version both in the raw form and proccessed to match the formatting used
    by N-Trig.

    Signed-off-by: Rafi Rubin
    Acked-by: Dmitry Torokhov
    Acked-by: Jiri Slaby
    Signed-off-by: Jiri Kosina

    Rafi Rubin
     

30 Aug, 2010

1 commit


21 Jun, 2010

1 commit


11 May, 2010

3 commits

  • Signed-off-by: Rafi Rubin
    Signed-off-by: Jiri Kosina

    Rafi Rubin
     
  • This should make it a little more convenient to tweak the filtering
    parameters on the fly. Also unlike load-time parameters, this provides
    independent tuning for each device conntected.

    Signed-off-by: Rafi Rubin
    Signed-off-by: Jiri Kosina

    Rafi Rubin
     
  • The old rejection size thresholds were too high for the 12" devices.
    Larger surfaces like the Dell Studio17 exacerbated the problem since
    contact size is reported on the same logical scale, making a contact
    look smaller to the larger screen.

    Since we have observed erroneous ghost events from these devices we
    still need to filter the incoming stream.

    The prior size threshold filter is still in place, though with
    defaults set to leave it off.

    This patch adds the two new classes of filters, those that reject
    live frames before activation, and those that reject empty frames
    until deactivation. These filters are expressed in terms of a
    simple state machine for clarity (I hope).

    The activation filter has two components, slack and size, events
    are discarded until either is satisfied. Slack is defined as
    the number of seemingly good contacts to read before accepting the
    stream as valid (if the threshold is reached in the middle of a frame
    the remainder of that frame is still discarded).

    The deactivation filter discards empty frames until hitting a
    deactivate slack. This time measured in frames. N-Trig devices
    emit 5-8 (observed so far) empty frames at the end of multitouch
    activity. Ignoring the first few enables us to safely and gracefully
    handle erroneous empty frames, thus preventing a change in the tool
    state which would otherwise result in things like broken lines or
    dragged objects being dropped in bad places.

    Also, now that devices with different logical densities have
    been observed, the aforementioned sizes are scaled from physical
    to logical scales once those scales are identified. Hopefully this
    should mean that a given threshold value means the same thing across
    differing devices.

    Signed-off-by: Rafi Rubin
    Signed-off-by: Jiri Kosina

    Rafi Rubin
     

03 May, 2010

2 commits


13 Apr, 2010

1 commit

  • I squelched TipSwitch in a recent patch which resulted in the loss
    of Touch events for single touch firmwares. This patch just puts Touch back
    in for single touch, and bundles it with DoubleTap (like the multitouch code).
    The two events are used to convey the same message to different drivers.

    Signed-off-by: Rafi Rubin
    Signed-off-by: Jiri Kosina

    Rafi Rubin
     

07 Apr, 2010

2 commits


30 Mar, 2010

1 commit

  • …it slab.h inclusion from percpu.h

    percpu.h is included by sched.h and module.h and thus ends up being
    included when building most .c files. percpu.h includes slab.h which
    in turn includes gfp.h making everything defined by the two files
    universally available and complicating inclusion dependencies.

    percpu.h -> slab.h dependency is about to be removed. Prepare for
    this change by updating users of gfp and slab facilities include those
    headers directly instead of assuming availability. As this conversion
    needs to touch large number of source files, the following script is
    used as the basis of conversion.

    http://userweb.kernel.org/~tj/misc/slabh-sweep.py

    The script does the followings.

    * Scan files for gfp and slab usages and update includes such that
    only the necessary includes are there. ie. if only gfp is used,
    gfp.h, if slab is used, slab.h.

    * When the script inserts a new include, it looks at the include
    blocks and try to put the new include such that its order conforms
    to its surrounding. It's put in the include block which contains
    core kernel includes, in the same order that the rest are ordered -
    alphabetical, Christmas tree, rev-Xmas-tree or at the end if there
    doesn't seem to be any matching order.

    * If the script can't find a place to put a new include (mostly
    because the file doesn't have fitting include block), it prints out
    an error message indicating which .h file needs to be added to the
    file.

    The conversion was done in the following steps.

    1. The initial automatic conversion of all .c files updated slightly
    over 4000 files, deleting around 700 includes and adding ~480 gfp.h
    and ~3000 slab.h inclusions. The script emitted errors for ~400
    files.

    2. Each error was manually checked. Some didn't need the inclusion,
    some needed manual addition while adding it to implementation .h or
    embedding .c file was more appropriate for others. This step added
    inclusions to around 150 files.

    3. The script was run again and the output was compared to the edits
    from #2 to make sure no file was left behind.

    4. Several build tests were done and a couple of problems were fixed.
    e.g. lib/decompress_*.c used malloc/free() wrappers around slab
    APIs requiring slab.h to be added manually.

    5. The script was run on all .h files but without automatically
    editing them as sprinkling gfp.h and slab.h inclusions around .h
    files could easily lead to inclusion dependency hell. Most gfp.h
    inclusion directives were ignored as stuff from gfp.h was usually
    wildly available and often used in preprocessor macros. Each
    slab.h inclusion directive was examined and added manually as
    necessary.

    6. percpu.h was updated not to include slab.h.

    7. Build test were done on the following configurations and failures
    were fixed. CONFIG_GCOV_KERNEL was turned off for all tests (as my
    distributed build env didn't work with gcov compiles) and a few
    more options had to be turned off depending on archs to make things
    build (like ipr on powerpc/64 which failed due to missing writeq).

    * x86 and x86_64 UP and SMP allmodconfig and a custom test config.
    * powerpc and powerpc64 SMP allmodconfig
    * sparc and sparc64 SMP allmodconfig
    * ia64 SMP allmodconfig
    * s390 SMP allmodconfig
    * alpha SMP allmodconfig
    * um on x86_64 SMP allmodconfig

    8. percpu.h modifications were reverted so that it could be applied as
    a separate patch and serve as bisection point.

    Given the fact that I had only a couple of failures from tests on step
    6, I'm fairly confident about the coverage of this conversion patch.
    If there is a breakage, it's likely to be something in one of the arch
    headers which should be easily discoverable easily on most builds of
    the specific arch.

    Signed-off-by: Tejun Heo <tj@kernel.org>
    Guess-its-ok-by: Christoph Lameter <cl@linux-foundation.org>
    Cc: Ingo Molnar <mingo@redhat.com>
    Cc: Lee Schermerhorn <Lee.Schermerhorn@hp.com>

    Tejun Heo
     

10 Mar, 2010

1 commit

  • This reinstates the lost unpressing of BTN_TOUCH. To prevent undesireably
    touch toggles this also deals with tip switch events.

    Added a trap to prevent going out of bounds for hidinputs with empty reports.

    Clear bits of unused buttons which result in misidentification.

    Signed-off-by: Rafi Rubin
    Signed-off-by: Jiri Kosina

    Rafi Rubin
     

17 Feb, 2010

1 commit

  • Add DOUBLETAP to events emitted when in single touch only mode.

    Users with a single touch firmware report not seeing the DOUBLETAP events; this
    is a side effect of dropping old mapping for confidence. The confidence mapping
    may be fine for singletouch mode but causes problems in multitouch mode.

    Signed-off-by: Rafi Rubin
    Signed-off-by: Jiri Kosina

    Rafi Rubin
     

16 Feb, 2010

3 commits

  • This cleans up the identification of multitouch groups and enables
    the end of group sync.

    Taps are now explicitly handled to adjust for the changes in the
    event stream in multitouch mode. Added triple and quad tap for the
    benefit of tools that recognize different tap types but do not have
    full multi touch support.

    This cleans up the behavior particularly for the latest firmware, which
    didn't work particularly well with the older version of the driver.

    In this form, when multitouch is active, both mt and st events will come out of
    the "N-Trig MultiTouch" device. And when its not st events will come out of
    "N-Trig Touchscreen".

    Signed-off-by: Rafi Rubin
    Signed-off-by: Jiri Kosina

    Rafi Rubin
     
  • With the pen and touch split apart, we no longer need to inject
    additional tool switching events.

    Signed-off-by: Rafi Rubin
    Signed-off-by: Jiri Kosina

    Rafi Rubin
     
  • Added a quirk to enable distinct input devices. The digitizer utilizes
    three inputs to represent pen, multitouch and a normal touch screen.

    With the Pen partitioned, it behaves well and does not need special
    handling.

    Also, I set names to the input devices to clarify the functions of the
    various inputs.

    Signed-off-by: Rafi Rubin
    Signed-off-by: Jiri Kosina

    Rafi Rubin
     

23 Jul, 2009

2 commits


20 May, 2009

1 commit

  • Adds support for multitouch interaction on the N-Trig touchscreen, using the
    new ABS_MT_* input constants. Single touch support works as previously. This
    code was tested against two versions of the N- Trig firmware: one that supports
    dual pen/finger single touch, and one that supports finger multitouch but no
    pen at all. Copyright notices that looked wrong were removed, as it seems that
    there is only code written in 2009 by Rafin Rubin and Stephane Chatty in this
    file.

    Signed-off-by: Stephane Chatty
    Signed-off-by: Jiri Kosina

    Stephane Chatty
     

30 Mar, 2009

1 commit

  • This removal was scheduled and there is no problem with later
    distros to adapt for the new bus, thanks to aliases.

    module-init-tools map files are deprecated nowadays, so that
    the patch which introduced hid ones into the m-i-t won't be
    accepted and hence there is no reason for leaving compat stuff in.

    Signed-off-by: Jiri Slaby
    Cc: Jiri Kosina
    Signed-off-by: Jiri Kosina

    Jiri Slaby