21 May, 2010

2 commits

  • * git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb-2.6: (229 commits)
    USB: remove unused usb_buffer_alloc and usb_buffer_free macros
    usb: musb: update gfp/slab.h includes
    USB: ftdi_sio: fix legacy SIO-device header
    USB: kl5usb105: reimplement using generic framework
    USB: kl5usb105: minor clean ups
    USB: kl5usb105: fix memory leak
    USB: io_ti: use kfifo to implement write buffering
    USB: io_ti: remove unsused private counter
    USB: ti_usb: use kfifo to implement write buffering
    USB: ir-usb: fix incorrect write-buffer length
    USB: aircable: fix incorrect write-buffer length
    USB: safe_serial: straighten out read processing
    USB: safe_serial: reimplement read using generic framework
    USB: safe_serial: reimplement write using generic framework
    usb-storage: always print quirks
    USB: usb-storage: trivial debug improvements
    USB: oti6858: use port write fifo
    USB: oti6858: use kfifo to implement write buffering
    USB: cypress_m8: use kfifo to implement write buffering
    USB: cypress_m8: remove unused drain define
    ...

    Fix up conflicts (due to usb_buffer_alloc/free renaming) in
    drivers/input/tablet/acecad.c
    drivers/input/tablet/kbtab.c
    drivers/input/tablet/wacom_sys.c
    drivers/media/video/gspca/gspca.c
    sound/usb/usbaudio.c

    Linus Torvalds
     
  • For more clearance what the functions actually do,

    usb_buffer_alloc() is renamed to usb_alloc_coherent()
    usb_buffer_free() is renamed to usb_free_coherent()

    They should only be used in code which really needs DMA coherency.

    All call sites have been changed accordingly, except for staging
    drivers.

    Signed-off-by: Daniel Mack
    Cc: Alan Stern
    Cc: Pedro Ribeiro
    Signed-off-by: Greg Kroah-Hartman

    Daniel Mack
     

20 May, 2010

5 commits


13 May, 2010

3 commits


05 May, 2010

1 commit

  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input:
    Input: joydev - allow binding to button-only devices
    Input: elantech - ignore high bits in the position coordinates
    Input: elantech - allow forcing Elantech protocol
    Input: elantech - fix firmware version check
    Input: ati_remote - add some missing devices from lirc_atiusb
    Input: eeti_ts - cancel pending work when going to suspend
    Input: Add support of Synaptics Clickpad device
    Revert "Input: ALPS - add signature for HP Pavilion dm3 laptops"
    Input: psmouse - ignore parity error for basic protocols

    Linus Torvalds
     

04 May, 2010

3 commits


20 Apr, 2010

2 commits

  • The new type of touchpads can be detected via a new query command
    0x0c. The clickpad flags are in cap[0]:4 and cap[1]:0 bits.

    When the device is detected, the driver now reports only the left
    button as the supported buttons so that X11 driver can detect that
    the device is Clickpad. A Clickpad device gives the button events
    only as the middle button. The kernel driver morphs to the left
    button. The real handling of Clickpad is done rather in X driver
    side.

    Signed-off-by: Takashi Iwai
    Signed-off-by: Dmitry Torokhov

    Takashi Iwai
     
  • This reverts commit 5e28d8eb68c12eab9c4a47b42ba993a6420d71d3 since
    the magic knock does not work for this model of the touchpad and the
    device stays in PS/2 compatibility mode.

    Dmitry Torokhov
     

19 Apr, 2010

1 commit

  • Observing behavior of the other OS it appears that parity errors reported
    by the keyboard controller are being ignored and the data is processed
    as usual. Let's do the same for standard PS/2 protocols (bare, Intellimouse
    and Intellimouse Explorer) to provide better compatibility. Thsi should fix
    teh following bug:

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

    Thanks for Damjan Jovanovic for locating the source of issue and ideas
    for the patch.

    Tested-by: Damjan Jovanovic
    Signed-off-by: Dmitry Torokhov

    Dmitry Torokhov
     

16 Apr, 2010

1 commit

  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input:
    Input: wacom - switch mode upon system resume
    Revert "Input: wacom - merge out and in prox events"
    Input: matrix_keypad - allow platform to disable key autorepeat
    Input: ALPS - add signature for HP Pavilion dm3 laptops
    Input: i8042 - spelling fix
    Input: sparse-keymap - implement safer freeing of the keymap
    Input: update the status of the Multitouch X driver project
    Input: clarify the no-finger event in multitouch protocol
    Input: bcm5974 - retract efi-broken suspend_resume
    Input: sparse-keymap - free the right keymap on error

    Linus Torvalds
     

06 Apr, 2010

1 commit


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
     

20 Mar, 2010

