11 Jan, 2012

1 commit

  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid: (68 commits)
    hid-input/battery: add FEATURE quirk
    hid-input/battery: remove battery_val
    hid-input/battery: power-supply type really *is* a battery
    hid-input/battery: make the battery setup common for INPUTs and FEATUREs
    hid-input/battery: deal with both FEATURE and INPUT report batteries
    hid-input/battery: add quirks for battery
    hid-input/battery: remove apparently redundant kmalloc
    hid-input: add support for HID devices reporting Battery Strength
    HID: hid-multitouch: add support 9 new Xiroku devices
    HID: multitouch: add support for 3M 32"
    HID: multitouch: add support of Atmel multitouch panels
    HID: usbhid: defer LED setting to a workqueue
    HID: usbhid: hid-core: submit queued urbs before suspend
    HID: usbhid: remove LED_ON
    HID: emsff: use symbolic name instead of hardcoded PID constant
    HID: Enable HID_QUIRK_MULTI_INPUT for Trio Linker Plus II
    HID: Kconfig: fix syntax
    HID: introduce proper dependency of HID_BATTERY on POWER_SUPPLY
    HID: multitouch: support PixArt optical touch screen
    HID: make parser more verbose about parsing errors by default
    ...

    Fix up rename/delete conflict in drivers/hid/hid-hyperv.c (removed in
    staging, moved in this branch) and similarly for the rules for same file
    in drivers/staging/hv/{Kconfig,Makefile}.

    Linus Torvalds
     

09 Jan, 2012

