17 Feb, 2009

3 commits

  • The devices handled by hid-tmff and hid-zpff were added in the
    hid_ignore_list[] instead of hid_blacklist[] in hid-core.c, thus
    disabling them completely.

    hid_ignore_list[] causes hid layer to skip the device, while
    hid_blacklist[] indicates there is a specific driver in hid bus.

    Re-enable the devices by moving them to the correct list.

    Signed-off-by: Anssi Hannula
    Signed-off-by: Jiri Kosina

    Anssi Hannula
     
  • We can't return immediately because lock_kernel() is held.

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

    Dan Carpenter
     
  • For quite some time users with various UPSes from Powercom were forced to play
    magic with bind/unbind in /sys in order to be able to see the UPSes. The
    beasts does not work as HID devices, even if claims to do so. cypress_m8
    driver works with the devices instead, creating a normal serial port with which
    normal UPS controlling software works.

    The manufacturer confirmed the upcoming models with proper HID support will
    have different device IDs. In any way, it's wrong to have two completely
    different modules for one device in kernel.

    Blacklist the device in HID (add it to hid_ignore_list) to stop this mess,
    finally.

    Signed-off-By: Michael Tokarev
    Signed-off-by: Jiri Kosina

    Michael Tokarev
     

29 Jan, 2009

4 commits


08 Jan, 2009

