17 Dec, 2014

1 commit

  • Since commit commit 560a64749d1dd0ff ("ENGR00318936-2 input: keyboard: imx:
    remove usless release interrupt enabled) the following problem happens:

    - Keep any keypad key pressed
    - Enter low power mode via "echo mem > /sys/power/state"
    - Then we are no longer able to wake-up the system via the keypad

    The reason for this behaviour is that the KRIE (Release Interrupt) is not
    enabled.

    In order to fix this problem, we should enable KRIE when a key is pressed
    (KPKD bit is set) or enable KDIE when no key is pressed (KPKR is set).

    This way we will always have a valid source of keypad interrupt no matter if
    the system entered low power mode while a keypad key was pressed or not.

    Signed-off-by: Fabio Estevam

    Fabio Estevam
     

09 Oct, 2014

2 commits

  • Duo to the new egalax touch driver, in Multi-touch mode, the report messages
    also contain the single touch message. So there is no need to use the single
    touch config.

    Signed-off-by: Haibo Chen

    Haibo Chen
     
  • Multi-touch Protocol is divided into two types:
    Type A --> for devices handling anonymous contacts, the protocol
    describes how to send the raw data for all contacts to
    the receiver.
    Tyep B --> for devices capable of tracking identifiable contacts,
    the protocol describes how to send updates for individual
    contacts via event slots.

    Before this patch, our driver use type A, but wayland 1.6(GPU team)
    just call type B contact to check the multi slots number. Besides,
    type B can also be used in Android and Yocto, so this patch use
    type B to replace type A.

    The upstream EETI egalax touch driver use type B multi-touch protocol,
    so this patch just use the upstream driver to replace the current
    egalax touch driver.

    Signed-off-by: Haibo Chen

    Haibo Chen
     

28 Aug, 2014

