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
     

04 Jan, 2009

1 commit