1 commit

  • * 'for-linus2' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (165 commits)
    reiserfs: Properly display mount options in /proc/mounts
    vfs: prevent remount read-only if pending removes
    vfs: count unlinked inodes
    vfs: protect remounting superblock read-only
    vfs: keep list of mounts for each superblock
    vfs: switch ->show_options() to struct dentry *
    vfs: switch ->show_path() to struct dentry *
    vfs: switch ->show_devname() to struct dentry *
    vfs: switch ->show_stats to struct dentry *
    switch security_path_chmod() to struct path *
    vfs: prefer ->dentry->d_sb to ->mnt->mnt_sb
    vfs: trim includes a bit
    switch mnt_namespace ->root to struct mount
    vfs: take /proc/*/mounts and friends to fs/proc_namespace.c
    vfs: opencode mntget() mnt_set_mountpoint()
    vfs: spread struct mount - remaining argument of next_mnt()
    vfs: move fsnotify junk to struct mount
    vfs: move mnt_devname
    vfs: move mnt_list to struct mount
    vfs: switch pnode.h macros to struct mount *
    ...

    Linus Torvalds
     

05 Jan, 2012

1 commit


04 Jan, 2012

1 commit


21 Dec, 2011

4 commits

  • Defer LED setting action to a workqueue.
    This is more likely to send all LED change events in a single URB.

    Signed-off-by: Daniel Kurtz
    Acked-by: Oliver Neukum
    Signed-off-by: Jiri Kosina

    Daniel Kurtz
     
  • If any userspace program has opened a keyboard device, the input core
    de-activates the keyboard's LEDs upon suspend(). It does this by sending
    individual EV_LED[LED_X]=0 events to the underlying device driver by
    directly calling the driver's registered event() handler.

    The usb-hid driver event() handler processes each request by immediately
    attempting to submit a CTRL URB to turn off the LED. USB URB submission
    is asynchronous. First the URB is added to the head of the ctrl queue.
    Then, if the CTRL_RUNNING flag is false, the URB is submitted immediately
    (and CTRL_RUNNING is set). If the CTRL_RUNNING flag was already true,
    then the newly queued URB is submitted in the ctrl completion handler when
    all previously submitted URBs have completed. When all queued URBs have
    been submitted, the completion handler clears the CTRL_RUNNING flag.

    In the 2-LED suspend case, at input suspend(), 2 LED event CTRL URBs get
    queued, with only the first actually submitted. Soon after input
    suspend() handler finishes, the usb-hid suspend() handler gets called.
    Since this is NOT a PM_EVENT_AUTO suspend, the handler sets
    REPORTED_IDLE, then waits for io to complete.

    Unfortunately, this usually happens while the first LED request is
    actually still being processed. Thus when the completion handler tries
    to submit the second LED request it fails, since REPORTED_IDLE is
    already set! This REPORTED_IDLE check failure causes the completion
    handler to complete, however without clearing the CTRL_RUNNING flag.
    This, in turn, means that the suspend() handler's wait_io() condition
    is never satisfied, and instead it times out after 10 seconds, aborting
    the original system suspend.

    This patch changes the behavior to the following:
    (1) allow completion handler to finish submitting all queued URBs, even if
    REPORTED_IDLE is set. This guarantees that all URBs queued before the
    hid-core suspend() call will be submitted before the system is
    suspended.
    (2) if REPORTED_IDLE is set and the URB queue is empty, queue, but
    don't submit, new URB submission requests. These queued requests get
    submitted when resume() flushes the URB queue. This is similar to the
    existing behavior, however, any requests that arrive while the queue is
    not yet empty will still get submitted before suspend.
    (3) set the RUNNING flag when flushing the URB queue in resume().
    This keeps URBs that were queued in (2) from colliding with any new
    URBs that are being submitted during the resume process. The new URB
    submission requests upon resume get properly queued behind the ones
    being flushed instead of the current situation where they collide,
    causing memory corruption and oopses.

    Signed-off-by: Daniel Kurtz
    Acked-by: Oliver Neukum
    Signed-off-by: Jiri Kosina

    Daniel Kurtz
     
  • LED_ON was defined in the original version of the hid-core autosuspend patch.
    However, during review, the setting and clearing of it was redone
    using ledcount. The test was left in accidentally.

    Signed-off-by: Daniel Kurtz
    Acked-by: Oliver Neukum
    Signed-off-by: Jiri Kosina

    Daniel Kurtz
     
  • Add quirk for the Trio Linker Plus II - the adapter supports several
    controllers simultaneously, generating a new HID entry for each connected
    device.

    Signed-off-by: Ignaz Forster
    Signed-off-by: Jiri Kosina

    Ignaz Forster
     

15 Dec, 2011

1 commit


23 Nov, 2011

2 commits

  • The LED URB was left unkilled when the USB device is disconnected.

    Signed-off-by: Willem Penninckx
    Signed-off-by: Jiri Kosina

    Willem Penninckx
     
  • usb_kbd_event() and usb_kbd_led() can be called concurrently, but they are not
    synchronized. They both readwrite kbd->leds, and usb_kbd_event() originally just
    checked the URB status field, while urb.h states that "It [status field] should
    not be examined before the URB is returned to the completion handler."

    To fix this unsynchronized behavior, this patch introduces a boolean
    representing whether the URB is submitted, and a spinlock.

    Signed-off-by: Willem Penninckx
    Signed-off-by: Jiri Kosina

    Willem Penninckx
     

19 Nov, 2011

1 commit


01 Nov, 2011

1 commit


25 Oct, 2011

2 commits

  • * 'pm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (63 commits)
    PM / Clocks: Remove redundant NULL checks before kfree()
    PM / Documentation: Update docs about suspend and CPU hotplug
    ACPI / PM: Add Sony VGN-FW21E to nonvs blacklist.
    ARM: mach-shmobile: sh7372 A4R support (v4)
    ARM: mach-shmobile: sh7372 A3SP support (v4)
    PM / Sleep: Mark devices involved in wakeup signaling during suspend
    PM / Hibernate: Improve performance of LZO/plain hibernation, checksum image
    PM / Hibernate: Do not initialize static and extern variables to 0
    PM / Freezer: Make fake_signal_wake_up() wake TASK_KILLABLE tasks too
    PM / Hibernate: Add resumedelay kernel param in addition to resumewait
    MAINTAINERS: Update linux-pm list address
    PM / ACPI: Blacklist Vaio VGN-FW520F machine known to require acpi_sleep=nonvs
    PM / ACPI: Blacklist Sony Vaio known to require acpi_sleep=nonvs
    PM / Hibernate: Add resumewait param to support MMC-like devices as resume file
    PM / Hibernate: Fix typo in a kerneldoc comment
    PM / Hibernate: Freeze kernel threads after preallocating memory
    PM: Update the policy on default wakeup settings
    PM / VT: Cleanup #if defined uglyness and fix compile error
    PM / Suspend: Off by one in pm_suspend()
    PM / Hibernate: Include storage keys in hibernation image on s390
    ...

    Linus Torvalds
     
  • Conflicts:
    drivers/hid/hid-core.c
    drivers/hid/hid-ids.h

    Jiri Kosina
     

21 Oct, 2011

1 commit

  • Support the following models: Super Joy Box 3 Pro, Super Dual Box Pro
    and Super Joy Box 5 Pro. These models have support for pressure
    sensitive buttons and they can force the controller to either digital
    or analog mode, both of which are not supported yet.

    Signed-off-by: Sean Young
    Signed-off-by: Jiri Kosina

    Sean Young
     

14 Oct, 2011

1 commit

  • This makes sure IO is never restarted while a reset is going on

    In particular there seems to be no protection from hid_retry_timeout() calling
    hid_start_in() which would start IO after hid_pre_reset() has already called
    hid_cease_io() because that uses del_timer(), not del_timer_sync()

    Signed-off-by: Oliver Neukum
    Signed-off-by: Jiri Kosina

    Oliver Neukum
     

08 Oct, 2011

1 commit

  • * pm-runtime:
    PM / Tracing: build rpm-traces.c only if CONFIG_PM_RUNTIME is set
    PM / Runtime: Replace dev_dbg() with trace_rpm_*()
    PM / Runtime: Introduce trace points for tracing rpm_* functions
    PM / Runtime: Don't run callbacks under lock for power.irq_safe set
    USB: Add wakeup info to debugging messages
    PM / Runtime: pm_runtime_idle() can be called in atomic context
    PM / Runtime: Add macro to test for runtime PM events
    PM / Runtime: Add might_sleep() to runtime PM functions

    Rafael J. Wysocki
     

27 Sep, 2011

1 commit

  • Smatch has a new check for Rosenberg type information leaks where
    structs are copied to the user with uninitialized stack data in them.

    In this case, the hiddev_devinfo struct has a two byte hole.

    struct hiddev_devinfo {
    __u32 bustype; /* 0 4 */
    __u32 busnum; /* 4 4 */
    __u32 devnum; /* 8 4 */
    __u32 ifnum; /* 12 4 */
    __s16 vendor; /* 16 2 */
    __s16 product; /* 18 2 */
    __s16 version; /* 20 2 */

    /* XXX 2 bytes hole, try to pack */

    __u32 num_applications; /* 24 4 */

    Signed-off-by: Dan Carpenter
    Signed-off-by: Jiri Kosina

    Dan Carpenter
     

