09 May, 2007

1 commit

  • Certain versions of Cypress USB barcode readers (this problem is known to
    happen at least with PIDs 0xde61 and 0xde64) have report descriptor which
    has swapped usage min and usage max tag. This results in HID parser failing
    for report descriptor of these devices, as it (wrongly) requires allocating
    more usages than HID_MAX_USAGES.

    Solve this by walking through the report descriptor for such devices, and swap
    the usage min and usage max items (and their values) to be in proper order.

    Reported-by: Bret Towe
    Signed-off-by: Jiri Kosina

    Jiri Kosina
     

19 Apr, 2007

3 commits


11 Apr, 2007

2 commits

  • On Dell W7658 keyboard, when BIOS sets NumLock LED on, it survives the
    takeover by kernel and thus confuses users.

    Eating of an increasibly scarce quirk bit is unfortunate. We do it for safety,
    given the history of nervous input devices which crash if anything unusual
    happens.

    Signed-off-by: Pete Zaitcev
    Signed-off-by: Jiri Kosina

    Pete Zaitcev
     
  • Logitech MX3000 contains report descriptor which doesn't cover usages
    above 0x28c, but emits such usages. Report descriptor needs fixing
    in the very same way as with receivers shipped with S510 keyboards.

    This patch also adds a few mappings for multimedia keys that S510 didn't
    emit.

    Signed-off-by: Jiri Kosina

    Jiri Kosina
     

01 Mar, 2007

2 commits

  • Dongle shipped with Logitech DiNovo Edge (0x046d/0xc714) behaves in a weird
    non-standard way - it contains multiple reports with the same usage, which
    results in remapping of GenericDesktop.X and GenericDesktop.Y usages to
    GenericDesktop.Z and GenericDesktop.RX respectively, thus rendering the
    touchwheel unusable.

    The commit 35068976916fdef82d6e69ef1f8c9a1c47732759 solved this
    in a way that it didn't remap certain usages. This however breaks
    (at least) middle button of Logic3 / SpectraVideo (0x1267/0x0210),
    which in contrary requires the remapping.

    To make both of the harware work, allow remapping of these usages again,
    and introduce a quirk for Logitech DiNovo Edge "touchwheel" instead - we
    disable remapping for key, abs and rel events only for this hardware.

    Signed-off-by: Jiri Kosina

    Jiri Kosina
     
  • This patch makes extra keys (F1-F12 in special mode, zooming, rotate, shuffle)
    on Logitech S510 keyboard work.

    Logitech S510 keyboard sends in report no. 3 keys which are far above the
    logical maximum described in descriptor for given report.

    This patch introduces a HID quirk for this wireless USB receiver/keyboard
    in order to fix the report descriptor before it's being parsed - the logical
    maximum and the number of usages is bumped up to 0x104d). The values are in the
    "Reserved" area of consumer HUT, so HID_MAX_USAGE had to be changed too.

    In addition to proper extracting of the values from report descriptor, proper
    HID-input mapping is introduced for them.

    Signed-off-by: Jiri Kosina

    Jiri Kosina
     

08 Feb, 2007

1 commit

  • Add the USB HID quirk HID_QUIRK_SONY_PS3_CONTROLLER. This sends an
    HID_REQ_GET_REPORT to the the PS3 controller to put the device into
    'operational mode'.

    Signed-off-by: Geoff Levand
    Cc: David Brownell
    Signed-off-by: Greg Kroah-Hartman

    Geoff Levand
     

05 Feb, 2007

