13 Jul, 2013

1 commit


07 Jul, 2013

1 commit

  • * Fix version recognition in elantech_set_properties

    The new hardware reports itself as v7 but the packets'
    structure is unaltered.

    * Fix packet type recognition in elantech_packet_check_v4

    The bitmask used for v6 is too wide, only the last three bits of
    the third byte in a packet (packet[3] & 0x03) are actually used to
    distinguish between packet types.
    Starting from v7, additional information (to be interpreted) is
    stored in the remaining bits (packets[3] & 0x1c).
    In addition, the value stored in (packet[0] & 0x0c) is no longer
    a constant but contains additional information yet to be deciphered.
    This change should be backwards compatible with v6 hardware.

    Additional-author: Giovanni Frigione
    Signed-off-by: Matteo Delfino
    Signed-off-by: Dmitry Torokhov

    Matteo Delfino
     

03 Jul, 2013

1 commit

  • The June 2013 Macbook Air (13'') has a new trackpad protocol; four new
    values are inserted in the header, and the mode switch is no longer
    needed. This patch adds support for the new devices.

    Cc: stable@vger.kernel.org
    Reported-and-tested-by: Brad Ford
    Signed-off-by: Henrik Rydberg
    Signed-off-by: Dmitry Torokhov

    Dmitry Torokhov
     

28 Jun, 2013

1 commit


05 Jun, 2013

2 commits

  • Pull input fixes from Dmitry Torokhov:
    "Just a 2 small driver fixups here"

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input:
    Input: wacom - fix a typo for Cintiq 22HDT
    Input: synaptics - fix sync lost after resume on some laptops

    Linus Torvalds
     
  • In summary, the symptom is intermittent key events lost after resume
    on some machines with synaptics touchpad (seems this is synaptics _only_),
    and key events loss is due to serio port reconnect after psmouse sync lost.
    Removing psmouse and inserting it back during the suspend/resume process
    is able to work around the issue, so the difference between psmouse_connect()
    and psmouse_reconnect() is the key to the root cause of this problem.

    After comparing the two different paths, synaptics driver has its own
    implementation of synaptics_reconnect(), and the missing psmouse_probe()
    seems significant, the patch below added psmouse_probe() to the reconnect
    process, and has been verified many times that the issue could not be reliably
    reproduced.

    There are two PS/2 commands in psmouse_probe():

    1. PSMOUSE_CMD_GETID
    2. PSMOUSE_CMD_RESET_DIS

    Only the PSMOUSE_CMD_GETID seems to be significant. The
    PSMOUSE_CMD_RESET_DIS is irrelevant to this issue after trying
    several times. So we have only implemented this patch to issue
    the PSMOUSE_CMD_GETID so far.

    Tested-by: Daniel Manrique
    Signed-off-by: James M Leddy
    Signed-off-by: Dmitry Torokhov

    Eric Miao
     

24 May, 2013

1 commit

  • free_irq() expects the same pointer that was passed to request_irq(),
    otherwise the IRQ is not freed.

    The issue was found using the following coccinelle script:

    @r1@
    type T;
    T devid;
    @@
    request_irq(..., devid)

    @r2@
    type r1.T;
    T devid;
    position p;
    @@
    free_irq@p(..., devid)

    @@
    position p != r2.p;
    @@
    *free_irq@p(...)

    Signed-off-by: Lars-Peter Clausen
    Signed-off-by: Dmitry Torokhov

    Lars-Peter Clausen
     

10 May, 2013

1 commit

  • Pull removal of GENERIC_GPIO from Grant Likely:
    "GENERIC_GPIO now synonymous with GPIOLIB. There are no longer any
    valid cases for enableing GENERIC_GPIO without GPIOLIB, even though it
    is possible to do so which has been causing confusion and breakage.
    This branch does the work to completely eliminate GENERIC_GPIO."

    * tag 'gpio-for-linus' of git://git.secretlab.ca/git/linux:
    gpio: update gpio Chinese documentation
    Remove GENERIC_GPIO config option
    Convert selectors of GENERIC_GPIO to GPIOLIB
    blackfin: force use of gpiolib
    m68k: coldfire: use gpiolib
    mips: pnx833x: remove requirement for GENERIC_GPIO
    openrisc: default GENERIC_GPIO to false
    avr32: default GENERIC_GPIO to false
    xtensa: remove explicit selection of GENERIC_GPIO
    sh: replace CONFIG_GENERIC_GPIO by CONFIG_GPIOLIB
    powerpc: remove redundant GENERIC_GPIO selection
    unicore32: default GENERIC_GPIO to false
    unicore32: remove unneeded select GENERIC_GPIO
    arm: plat-orion: use GPIO driver on CONFIG_GPIOLIB
    arm: remove redundant GENERIC_GPIO selection
    mips: alchemy: require gpiolib
    mips: txx9: change GENERIC_GPIO to GPIOLIB
    mips: loongson: use GPIO driver on CONFIG_GPIOLIB
    mips: remove redundant GENERIC_GPIO select

    Linus Torvalds
     

06 May, 2013

2 commits


20 Apr, 2013

1 commit

  • The trackpoint driver sets various parameter default values, all of
    which happen to be power-on defaults (Source: IBM TrackPoint Engineering
    Specification, Version 4.0. Also confirmed by empirical data).

    By sending the power-on reset command to reset all parameters to
    power-on state, we can skip the lengthy process of programming all
    parameters. In testing, ~2.5 secs of time writing parameters was reduced
    to .35 seconds waiting for power-on reset to complete.

    Signed-off-by: Shawn Nematbakhsh
    Signed-off-by: Dmitry Torokhov

    Shawn Nematbakhsh
     

