09 Jul, 2007

8 commits

  • Jiri Kosina
     
  • There are some devices (for example Dell Multimedia Keyboard SK-8135) that have
    a volume control knob which generates relative events instead of absolute.
    hid-input maps them to ABS_VOLUME. HUT pages don't restrict volume to absolute
    values.

    Adding REL_VOLUME doesn't seem feasible, nothing knows how to handle it. This
    patch translates relative ABS_VOLUME events into appropriate number of series
    of VOLUME_UP or VOLUME_DOWN events respectively, so that userspace sees the
    correct values in the end.

    kernel.org bugzilla 5233

    Reported-by: Jochen Eisinger
    Signed-off-by: Jiri Kosina

    Jiri Kosina
     
  • This keyboard has wireless mouse which has left, middle, right buttons and
    2-dimensional scrolling wheel. Unfornetuly, this wheel reports side scrolling
    events and 11 or 12 button events at the same time.

    I've wrote a patch to fix this mapping. I'm not sure if this mapping is proper
    for buttons, because , for example, there is no entry for "burn cd" in input.h.

    The patch also supress 11 and 12 button events from mouse when you scroll the
    wheel left and right. With this patch, only side scrolling events are
    reported. (This mouse has only 4 buttons and 2D wheel. There is no such
    buttons like 11 and 12.)

    Signed-off-by: Jiri Kosina

    Ryo Dairiki
     
  • Petalynx Maxter remote control [1] 0x18b1/0x0037 emits 0xfa and 0xfc from
    consumer page (reserved in HUT 1.12) for back and more keys. It also emits
    a few usages from LOGIVENDOR page, which need adding.

    Also, this device has broken report descriptor - the reported maximum is too
    low - it doesn't contain the range for 'back' and 'more' keys, so we need to
    bump it up before the report descriptor is being parsed.

    Besides all this, it also requires NOGET quirk.

    This patch does so.

    [1] http://www.elmak.pl/index.php?option=com_phpshop&page=shop.browse&category_id=14&ext=opis&lang=en

    Signed-off-by: Jiri Kosina

    Jiri Kosina
     
  • When comparing usb vs ps2 / testing the keycodes generated for the easy access
    keys on my trust (microsoft compatible) keyboard. I noticed the search key
    generated the keycode for find when connected through USB. This lead me to
    check the consumer page mappings in hid-input.c . And it turns out the the
    mapping for ID 0x221 deviates from the HUT standard document:
    http://www.usb.org/developers/devclass_docs/Hut1_12.pdf

    Currently it is incorrectly mapped to find, whereas it should be mapped to
    search. I also added missing bindings for ID 0x21f, the real find and for
    0x222, goto.

    Signed-off-by: Hans de Goede
    Signed-off-by: Jiri Kosina

    Hans de Goede
     
  • Microsoft SideWinder GameVoice driver is a trivial device with a few buttons
    (0x09 HID usage) and an audio connector, which just forwards the audio input
    into oridinary sound card present in the computer.

    Despite this fact, the only interface of this device reports itself as a
    Telephony/Headset type of HID device. This is apparently incorrect - the device
    itself doesn't provide any audio/telephony functionality. This is achieved in
    userland application which only needs to receive the button events from the HID
    driver.

    This patch establishes a new quirk which forces hid-input to claim a device it
    will otherwise leave untouched.

    Reported-by: Tomas Carnecky
    Signed-off-by: Jiri Kosina

    Jiri Kosina
     
  • Chicony KU-0418 (aka Saitek PZ08AU gaming keyboard) has a separate
    "tactical pad" with 11 non-functional buttons - they generate usage
    codes from 0xff00 (MSVENDOR) usage page. Special case handling for
    this keyboard added, so no later clash with MSVENDOR mappings is going
    to occur.

    Pointed out in bugzilla #7352

    Signed-off-by: Jiri Kosina

    Jiri Kosina
     
  • There have been many reports recently about broken HID devices, the
    diagnosis of which required users to recompile their kernels in order
    to be able to provide debugging output needed for coding a quirk for
    a particular device.

    This patch makes CONFIG_HID_DEBUG default y if !EMBEDDED and makes it
    possible to control debugging output produced by HID code by supplying
    'debug=1' module parameter.

    Signed-off-by: Jiri Kosina

    Jiri Kosina
     

09 May, 2007

3 commits


11 Apr, 2007

2 commits

  • 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
     
  • Belkin Wireless keyboard, model number F8E849KYBD, USB ID 1020:0006,
    FCCID: K7SF8E849KYBD emits usages 0x03a-0x03c from Consumer usage page.
    As of HUT v1.12, these are marked as reserved. If any conflict arises
    later, the mapping could be made conditional on VID/PID.

    Signed-off-by: Chris Clayton
    Signed-off-by: Jiri Kosina

    Chris Clayton
     

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
     

05 Feb, 2007

4 commits

  • CONFIG_INPUT_DEBUG is non-existent option, so remove anything depending
    on it.

    Also, as we have new CONFIG_HID_DEBUG, this should be used on places
    where ifdef DEBUG was used before.

    Suggested by Adrian Bunk.

    Signed-off-by: Jiri Kosina

    Jiri Kosina
     
  • 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 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
     

26 Jan, 2007

1 commit


22 Jan, 2007

2 commits

  • There is no reason for generic hid-input.c to include usb-specific
    input.h.

    As a sideeffect, this also fixes warning of redefinition of dbg()
    macro, when hid-input.c is compiled with DEBUG (as there is a clash
    between dbg() from hid.h and usb/input.h).

    Signed-off-by: Jiri Kosina

    Jiri Kosina
     
  • This change introduces a mapping for LED indicators between the HID
    specification and the Linux input subsystem. The previous code properly
    mapped the LEDs relevant for Keyboards, but garbeled the remaining ones.
    With this change all LED enums from the input system get mapped to more
    or less equivalent LED numbers from the HID specification.

    This patch also ensures that the unused bits in a HID report to the
    device are zeroed out. This makes the 3Dconnexion SpaceNavigator fully
    usable with the linux input system.

    Signed-off-by: Simon Budig
    Signed-off-by: Jiri Kosina

    Simon Budig
     

08 Jan, 2007

1 commit


14 Dec, 2006

1 commit

  • On USB keyboards lots of hot/internet keys are not working. This patch
    adds support for a number of keys from the USB HID Usage Table
    (http://www.usb.org/developers/devclass_docs/Hut1_12.pdf).

    It also adds several new key codes. Most of them are used on real world
    keyboards I know. I added some others (KEY_+ EDITOR, GRAPHICSEDITOR, DATABASE,
    NEWS, VOICEMAIL, VIDEOPHONE) to avoid "holes".

    I also added KEY_ZOOMRESET as it is possible to have a inet keyboard and a
    remote control in parallel and it makes sense to have them behave differently.

    Signed-off-by: Florian Festi
    Signed-off-by: Jiri Kosina

    Florian Festi
     

09 Dec, 2006

4 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
     
  • - '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