5 commits

  • Some HID devices by Apple have both keyboard and mouse interfaces; the
    keyboard interface is handled by usbhid, but the mouse (really
    touchpad) interface must be handled by the separate 'appletouch'
    driver. Using HID_QUIRK_IGNORE will make hiddev ignore both
    interfaces, therefore a new quirk flag to ignore only the mouse
    interface is required.

    Signed-off-by: Soeren Sonnenburg
    Signed-off-by: Sergey Vlasov
    Signed-off-by: Jiri Kosina

    Soeren Sonnenburg
     
  • hidinput_{open,close}() functions do not belong to usbhid, but
    to the generic HID layer. Move them, and fix hooks in struct
    hid_device, so that now the callbacks are done to transport-specific
    _open() functions, but not input_open() functions.

    Signed-off-by: Jiri Kosina

    Jiri Kosina
     
  • hid-debug.h contains a lot of code, and should not therefore
    be a header.

    This patch moves the code to generic hid layer as .c source, and
    introduces CONFIG_HID_DEBUG to conditionally compile it, instead
    of playing with #define DEBUG and including hid-debug.h.

    Signed-off-by: Jiri Kosina

    Jiri Kosina
     
  • Add a force feedback driver for PantherLord USB/PS2 2in1 Adapter,
    0810:0001. The device identifies itself as "Twin USB Joystick".

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

    Anssi Hannula
     
  • Add new quirk HID_QUIRK_SKIP_OUTPUT_REPORTS to skip output reports
    when enumerating reports on a hid-input device. Add this quirk and
    HID_QUIRK_MULTI_INPUT to 0810:0001.

    PantherLord Twin USB Joystick, 0810:0001 has separate input reports
    for 2 distinct game controllers in the same interface, so it needs
    HID_QUIRK_MULTI_INPUT. However, the device also contains one output
    report per controller which is used to control the force feedback
    function, and we do not want those to appear as separate input
    devices as well. The simplest approach seems to be to add a quirk to
    skip output reports on 0810:0001, and allow the force feedback
    driver to handle those.

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

    Anssi Hannula
     

30 Jan, 2007

1 commit

  • The apple powerbook people are used to switch the pb_fnmode
    setting at runtime through writing to sysfs, altering the
    module parameter value. This was broken for them in 2.6.20-rc1
    when generic HID layer was introduced, as the pb_fnmode flag
    was made per-hiddevice, instead of global variable.

    This patch moves the pb_fnmode module parameter from usbhid module
    to hid module, but apart from that retains backward compatibility
    with respect to changing the mode through sysfs.

    Signed-off-by: Jiri Kosina

    Jiri Kosina
     

09 Dec, 2006

6 commits

  • pb_fnmode parameter has to be passed to usbhid, both for compatibility reasons
    and also because it logically belongs there.

    Also removes empty hid-input.c file in drivers/usb/input.

    Signed-off-by: Jiri Kosina
    Signed-off-by: Marcel Holtmann
    Cc: Dmitry Torokhov
    Signed-off-by: Greg Kroah-Hartman

    Jiri Kosina
     
  • hid_input_report() was needlessly USB-specific in USB HID. This patch
    makes the function independent of HID implementation and fixes all
    the current users. Bluetooth patches comply with this prototype.

    Signed-off-by: Jiri Kosina
    Signed-off-by: Marcel Holtmann
    Cc: Dmitry Torokhov
    Signed-off-by: Greg Kroah-Hartman

    Jiri Kosina
     
  • - hiddev is USB-only (agreed with Marcel Holtmann that Bluetooth currently
    doesn't need it, and future planned interface (rawhid) will be more flexible
    and usable)
    - both HID and USB-hid can be now compiled as modules (wasn't possible before
    hiddev was fully separated from generic HID layer)

    Signed-off-by: Jiri Kosina
    Signed-off-by: Marcel Holtmann
    Cc: Dmitry Torokhov
    Signed-off-by: Greg Kroah-Hartman

    Jiri Kosina
     
  • - 'dev' in struct hid_device changed from struct usb_device to
    struct device and fixed all the users
    - renamed functions which are part of USB HID API from 'hid_*' to
    'usbhid_*'
    - force feedback initialization moved from common part into USB-specific
    driver
    - added usbhid.h header for USB HID API users
    - removed USB-specific fields from struct hid_device and moved them
    to new usbhid_device, which is pointed to by hid_device->driver_data
    - fixed all USB users to use this new structure

    Signed-off-by: Jiri Kosina
    Signed-off-by: Marcel Holtmann
    Cc: Dmitry Torokhov
    Signed-off-by: Greg Kroah-Hartman

    Jiri Kosina
     
  • - fixed generic API (added neccessary EXPORT_SYMBOL, fixed hid.h to provide correct
    prototypes)
    - extended hid_device with open/close/event function pointers to driver-specific
    functions
    - added driver specific driver_data to hid_device

    Signed-off-by: Jiri Kosina
    Signed-off-by: Marcel Holtmann
    Cc: Dmitry Torokhov
    Signed-off-by: Greg Kroah-Hartman

    Jiri Kosina
     
  • The "big main" split of USB HID code into generic HID code and
    USB-transport specific HID handling.

    Signed-off-by: Jiri Kosina
    Signed-off-by: Marcel Holtmann
    Cc: Dmitry Torokhov
    Signed-off-by: Greg Kroah-Hartman

    Jiri Kosina