16 Apr, 2013

2 commits


18 Mar, 2013

1 commit


22 Feb, 2013

3 commits

  • These touchpads use a different protocol; they have been seen on Dell
    N5110, Dell 17R SE, and others.

    The official ALPS driver identifies them by looking for an exact match
    on the E7 report: 73 03 50. Dolphin V1 returns an EC report of
    73 01 xx (02 and 0d have been seen); Dolphin V2 returns an EC report of
    73 02 xx (02 has been seen).

    Dolphin V2 probably needs a different initialization sequence and/or
    report parser, so it is left for a future commit.

    Signed-off-by: Dave Turvene
    Signed-off-by: Kevin Cernekee
    Signed-off-by: Dmitry Torokhov

    Dave Turvene
     
  • Now that alps_identify() explicitly issues an EC report using
    alps_rpt_cmd(), we no longer need to look at the magic numbers returned
    by alps_enter_command_mode().

    Signed-off-by: Kevin Cernekee
    Signed-off-by: Dmitry Torokhov

    Kevin Cernekee
     
  • Avoid firmware glitch in Cypress PS/2 Trackpad firmware version 11
    (as observed in Dell XPS12) which prevents driver from recognizing
    the trackpad.

    BugLink: http://launchpad.net/bugs/1103594

    Signed-off-by: Kamal Mostafa
    Cc: Dudley Du
    Signed-off-by: Dmitry Torokhov

    Kamal Mostafa
     

20 Feb, 2013

1 commit


16 Feb, 2013

1 commit

  • To properly setup event parameters for emulated events, pass
    the appropriate flag to the slot initialization function. Also,
    all MT-related events should be setup before initialization.

    Incidentally, this solves the issue of doubly filtered pointer
    events.

    Reported-by: Daniel Kurtz
    Signed-off-by: Henrik Rydberg
    Signed-off-by: Dmitry Torokhov

    Henrik Rydberg
     

15 Feb, 2013

13 commits


14 Feb, 2013

2 commits

  • This patch adds support for the Cypress APA Smbus Trackpad type,
    which uses a modified register map that fits within the
    limitations of the smbus protocol.

    Devices that use this protocol include:
    CYTRA-116001-00 - Samsung Series 5 550 Chromebook trackpad
    CYTRA-103002-00 - Acer C7 Chromebook trackpad
    CYTRA-101003-00 - HP Pavilion 14 Chromebook trackpad

    Signed-off-by: Dudley Du
    Signed-off-by: Benson Leung
    Reviewed-by: Daniel Kurtz
    Reviewed-by: Henrik Rydberg
    Signed-off-by: Dmitry Torokhov

    Benson Leung
     
  • Investigating the following gesture highlighted two slight implementation
    errors with choosing which slots to report in which slot when multiple
    contacts are present:

    Action SGM AGM (MTB slot:Contact)
    1. Touch contact 0 (0:0)
    2. Touch contact 1 (0:0, 1:1)
    3. Lift contact 0 (1:1)
    4. Touch contacts 2,3 (0:2, 1:3)

    In step 4, slot 1 was not being cleared first, which means the same
    tracking ID was being used for reporting both the old contact 1 and the
    new contact 3. This could result in "drumroll", where the old contact 1
    would appear to suddenly jump to new finger 3 position.

    Similarly, if contacts 2 & 3 are not detected at the same sample, step 4
    is split into two:

    Action SGM AGM (MTB slot:contact)
    1. Touch contact 0 (0:0)
    2. Touch contact 1 (0:0, 1:1)
    3. Lift contact 0 (1:1)
    4. Touch contact 2 (0:2, 1:1)
    5. Touch contact 3 (0:2, 1:3)

    In this case, there was also a bug. In step 4, when contact 1 moves from
    SGM to AGM and contact 2 is first reported in SGM, slot 0 was actually
    empty. So slot 0 can be used to report the new SGM (contact 0),
    immediately. Since it was empty, contact 2 in slot 0 will get a new
    tracking ID.

    Signed-off-by: Daniel Kurtz
    Signed-off-by: Dmitry Torokhov

    Daniel Kurtz
     

17 Jan, 2013

2 commits

  • This patch introduces a driver for Cypress All Points Addressable
    I2C Trackpad, including the ones in 2012 Samsung Chromebooks.

    This device is compatible with MT protocol type B, providing identifiable
    contacts.

    Signed-off-by: Dudley Du
    Signed-off-by: Daniel Kurtz
    Signed-off-by: Benson Leung
    Reviewed-by: Henrik Rydberg
    Signed-off-by: Dmitry Torokhov

    Benson Leung
     
  • This driver, submitted on behalf of Cypress Semiconductor Corporation and
    additional contributors, provides support for the Cypress PS/2 Trackpad.

    Original code contributed by Dudley Du (Cypress Semiconductor Corporation),
    modified by Kamal Mostafa and Kyle Fazzari.

    BugLink: http://launchpad.net/bugs/978807

    Signed-off-by: Dudley Du
    Signed-off-by: Kamal Mostafa
    Signed-off-by: Kyle Fazzari
    Signed-off-by: Mario Limonciello
    Signed-off-by: Tim Gardner
    Acked-by: Herton Krzesinski
    Reviewed-by: Henrik Rydberg
    Reviewed-by: Dudley Du
    Signed-off-by: Dmitry Torokhov

    Dudley Du
     

25 Dec, 2012

1 commit


24 Nov, 2012

3 commits