15 commits

  • Remove useless code for release interrupt enabled, because we check status by
    timer rather than release interrupt. Remove the code which may disable depress
    interrupt. Also make sure enable depress interrupt in suspend function.

    Signed-off-by: Robin Gong

    Robin Gong
     
  • There is a small window after system suspend but timer scan function
    didn't finish timely, in this case, system enter suspend without kpp
    interrupt enabled and failed to resume back if key depressed.We add
    pm_stay_awake and pm_relax to make sure system suspend flow abort in
    this case.

    Signed-off-by: Robin Gong

    Robin Gong
     
  • If there is one ONOFF power key interrupt pending before RESET key pushed. system will
    crash as below in the next boot cycle, because the pending interrupt will be serviced
    after devm_request_irq while the driver probe has not finished and the drvdata is NULL.
    So clear the meaningless irq status in the probe.

    ousedev: PS/2 mouse device common for all mice
    Unable to handle kernel NULL pointer dereference at virtual address 00000000
    pgd = 80004000
    [00000000] *pgd=00000000
    Internal error: Oops: 5 [#1] PREEMPT SMP ARM
    Modules linked in:
    CPU: 0 PID: 1 Comm: swapper/0 Not tainted 3.10.17-01631-g6b7b681-dirty #343
    task: a806c000 ti: a806e000 task.ti: a806e000
    PC is at imx_snvs_pwrkey_interrupt+0x10/0x4c
    LR is at imx_snvs_pwrkey_interrupt+0xc/0x4c
    pc : [] lr : [] psr: a0000193
    sp : a806fd10 ip : fffffffa fp : 00000001
    r10: 80cb630e r9 : a8006b40 r8 : 00000024
    r7 : 00000000 r6 : 00000000 r5 : a8006b90 r4 : a83b5340
    r3 : 803f0584 r2 : a806fd48 r1 : a80ad000 r0 : 00000000
    Flags: NzCv IRQs off FIQs on Mode SVC_32 ISA ARM Segment kernel
    Control: 10c53c7d Table: 8000404a DAC: 00000015
    Process swapper/0 (pid: 1, stack limit = 0xa806e238)
    Stack: (0xa806fd10 to 0xa8070000)
    fd00: a83b5340 a8006b90 00000000 8007363c
    fd20: 80cb6000 80090604 00000001 a8006b40 a8006b90 a83b5340 c0802100 60000113
    fd40: a8006b70 00000000 00000000 800737a0 a8006b40 a8006b90 00000000 8007646c
    fd60: 800763e8 00000024 00000024 80072e04 80c5fef0 8000e948 c080210c 80c6a904
    fd80: a806fda0 80008558 80074b94 8063c75c 60000113 ffffffff a806fdd4 8000dc80
    fda0: a8006b90 60000113 a806fdb8 00000007 a8006b40 a83b5340 a8006b90 00000024
    fdc0: 60000113 a8006b70 00000000 00000000 000000ff a806fde8 80074b94 8063c75c
    fde0: 60000113 ffffffff 00000000 80074b94 80c6f688 020cc000 00000000 00000001
    fe00: a83b5340 a8006b40 803f0584 00000004 00000024 a80ad000 00000000 80074f50
    fe20: a83b5310 a80ad000 00000024 803f0584 00000000 a80ad010 80c53804 80076a40
    fe40: a80ab880 a80ad000 a836e990 a836e990 a80ad010 8152696c a80ad000 80cb6480
    fe60: 80c44f90 803f0774 00000004 a80ab880 a80ad000 00000000 80d0ba0c a80ad010
    fe80: 00000000 80c9a1f0 80cb6480 803099c0 803099a8 8030876c 00000000 a80ad010
    fea0: 80c9a1f0 a80ad044 00000000 80308958 00000000 80c9a1f0 803088cc 80306c88
    fec0: a804055c a80ac1b4 80c9a1f0 a836e680 80c89a30 80307f30 80b82af4 80c9a1f0
    fee0: 00000006 80c9a1f0 00000006 80cb6480 80cb6480 80308f34 80c5e688 00000006
    ff00: 80cb6480 80cb6480 80cb6480 80008704 000000f2 80041d60 80c537dc a806e010
    ff20: 80b81e6c 80be5e54 00000006 00000006 800415cc 80041624 00000000 80c5e688
    ff40: 00000006 80cb6480 80cb6480 80c194dc 000000f2 80c53804 80c537f8 80c19be0
    ff60: 00000006 00000006 80c194dc 900ff07c ab86ff79 08012008 a806ff9c 00000000
    ff80: 80631050 00000000 00000000 00000000 00000000 00000000 00000000 80631058
    ffa0: 00000000 00000000 80631050 8000e118 00000000 00000000 00000000 00000000
    ffc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
    ffe0: 00000000 00000000 00000000 00000000 00000013 00000000 fdfe5bba dbfe26ba
    [] (imx_snvs_pwrkey_interrupt+0x10/0x4c) from [] (handle_irq_event_percpu+0x54/0x17c)
    [] (handle_irq_event_percpu+0x54/0x17c) from [] (handle_irq_event+0x3c/0x5c)
    [] (handle_irq_event+0x3c/0x5c) from [] (handle_fasteoi_irq+0x84/0x14c)
    [] (handle_fasteoi_irq+0x84/0x14c) from [] (generic_handle_irq+0x2c/0x3c)
    [] (generic_handle_irq+0x2c/0x3c) from [] (handle_IRQ+0x40/0x90)
    [] (handle_IRQ+0x40/0x90) from [] (gic_handle_irq+0x2c/0x5c)
    [] (gic_handle_irq+0x2c/0x5c) from [] (__irq_svc+0x40/0x70)
    Exception stack(0xa806fda0 to 0xa806fde8)
    fda0: a8006b90 60000113 a806fdb8 00000007 a8006b40 a83b5340 a8006b90 00000024
    fdc0: 60000113 a8006b70 00000000 00000000 000000ff a806fde8 80074b94 8063c75c
    fde0: 60000113 ffffffff
    [] (__irq_svc+0x40/0x70) from [] (_raw_spin_unlock_irqrestore+0x20/0x48)
    [] (_raw_spin_unlock_irqrestore+0x20/0x48) from [] (__setup_irq+0x1b4/0x440)
    [] (__setup_irq+0x1b4/0x440) from [] (request_threaded_irq+0xa8/0x128)
    [] (request_threaded_irq+0xa8/0x128) from [] (devm_request_threaded_irq+0x58/0x9c)
    [] (devm_request_threaded_irq+0x58/0x9c) from [] (imx_snvs_pwrkey_probe+0x118/0x250)
    [] (imx_snvs_pwrkey_probe+0x118/0x250) from [] (platform_drv_probe+0x18/0x1c)
    [] (platform_drv_probe+0x18/0x1c) from [] (driver_probe_device+0x10c/0x228)
    [] (driver_probe_device+0x10c/0x228) from [] (__driver_attach+0x8c/0x90)
    [] (__driver_attach+0x8c/0x90) from [] (bus_for_each_dev+0x60/0x94)
    [] (bus_for_each_dev+0x60/0x94) from [] (bus_add_driver+0x1c0/0x24c)
    [] (bus_add_driver+0x1c0/0x24c) from [] (driver_register+0x78/0x140)
    [] (driver_register+0x78/0x140) from [] (do_one_initcall+0x108/0x158)
    [] (do_one_initcall+0x108/0x158) from [] (kernel_init_freeable+0x138/0x1d8)
    [] (kernel_init_freeable+0x138/0x1d8) from [] (kernel_init+0x8/0x158)
    [] (kernel_init+0x8/0x158) from [] (ret_from_fork+0x14/0x3c)
    Code: e92d4070 e2810010 ebfc5ebe e1a06000 (e5904000)
    ---[ end trace bd5e3234432334c1 ]---
    Kernel panic - not syncing: Fatal exception in interrupt

    Signed-off-by: Robin Gong

    Robin Gong
     
  • add snvs power key driver since ic team has fix some issues of SNVS on i.mx6sx

    Signed-off-by: Robin Gong

    Robin Gong
     
  • Signed-off-by: Denis Carikli
    Signed-off-by: Dmitry Torokhov

    Denis Carikli
     
  • The isl29023 share the same interrupt gpio with mag3110 sensor. This patch add shared
    interrutp support.

    Signed-off-by: Luwei Zhou

    Luwei Zhou
     
  • evbug will open the mma8450 on i.MX6SL_EVK and mma8450 will work in 2G mode by default.
    That is the reason why mma8450 logs will be printed out. The main changes is below:

    * Remove the open(), close() hook out of the drivers. The open() and close()
    hook in input framwork is defined as void type. It isn't strictly safe in
    logic when some error happends. So remove them out.
    * Modify the mma8450 to standby mode by default. It will be more power saving
    and there would be no log printing out after booting up.
    * Provide the sys interface to modify the mma8450 work modes. Then the higher
    layer can modify the the mma8450 work mode via the interface. It would be
    much safer.There would be a sclaemode interface in the folder of
    /sys/devices/soc0/soc.1/2100000.aips-bus/21a0000.i2c/i2c-0/0-001c/scalemode
    User can use cat to read the current scalemode and echo to write. The mode
    is defined as: MODE_STANDBY: 0 MODE_2G:1 MODE_4G:2 MODE_8G:3
    * Add mutex to protect and some error handling.

    Signed-off-by: Luwei Zhou

    Luwei Zhou
     
  • When system suspend, need to switch keyboard pins to sleep mode,
    this is to save IO power. Using pinctrl mode switch framework
    to make it happen.

    Signed-off-by: Anson Huang

    Anson Huang
     
  • Add chip ID check in probe function. The mma8450 is
    on the E-INK daughter board. When the daughter board
    is not pluged, there would be polling error log
    continuously. Add the check to avoid this.

    Signed-off-by: Luwei Zhou

    Luwei Zhou
     
  • To support wakeup system from freeze mode of suspend,
    device's irq can NOT be disabled during devices suspend,
    so we need to add IRQF_NO_SUSPEND flag to irqflags.

    Signed-off-by: Anson Huang

    Anson Huang
     
  • It's ported from 3.5.7 kernel. To test this driver, the EBook Daughter
    Board need to be attached (on imx6dl sabresd or imx6sl evk board).

    Signed-off-by: Robby Cai

    Robby Cai
     
  • ISL29023 is an integrated ambient and infrared light to digital
    converter with I2C (SMBus Compatible) Interface.
    (Cherry-pick from freescale internal kernel 3.0.35_4.1.0 branch)

    Signed-off-by: Luwei Zhou

    Luwei Zhou
     
  • We need add DCM mode/AUX mode for ADC converter function of max11801, so that
    it can be used to read voltage of battery. Meanwhile, let the driver based on
    device tree. The patchset is based on below patch (V3.5.7):

    commit 4001774cf51f0140ae7e4e8e0ec1d86475790682
    Author: Rong Dian
    Date: Fri Jan 18 14:24:28 2013 +0800

    Engr00240284-1 MAX11801: Add DCM aux adc sample function

    1.Add direct conversion mode operations
    2.Add aux adc sample function

    Signed-off-by: Robin Gong

    Robin Gong
     
  • Add egalax touchscreen as single-touch support in Kconfig.

    Signed-off-by: Luwei Zhou

    Luwei Zhou
     
  • Copy the egalax touch screen driver from linux3.5.7.Make some
    modification.Remove the __devinit __devexit __devexit_p out
    of the file, because 3.10 does not support.

    Signed-off-by: Luwei Zhou

    Luwei
     

01 Aug, 2014

1 commit

  • commit 50c5d36dab930b1f1b1e3348b8608aa8b9ee7610 upstream.

    We attempt to remove noise from coordinates reported by devices in
    input_handle_abs_event(), unfortunately, unless we were dropping the
    event altogether, we were ignoring the adjusted value and were passing
    on the original value instead.

    Reviewed-by: Andrew de los Reyes
    Reviewed-by: Benson Leung
    Reviewed-by: David Herrmann
    Reviewed-by: Henrik Rydberg
    Signed-off-by: Dmitry Torokhov
    Signed-off-by: Greg Kroah-Hartman

    Dmitry Torokhov
     

07 Jul, 2014

2 commits

  • commit fb4f8f568a9def02240ef9bf7aabd246dc63a081 upstream.

    The touchpad on the GIGABYTE U2442 not only stops communicating when we try
    to set bit 3 (enable real hardware resolution) of reg_10, but on some BIOS
    versions also when we set bit 1 (enable two finger mode auto correct).

    I've asked the original reporter of:
    https://bugzilla.kernel.org/show_bug.cgi?id=61151

    To check that not setting bit 1 does not lead to any adverse effects on his
    model / BIOS revision, and it does not, so this commit fixes the touchpad
    not working on these versions by simply never setting bit 1 for laptop
    models with the no_hw_res quirk.

    Reported-and-tested-by: James Lademann
    Tested-by: Philipp Wolfer
    Signed-off-by: Hans de Goede
    Signed-off-by: Dmitry Torokhov
    Signed-off-by: Greg Kroah-Hartman

    Hans de Goede
     
  • commit cd9e83e2754465856097f31c7ab933ce74c473f8 upstream.

    At least the Dell Vostro 5470 elantech *clickpad* reports right button
    clicks when clicked in the right bottom area:

    https://bugzilla.redhat.com/show_bug.cgi?id=1103528

    This is different from how (elantech) clickpads normally operate, normally
    no matter where the user clicks on the pad the pad always reports a left
    button event, since there is only 1 hardware button beneath the path.

    It looks like Dell has put 2 buttons under the pad, one under each bottom
    corner, causing this.

    Since this however still clearly is a real clickpad hardware-wise, we still
    want to report it as such to userspace, so that things like finger movement
    in the bottom area can be properly ignored as it should be on clickpads.

    So deal with this weirdness by simply mapping a right click to a left click
    on elantech clickpads. As an added advantage this is something which we can
    simply do on all elantech clickpads, so no need to add special quirks for
    this weird model.

    Reported-and-tested-by: Elder Marco
    Signed-off-by: Hans de Goede
    Signed-off-by: Dmitry Torokhov
    Signed-off-by: Greg Kroah-Hartman

    Hans de Goede
     

08 Jun, 2014

4 commits

  • commit 6d396ede224dc596d92d7cab433713536e68916c upstream.

    The T540p has a touchpad with pnp-id LEN0034, all the models with this
    pnp-id have the same min/max values, except the T540p where the values are
    slightly off. Fix them to be identical.

    This is a preparation patch for simplifying the quirk table.

    Signed-off-by: Hans de Goede
    Signed-off-by: Dmitry Torokhov
    Signed-off-by: Greg Kroah-Hartman

    Hans de Goede
     
  • commit 0b5fe736fe923f1f5e05413878d5990e92ffbdf5 upstream.

    https://bugzilla.redhat.com/show_bug.cgi?id=1096436

    Tested-and-reported-by: ajayr@bigfoot.com
    Signed-off-by: Hans de Goede
    Signed-off-by: Dmitry Torokhov
    Signed-off-by: Greg Kroah-Hartman

    Hans de Goede
     
  • commit 36189cc3cd57ab0f1cd75241f93fe01de928ac06 upstream.

    The hw_version 3 Elantech touchpad on the Gigabyte U2442 does not accept
    0x0b as initialization value for r10, this stand-alone version of the
    driver: http://planet76.com/drivers/elantech/psmouse-elantech-v6.tar.bz2

    Uses 0x03 which does work, so this means not setting bit 3 of r10 which
    sets: "Enable Real H/W Resolution In Absolute mode"

    Which will result in half the x and y resolution we get with that bit set,
    so simply not setting it everywhere is not a solution. We've been unable to
    find a way to identify touchpads where setting the bit will fail, so this
    patch uses a dmi based blacklist for this.

    https://bugzilla.kernel.org/show_bug.cgi?id=61151

    Reported-by: Philipp Wolfer
    Tested-by: Philipp Wolfer
    Signed-off-by: Hans de Goede
    Signed-off-by: Dmitry Torokhov
    Signed-off-by: Greg Kroah-Hartman

    Hans de Goede
     
  • commit 3d725caa9dcc78c3dc9e7ea0c04f626468edd9c9 upstream.

    After issuing ATKBD_CMD_RESET_DIS, keyboard on some LG laptops stops
    working. The workaround is to stop issuing ATKBD_CMD_RESET_DIS commands.

    In order to keep changes in atkbd driver to the minimum we check DMI
    signature and only skip ATKBD_CMD_RESET_DIS if we are running on LG
    LW25-B7HV or P1-J273B.

    Signed-off-by: Sheng-Liang Song
    Signed-off-by: Dmitry Torokhov
    Signed-off-by: Greg Kroah-Hartman

    Sheng-Liang Song
     

13 May, 2014

2 commits

  • commit 27a38856a948c3e8de30dc71647ff9e1778c99fc upstream.

    Signed-off-by: Hans de Goede
    Signed-off-by: Dmitry Torokhov
    Signed-off-by: Greg Kroah-Hartman

    Hans de Goede
     
  • commit 46a2986ebbe18757c2d8c352f8fb6e0f4f0754e3 upstream.

    We expect that all the Haswell series will need such quirks, sigh.

    The T431s seems to be T430 hardware in a T440s case, using the T440s touchpad,
    with the same min/max issue.

    The X1 Carbon 3rd generation name says 2nd while it is a 3rd generation.

    The X1 and T431s share a PnPID with the T540p, but the reported ranges are
    closer to those of the T440s.

    HdG: Squashed 5 quirk patches into one. T431s + L440 + L540 are written by me,
    S1 Yoga and X1 are written by Benjamin Tissoires.

    Hdg: Standardized S1 Yoga and X1 values, Yoga uses the same touchpad as the
    X240, X1 uses the same touchpad as the T440.

    Signed-off-by: Benjamin Tissoires
    Signed-off-by: Hans de Goede
    Signed-off-by: Dmitry Torokhov
    Signed-off-by: Greg Kroah-Hartman

    Hans de Goede
     

04 Apr, 2014

4 commits

  • commit 6797b39e6f6f34c74177736e146406e894b9482b upstream.

    The cypress PS/2 trackpad models supported by the cypress_ps2 driver
    emulate BTN_RIGHT events in firmware based on the finger position, as part
    of this no motion events are sent when the finger is in the button area.

    The INPUT_PROP_BUTTONPAD property is there to indicate to userspace that
    BTN_RIGHT events should be emulated in userspace, which is not necessary
    in this case.

    When INPUT_PROP_BUTTONPAD is advertised userspace will wait for a motion
    event before propagating the button event higher up the stack, as it needs
    current abs x + y data for its BTN_RIGHT emulation. Since in the
    cypress_ps2 pads don't report motion events in the button area, this means
    that clicks in the button area end up being ignored, so
    INPUT_PROP_BUTTONPAD actually causes problems for these touchpads, and
    removing it fixes:

    https://bugs.freedesktop.org/show_bug.cgi?id=76341

    Reported-by: Adam Williamson
    Tested-by: Adam Williamson
    Reviewed-by: Peter Hutterer
    Signed-off-by: Hans de Goede
    Signed-off-by: Dmitry Torokhov
    Signed-off-by: Greg Kroah-Hartman

    Hans de Goede
     
  • commit 8a0435d958fb36d93b8df610124a0e91e5675c82 upstream.

    This extends Benjamin Tissoires manual min/max quirk table with support for
    the ThinkPad X240.

    Signed-off-by: Hans de Goede
    Signed-off-by: Dmitry Torokhov
    Signed-off-by: Greg Kroah-Hartman

    Hans de Goede
     
  • commit 421e08c41fda1f0c2ff6af81a67b491389b653a5 upstream.

    The new Lenovo Haswell series (-40's) contains a new Synaptics touchpad.
    However, these new Synaptics devices report bad axis ranges.
    Under Windows, it is not a problem because the Windows driver uses RMI4
    over SMBus to talk to the device. Under Linux, we are using the PS/2
    fallback interface and it occurs the reported ranges are wrong.

    Of course, it would be too easy to have only one range for the whole
    series, each touchpad seems to be calibrated in a different way.

    We can not use SMBus to get the actual range because I suspect the firmware
    will switch into the SMBus mode and stop talking through PS/2 (this is the
    case for hybrid HID over I2C / PS/2 Synaptics touchpads).

    So as a temporary solution (until RMI4 land into upstream), start a new
    list of quirks with the min/max manually set.

    Signed-off-by: Benjamin Tissoires
    Signed-off-by: Dmitry Torokhov
    Signed-off-by: Greg Kroah-Hartman

    Benjamin Tissoires
     
  • commit e4dbedc7eac7da9db363a36f2bd4366962eeefcc upstream.

    We should not be using static variable mousedev_mix in methods that can be
    called before that singleton gets assigned. While at it let's add open and
    close methods to mousedev structure so that we do not need to test if we
    are dealing with multiplexor or normal device and simply call appropriate
    method directly.

    This fixes: https://bugzilla.kernel.org/show_bug.cgi?id=71551

    Reported-by: GiulioDP
    Tested-by: GiulioDP
    Signed-off-by: Dmitry Torokhov
    Signed-off-by: Greg Kroah-Hartman

    Dmitry Torokhov
     

01 Apr, 2014

2 commits

  • commit 1d0d6df02750b4a6f466768cbfbf860e24f4c8d4 upstream.

    Old single touch Tablet PCs do not have touch_max set at
    wacom_features. Since touch device at lease supports one
    finger, assign touch_max to 1 when touch usage is defined
    in its HID Descriptor and touch_max is not pre-defined.

    Tested-by: Jason Gerecke
    Signed-off-by: Ping Cheng
    Reviewed-by: Chris Bagwell
    Signed-off-by: Dmitry Torokhov
    Cc: Josh Boyer
    Signed-off-by: Greg Kroah-Hartman

    Ping Cheng
     
  • commit c15bdfd5b9831e4cab8cfc118243956e267dd30e upstream.

    The current assumption in the elantech driver that hw version 3 touchpads
    are never clickpads and hw version 4 touchpads are always clickpads is
    wrong.

    There are several bug reports for this, ie:
    https://bugzilla.redhat.com/show_bug.cgi?id=1030802
    http://superuser.com/questions/619582/right-elantech-touchpad-button-not-working-in-linux

    I've spend a couple of hours wading through various bugzillas, launchpads
    and forum posts to create a list of fw-versions and capabilities for
    different laptop models to find a good method to differentiate between
    clickpads and versions with separate hardware buttons.

    Which shows that a device being a clickpad is reliable indicated by bit 12
    being set in the fw_version. I've included the gathered list inside the
    driver, so that we've this info at hand if we need to revisit this later.

    Signed-off-by: Hans de Goede
    Reviewed-by: Benjamin Tissoires
    Signed-off-by: Dmitry Torokhov
    Cc: Josh Boyer
    Signed-off-by: Greg Kroah-Hartman

    Hans de Goede
     

07 Mar, 2014

1 commit


10 Jan, 2014

1 commit


20 Dec, 2013

2 commits

  • commit 4ef38351d770cc421f4a0c7a849fd13207fc5741 upstream.

    This patch supports the separate handling of the USB transfer buffer length
    and the length of the buffer used for multi packet support. For devices
    supporting multiple report or diagnostic packets, the USB transfer size is now
    limited to the USB endpoints wMaxPacketSize - otherwise it defaults to the
    configured report packet size as before.

    This fixes an issue where event reporting can be delayed for an arbitrary
    time for multi packet devices. For instance the report size for eGalax devices
    is defined to the 16 byte maximum diagnostic packet size as opposed to the 5
    byte report packet size. In case the driver requests 16 byte from the USB
    interrupt endpoint, the USB host controller driver needs to split up the
    request into 2 accesses according to the endpoints wMaxPacketSize of 8 byte.
    When the first transfer is answered by the eGalax device with not less than
    the full 8 byte requested, the host controller has got no way of knowing
    whether the touch controller has got additional data queued and will issue
    the second transfer. If per example a liftoff event finishes at such a
    wMaxPacketSize boundary, the data will not be available to the usbtouch driver
    until a further event is triggered and transfered to the host. From user
    perspective the BTN_TOUCH release event in this case is stuck until the next
    touch down event.

    Signed-off-by: Christian Engelmayer
    Signed-off-by: Dmitry Torokhov
    Signed-off-by: Greg Kroah-Hartman

    Christian Engelmayer
     
  • commit ed06349fe8d12dcb718984862b6e839fc8606c34 upstream.

    Signed-off-by: Nol "Mag" Archinova
    Signed-off-by: Dmitry Torokhov
    Signed-off-by: Greg Kroah-Hartman

    Mag
     

12 Dec, 2013

2 commits

  • commit dfaaed08ecc01bd513248ba7999daf50ce028352 upstream.

    Moust (if not all) modern software, including X, uses /dev/eventX rather than
    the legacy /dev/mouseX devices. It therefore makes sense for general-purpose
    (distro) kernels to use MOUSEDV=m (or even n), so let's drop the EXPERT=y
    requirement.

    Signed-off-by: Tom Gundersen
    Signed-off-by: Dmitry Torokhov
    Signed-off-by: Greg Kroah-Hartman

    Tom Gundersen
     
  • commit bcd2623073e98f69f84720308db0b142c4da0bd6 upstream.

    There is plenty of consumer hardware (e.g., mac books) that does not use AT
    keyboards or PS/2 mice. It therefore makes sense for distro kernels to
    build the related drivers as modules to avoid loading them on hardware that
    does not need them. As such, these options should no longer be protected by
    EXPERT.

    Moreover, building these drivers as modules gets rid of the following ugly
    error during boot:

    [ 2.337745] i8042: PNP: No PS/2 controller found. Probing ports directly.
    [ 3.439537] i8042: No controller found

    Signed-off-by: Tom Gundersen
    Signed-off-by: Dmitry Torokhov
    Signed-off-by: Greg Kroah-Hartman

    Tom Gundersen
     

05 Dec, 2013

1 commit