1 commit

  • With the recent system-wide improvements on suspend/resume and EFI
    booting the suspend_resume method of the bcm5974 has broken. When
    waking up from the S3 state on the MacBookAir, the trackpad is found
    in a yet unknown state, unable to switch to the proper multitouch
    mode. The result is a frozen touchpad, and a flood of errors of the
    kind

    bcm5974: bad trackpad package, length: 8.

    This patch retracts the reset_resume method altogether, falling back
    on the generic unbind/rebind functionality of the usb layer until
    further investigations can be made as how to reset the device when
    booting from efi.

    Signed-off-by: Henrik Rydberg
    Signed-off-by: Andrew Morton
    Signed-off-by: Dmitry Torokhov

    Henrik Rydberg
     

14 Mar, 2010

1 commit

  • Enable button release event redirection to the device that got the
    button press not only for touchpads with interleaved protocols, but
    unconditionally for all Alps touchpads. This is required at least
    for the touchpads in Dell Inspiron 8200 and Latitude d630.

    Signed-off-by: Martin Buck
    Signed-off-by: Dmitry Torokhov

    Martin Buck
     

11 Mar, 2010

1 commit

  • When reading data from Geyser 2 touchpads used on post Oct 2005 Apple
    PowerBooks the driver was casting X and Y coordinates values to
    'signed char'. Testing on one of such PowerBooks I have noticed that
    touchpad always generates positive values, but some of them are greater
    that 127, and thus, when cast to 'signed char' being interpreted as
    a negative.

    Such bigger values have been observed infrequently, closer to the
    edges of a touchpad, so the problem was not very visible.
    Nevertheless, the patch would potentially improve touchpad
    driver accuracy.

    Signed-off-by: Vadim Zaliva
    Signed-off-by: Dmitry Torokhov

    Vadim Zaliva
     

10 Mar, 2010

1 commit


01 Mar, 2010

1 commit


08 Feb, 2010

1 commit


28 Jan, 2010

1 commit


22 Jan, 2010

1 commit


13 Jan, 2010

2 commits


07 Jan, 2010

1 commit

  • For configurations where Synaptics hardware is present but the Synaptics
    extensions support is not compiled in, the mouse is reprobed and a new
    device is allocated on every suspend/resume.

    During probe, psmouse_switch_protocol() calls psmouse_extensions() with
    set_properties=1. This calls the dummy synaptics_init() which returns an
    error code, instructing us not to use the synaptics extensions.

    During resume, psmouse_reconnect() calls psmouse_extensions() with
    set_properties=0, in which case call to synaptics_init() is bypassed and
    PSMOUSE_SYNAPTICS is returned. Since the result is different from previous
    attempt psmouse_reconnect() fails and full re-probe happens.

    Fix this by tweaking the set_properties=0 codepath in psmouse_extensions()
    to be more careful about offering PSMOUSE_SYNAPTICS extensions.

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

    Daniel Drake
     

06 Jan, 2010

3 commits

  • Make bcm5974 report raw multi-touch (MT) data in the form of ABS_MT events.

    [dtor@mail.ru: get rid of module option, always report all events]
    Signed-off-by: Henrik Rydberg
    Signed-off-by: Andrew Morton
    Signed-off-by: Dmitry Torokhov

    Henrik Rydberg
     
  • Signed-off-by: Dmitry Torokhov

    Dmitry Torokhov
     
  • sysfs_remove_group() waits for sysfs attributes to be removed, therefore
    we do not need to worry about driver-specific attributes being accessed
    after driver has been detached from the device. In fact, attempts to take
    serio->drv_mutex in attribute methods may lead to the following deadlock:

    sysfs_read_file()
    fill_read_buffer()
    sysfs_get_active_two()
    psmouse_attr_show_helper()
    serio_pin_driver()
    serio_disconnect_driver()
    mutex_lock(&serio->drv_mutex);
    mutex_lock(&serio_drv_mutex);
    psmouse_disconnect()
    sysfs_remove_group(... psmouse_attr_group);
    ....
    sysfs_deactivate();
    wait_for_completion();

    Fix this by removing calls to serio_[un]pin_driver() and functions themselves
    and using driver-private mutexes to serialize access to attribute's set()
    methods that may change device state.

    Signed-off-by: Eric W. Biederman
    Signed-off-by: Dmitry Torokhov

    Eric W. Biederman
     

30 Dec, 2009

2 commits


25 Dec, 2009

1 commit


16 Dec, 2009

1 commit

  • Properly handle version of the protocol where standard PS/2 packets
    from trackpoint are stuffed into middle (byte 3-6) of the standard
    ALPS packets when both the touchpad and trackpoint are used together.

    The patch is based on work done by Matthew Chapman and additional
    research done by David Kubicek and Erik Osterholm:

    https://bugs.launchpad.net/ubuntu/+source/linux/+bug/296610

    Many thanks to David Kubicek for his efforts in researching fine points
    of this new version of the protocol, especially interaction between pad
    and stick in these models.

    Signed-off-by: Sebastian Kapfer
    Signed-off-by: Dmitry Torokhov

    Sebastian Kapfer
     

12 Dec, 2009

1 commit


05 Dec, 2009

1 commit