3 commits

  • * git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb-2.6: (123 commits)
    wimax/i2400m: add CREDITS and MAINTAINERS entries
    wimax: export linux/wimax.h and linux/wimax/i2400m.h with headers_install
    i2400m: Makefile and Kconfig
    i2400m/SDIO: TX and RX path backends
    i2400m/SDIO: firmware upload backend
    i2400m/SDIO: probe/disconnect, dev init/shutdown and reset backends
    i2400m/SDIO: header for the SDIO subdriver
    i2400m/USB: TX and RX path backends
    i2400m/USB: firmware upload backend
    i2400m/USB: probe/disconnect, dev init/shutdown and reset backends
    i2400m/USB: header for the USB bus driver
    i2400m: debugfs controls
    i2400m: various functions for device management
    i2400m: RX and TX data/control paths
    i2400m: firmware loading and bootrom initialization
    i2400m: linkage to the networking stack
    i2400m: Generic probe/disconnect, reset and message passing
    i2400m: host/device procotol and core driver definitions
    i2400m: documentation and instructions for usage
    wimax: Makefile, Kconfig and docbook linkage for the stack
    ...

    Linus Torvalds
     
  • Commit 079034073fa ("HID: hiddev cleanup -- handle all error conditions
    properly") by mistake removed proper initialization of hid->hiddev pointer
    in hiddev_connect() in case usb_register_dev() succeeds for the hiddev node.
    Put it properly back in place.

    Reported-and-tested-by: Gabriel C
    Signed-off-by: Jiri Kosina
    Signed-off-by: Linus Torvalds

    Jiri Kosina
     
  • This patch (as1161) changes the interface to
    usb_lock_device_for_reset(). The existing interface is apparently not
    very clear, judging from the fact that several of its callers don't
    use it correctly. The new interface always returns 0 for success and
    it always requires the caller to unlock the device afterward.

    The new routine will not return immediately if it is called while the
    driver's probe method is running. Instead it will wait until the
    probe is over and the device has been unlocked. This shouldn't cause
    any problems; I don't know of any cases where drivers call
    usb_lock_device_for_reset() during probe.

    Signed-off-by: Alan Stern
    Cc: Pete Zaitcev
    Signed-off-by: Greg Kroah-Hartman

    Alan Stern
     

04 Jan, 2009

22 commits

  • Conflicts:

    drivers/hid/hid-ids.h

    Jiri Kosina
     
  • sony_set_operational() only propagates return value from
    usb_control_msg(), which returns negative on error and number
    of transferred bytes otherwise.

    Reported-by: Marcin Tolysz
    Signed-off-by: Jiri Kosina

    Jiri Kosina
     
  • The hidraw subsystem has a bug that prevents the close syscall from ever
    reaching the low level driver, leading to a resource leak. Fix by replacing
    postdecrement with predecrement.

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

    Oliver Neukum
     
  • The Genius PenSketch 12x9 tablet has a puck (labeled a
    "Tablet Mouse") in addition to a pen. Without registering a quirk
    the tablet appears to be a single input device that reports the
    wrong axis information in /proc/bus/input/devices, and sends
    incorrect events (e.g. ABS_Z instead of ABS_Y). This information
    confuses the X evdev driver and makes the device impossible to
    use.

    The quirk fixes events and splits the device into multiple input
    event devices so that at least the puck is useful.

    Signed-off-by: Matt Helsley
    Signed-off-by: Jiri Kosina

    Matt Helsley
     
  • This device is already handled by radio-si470x driver, and we therefore
    want usbhid to ignore it. Patch places usb ids of that device in
    ignore section of hid-core.c

    Signed-off-by: Alexey Klimov
    Signed-off-by: Andrew Morton
    Signed-off-by: Jiri Kosina

    Alexey Klimov
     
  • Make default setting for TopSpeed driver compliant with the defaults
    of the other specialized HID drivers.

    Signed-off-by: Jiri Kosina

    Jiri Kosina
     
  • I recently picked up a Cyberlink branded remote control produced
    by TopSeed Tech Corp. Alas, it appears that this device is using
    non-standard mappings for some of it's keys (Usage page 0xffbc).

    Signed-off-by: Lev Babiev
    Signed-off-by: Jiri Kosina

    Lev Babiev
     
  • The usbmouse and usbkbd modules are not supposed to be used with regular USB
    mice and keyboards. Make them depend on EMBEDDED to prevent them from being
    built and loaded on non-EMBEDDED configs.

    Signed-off-by: Parag Warudkar
    Signed-off-by: Jiri Kosina

    Parag Warudkar
     
  • This is a cleanup of hiddev and fixes the following issues:

    - thread safety by locking in read & ioctl, introducing a per device mutex
    - race between ioctl and disconnect, introducing a flag and locking
    in form of a per low level device mutex
    - race between open and other methods, making sure only successfully
    opened devices are put on the list, changing order of events
    - range checking both upper and lower limits of the minor range
    - make sure further calls to open fail for unplugged devices even if
    the device still has opened files
    - error checking for low level open
    - possible loss of wakeup events, using standard waiting macros
    - race in initialisation by moving registration after full initialisation

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

    Oliver Neukum
     
  • I have implemented Force Feedback driver for another "GreeAsia" based device
    (0e8f:0012 "GreenAsia Inc. USB Joystick"). The functionality was tested with
    MANTA Warior MM816 and SpeedLink Strike2 SL-6635 and fftest software -
    everything seems to work right.

    Signed-off-by: Lukasz Lubojanski
    Signed-off-by: Jiri Kosina

    Lukasz Lubojanski
     
  • Fix the obnoxious "default y" for all the "special" HID code, which forces folk
    with EMBEDDED defined to manually override that inappropriate default for
    almost 20 choices. The general policy is against "default y"; it should apply
    here too.

    Signed-off-by: David Brownell
    Signed-off-by: Jiri Kosina

    David Brownell
     
  • We need to properly set parent of the hidraw device (which is the
    corresponding physical device itself) in order to hidraw devices not
    end up under virtual device tree.

    Reported-by: Kay Sievers
    Signed-off-by: Jiri Kosina

    Jiri Kosina
     
  • Allow adding new devices to the hid drivers on the fly without
    a need of kernel recompilation.

    Now, one can test a driver e.g. by:
    echo 0003:045E:00F0.0003 > ../generic-usb/unbind
    echo 0003 045E 00F0 > new_id
    from some driver subdir.

    Signed-off-by: Jiri Slaby
    Signed-off-by: Jiri Kosina

    Jiri Slaby
     
  • We might sleep, so no problem to use GFP_KERNEL.

    While at it bring the function to coding style.

    Signed-off-by: Jiri Slaby
    Signed-off-by: Jiri Kosina

    Jiri Slaby
     
  • Use usb_endpoint_xfer_int() instead of direct use of constants.

    Signed-off-by: Jiri Slaby
    Signed-off-by: Jiri Kosina

    Jiri Slaby
     
  • Move usbhid specific flags from global hid.h into local usbhid.h.

    Signed-off-by: Jiri Slaby
    Signed-off-by: Jiri Kosina

    Jiri Slaby
     
  • Added quirks for the N-Trig digitizer.

    Signed-off-by: Rafi Rubin
    Signed-off-by: Jiri Kosina

    Rafi Rubin
     
  • The hiddev interface provides ioctl() calls which can be used
    to obtain phys and raw name of the underlying device.

    Add the corresponding support also into hidraw.

    Signed-off-by: Jiri Kosina

    Jiri Kosina
     
  • This patch is part of a larger patch series which will remove
    the "char bus_id[20]" name string from struct device. The device
    name is managed in the kobject anyway, and without any size
    limitation, and just needlessly copied into "struct device".

    To set and read the device name dev_name(dev) and dev_set_name(dev)
    must be used. If your code uses static kobjects, which it shouldn't
    do, "const char *init_name" can be used to statically provide the
    name the registered device should have. At registration time, the
    init_name field is cleared, to enforce the use of dev_name(dev) to
    access the device name at a later time.

    We need to get rid of all occurrences of bus_id in the entire tree
    to be able to enable the new interface. Please apply this patch,
    and possibly convert any remaining remaining occurrences of bus_id.

    We want to submit a patch to -next, which will remove bus_id from
    "struct device", to find the remaining pieces to convert, and finally
    switch over to the new api, which will remove the 20 bytes array
    and does no longer have a size limitation.

    CC: Jiri Kosina
    Acked-by: Greg Kroah-Hartman
    Signed-off-by: Kay Sievers
    Signed-off-by: Jiri Kosina

    Kay Sievers
     
  • This patch (as1146c) makes usbhid automatically call usbhid_set_leds()
    for any device that supports the keyboard boot protocol.

    In theory this should be perfectly safe. BIOSes send the LED output
    report as part of their normal device initialization, so any keyboard
    device supporting the boot protocol has to be able to handle it.

    As a side effect, the hid-dell and hid-bright drivers are no longer
    needed, and the Logitech keyboard driver can be removed from hid-lg.

    CC: Mauro Carvalho Chehab
    Signed-off-by: Alan Stern
    Signed-off-by: Jiri Kosina

    Alan Stern
     
  • When computing the maximal buffer size needed, we must take into
    account that not only input reports can be numbered.

    Pointed out in bugzilla #10467

    Signed-off-by: Jiri Kosina

    Jiri Kosina
     
  • The mouse interface on unibody macbooks is going to be handled by
    bcm59743 driver in 2.6.29.

    Reported-by: Henrik Rydberg
    Signed-off-by: Jiri Kosina

    Jiri Kosina
     

28 Nov, 2008

1 commit

  • While parsing 'hid_blacklist' in the apple alu wireless keyboard is not found.
    This happens because in the blacklist it is declared with HID_USB_DEVICE
    although the keyboards are really bluetooth devices. The same holds for
    'apple_devices' list.

    This patch fixes it by changing HID_USB_DEVICE to HID_BLUETOOTH_DEVICE in those
    two lists.

    Signed-off-by: Jan Scholz
    Signed-off-by: Jiri Kosina

    Jan Scholz
     

23 Nov, 2008

1 commit

  • It causes recursive locking warning and is unneeded after
    introduction of STARTED flag.

    * Resume vs. stop is effectively solved by DISCONNECT flag.
    * No problem in suspend vs. start -- urb is submitted even after open
    which is possible after connect which is called after start.
    * Resume vs. start solved by STARTED flag.
    * Suspend vs. stop -- no problem in killing urb and timer twice.

    Reported-by: Alan Stern
    Signed-off-by: Jiri Slaby
    Signed-off-by: Jiri Kosina

    Jiri Slaby
     

20 Nov, 2008

2 commits

  • 0x0810/0x0002 needs the very same handling as 0x0001.

    Reported-by: Steve Conklin
    Signed-off-by: Jiri Kosina

    Jiri Kosina
     
  • In commit a96d6ef34, the mouse interfaces on the unibody macbooks were
    put into hid mouse ignore list. This was a little bit too premature
    though, as the corresponding bcm5974 changes are scheduled for 2.6.29.

    Remove these devices from the ignore list for now, in order to provide at
    least basic functionality with the HID driver.

    Will be reintroduced in 2.6.29

    Reported-by: Henrik Rydberg
    Signed-off-by: Jiri Kosina

    Jiri Kosina
     

17 Nov, 2008

1 commit


14 Nov, 2008

1 commit

  • Some devices have no input interrupt endpoint. These won't be handled
    by usbhid, but currently they are not refused and reside on hid bus.

    Perform this checking earlier so that we refuse to control such
    a device early enough (and not pass it to the hid bus at all).

    Signed-off-by: Jiri Slaby
    Signed-off-by: Jiri Kosina

    Jiri Slaby
     

13 Nov, 2008

2 commits

  • This patch fixes radio-mr800 hidqurks. Removes it from blacklist entry
    and places it in ignore entry in hid/hid-core.c

    Signed-off-by: Alexey Klimov
    Signed-off-by: Jiri Kosina

    Alexey Klimov
     
  • This patch fixes kworld fm700 usb-radio hidqurks that handled by
    radio-si470x. Removes it from blacklist entry and places it in ignore
    entry in hid/hid-core.c

    The bug went in through the V4L/DVB tree by commit 6a13378a without
    HID maintainer being involved at all.

    Signed-off-by: Alexey Klimov
    Signed-off-by: Jiri Kosina

    Alexey Klimov