25 Aug, 2011

1 commit


23 Aug, 2011

1 commit

  • Patch to add SiGma Micro-based keyboards (1c4f:0002) to hid-quirks.

    These keyboards dont seem to allow the records to be initialized, and hence a
    timeout occurs when the usbhid driver attempts to initialize them. The patch
    just adds the signature for these keyboards to the hid-quirks list with the
    setting HID_QUIRK_NO_INIT_REPORTS. This removes the 5-10 second wait for the
    timeout to occur.

    Signed-off-by: Jeremiah Matthey
    Signed-off-by: Jiri Kosina

    Jeremiah Matthey
     

20 Aug, 2011

1 commit

  • This patch (as1482) adds a macro for testing whether or not a
    pm_message value represents an autosuspend or autoresume (i.e., a
    runtime PM) event. Encapsulating this notion seems preferable to
    open-coding the test all over the place.

    Signed-off-by: Alan Stern
    Acked-by: Greg Kroah-Hartman
    Signed-off-by: Rafael J. Wysocki

    Alan Stern
     

16 Aug, 2011

1 commit


23 Jul, 2011

1 commit


07 Jun, 2011

1 commit

  • Unfortunately, the device seems to have the same Vendor ID and Product ID
    as YUREX leg-shakes sensors, and the commit 6bc235a2e2 ("USB: add driver
    for Meywa-Denki & Kayac YUREX") added the ID to hid_ignore_list.

    I believe that we can distinguish YUREX and the Wireless Presenter by
    device type. The patch below makes the driver ignore only YUREX
    (bInterfaceProtocol==0), and recognize Wireless Presenter
    (bInterfaceProtocol is keyboard or mouse) as generic HID. (I don't have
    the Wireless Presenter, so not yet ested.)

    ** YUREX lsusb information:
    Bus 002 Device 007: ID 0c45:1010 Microdia
    Device Descriptor:
    bLength 18
    bDescriptorType 1
    bcdUSB 1.10
    bDeviceClass 0 (Defined at Interface level)
    bDeviceSubClass 0
    bDeviceProtocol 0
    bMaxPacketSize0 8
    idVendor 0x0c45 Microdia
    idProduct 0x1010
    bcdDevice 0.03
    iManufacturer 1 JESS
    iProduct 2 YUREX
    iSerial 3 10000269
    bNumConfigurations 1
    Configuration Descriptor:
    bLength 9
    bDescriptorType 2
    wTotalLength 34
    bNumInterfaces 1
    bConfigurationValue 1
    iConfiguration 0
    bmAttributes 0xa0
    (Bus Powered)
    Remote Wakeup
    MaxPower 100mA
    Interface Descriptor:
    bLength 9
    bDescriptorType 4
    bInterfaceNumber 0
    bAlternateSetting 0
    bNumEndpoints 1
    bInterfaceClass 3 Human Interface Device
    bInterfaceSubClass 1 Boot Interface Subclass
    bInterfaceProtocol 0 None
    iInterface 0
    HID Device Descriptor:
    bLength 9
    bDescriptorType 33
    bcdHID 1.10
    bCountryCode 0 Not supported
    bNumDescriptors 1
    bDescriptorType 34 Report
    wDescriptorLength 31
    Report Descriptors:
    ** UNAVAILABLE **
    Endpoint Descriptor:
    bLength 7
    bDescriptorType 5
    bEndpointAddress 0x81 EP 1 IN
    bmAttributes 3
    Transfer Type Interrupt
    Synch Type None
    Usage Type Data
    wMaxPacketSize 0x0008 1x 8 bytes
    bInterval 10
    Device Status: 0x0002
    (Bus Powered)
    Remote Wakeup Enabled

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

    Signed-off-by: Tomoki Sekiyama
    Cc: Greg KH
    Cc: "Rafael J. Wysocki"
    Cc: Maciej Rutecki
    Reported-by: Thomas B?chler
    Tested-by: Thomas B?chler
    Signed-off-by: Andrew Morton
    Signed-off-by: Jiri Kosina

    Tomoki Sekiyama
     

26 May, 2011

1 commit


24 May, 2011

2 commits

  • Add 5543:0064 UC-Logic Technology Corp. Aiptek HyperPen 10000U to quirks with
    HID_QUIRK_MULTI_INPUT.

    Originally the device is reporting the x,y coordinates on Z and RX. By adding
    this quirk, there will be two kernel devices. The first one is muted and the
    second device will report coordinates on X and Y.

    Signed-off-by: Jimmy Hon
    Signed-off-by: Jiri Kosina

    Jimmy Hon
     
  • Commit 6cb4b040795 ("HID: hiddev: fix race between hiddev_disconnect
    and hiddev_release") made it possible to access hiddev (for unlocking
    the existance mutex) once hiddev has been kfreed.

    Change the order so that this can not happen (always unlock the mutex first,
    it is needed only to protect access to ->exist and ->open).

    Signed-off-by: Jiri Kosina

    Jiri Kosina
     

23 May, 2011

1 commit


20 May, 2011

1 commit

  • When hiddev_disconnect() runs with chardev open, it will proceed with
    usbhid_close(). When userspace in parallel runs the hiddev_release(),
    it sees !hiddev->exists (as it has been already set so by
    hiddev_disconnect()) and kfrees hiddev while hiddev_disconnect() hasn't
    finished yet.

    Serialize the access to hiddev->exists and hiddev->open by existancelock.

    Reported-by: mike-@cinci.rr.com
    Signed-off-by: Jiri Kosina

    Jiri Kosina
     

18 May, 2011

2 commits


29 Apr, 2011

1 commit


26 Apr, 2011

1 commit


06 Apr, 2011

1 commit


27 Mar, 2011

1 commit


19 Mar, 2011

1 commit

  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid: (48 commits)
    HID: add support for Logitech Driving Force Pro wheel
    HID: hid-ortek: remove spurious reference
    HID: add support for Ortek PKB-1700
    HID: roccat-koneplus: vorrect mode of sysfs attr 'sensor'
    HID: hid-ntrig: init settle and mode check
    HID: merge hid-egalax into hid-multitouch
    HID: hid-multitouch: Send events per slot if CONTACTCOUNT is missing
    HID: ntrig remove if and drop an indent
    HID: ACRUX - activate the device immediately after binding
    HID: ntrig: apply NO_INIT_REPORTS quirk
    HID: hid-magicmouse: Correct touch orientation direction
    HID: ntrig don't dereference unclaimed hidinput
    HID: Do not create input devices for feature reports
    HID: bt hidp: send Output reports using SET_REPORT on the Control channel
    HID: hid-sony.c: Fix sending Output reports to the Sixaxis
    HID: add support for Keytouch IEC 60945
    HID: Add HID Report Descriptor to sysfs
    HID: add IRTOUCH infrared USB to hid_have_special_driver
    HID: kernel oops in out_cleanup in function hidinput_connect
    HID: Add teletext/color keys - gyration remote - EU version (GYAR3101CKDE)
    ...

    Linus Torvalds
     

11 Feb, 2011

1 commit

  • Per the HID Specification, Feature reports must be sent and received on
    the Configuration endpoint (EP 0) through the Set_Report/Get_Report
    interfaces. This patch adds two ioctls to hidraw to set and get feature
    reports to and from the device. Modifications were made to hidraw and
    usbhid.

    New hidraw ioctls:
    HIDIOCSFEATURE - Perform a Set_Report transfer of a Feature report.
    HIDIOCGFEATURE - Perform a Get_Report transfer of a Feature report.

    Signed-off-by: Alan Ott
    Signed-off-by: Antonio Ospite
    Signed-off-by: Jiri Kosina

    Alan Ott
     

21 Jan, 2011

1 commit

  • The meaning of CONFIG_EMBEDDED has long since been obsoleted; the option
    is used to configure any non-standard kernel with a much larger scope than
    only small devices.

    This patch renames the option to CONFIG_EXPERT in init/Kconfig and fixes
    references to the option throughout the kernel. A new CONFIG_EMBEDDED
    option is added that automatically selects CONFIG_EXPERT when enabled and
    can be used in the future to isolate options that should only be
    considered for embedded systems (RISC architectures, SLOB, etc).

    Calling the option "EXPERT" more accurately represents its intention: only
    expert users who understand the impact of the configuration changes they
    are making should enable it.

    Reviewed-by: Ingo Molnar
    Acked-by: David Woodhouse
    Signed-off-by: David Rientjes
    Cc: Greg KH
    Cc: "David S. Miller"
    Cc: Jens Axboe
    Cc: Arnd Bergmann
    Cc: Robin Holt
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    David Rientjes
     

14 Jan, 2011

1 commit

  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid:
    HID: hid-multitouch: minor fixes based on additional review
    HID: Switch turbox/mosart touchscreen to hid-mosart
    HID: add Add Cando touch screen 10.1-inch product id
    HID: hid-mulitouch: add support for the 'Sensing Win7-TwoFinger'
    HID: hid-multitouch: add support for Cypress TrueTouch panels
    HID: hid-multitouch: support for PixCir-based panels
    HID: set HID_MAX_FIELD at 128
    HID: add feature_mapping callback

    Linus Torvalds