15 Oct, 2007

2 commits


14 Oct, 2007

21 commits

  • Jiri Kosina
     
  • It looks like hidraw_connect() is leaking memory in case of failure.
    Also it should return -ENOMEM when kzalloc fails.

    Signed-off-by: Mariusz Kozlowski
    Signed-off-by: Jiri Kosina

    Mariusz Kozlowski
     
  • hidraw is an interface that is going to obsolete hiddev one
    day.

    Many userland applications are using libusb instead of using
    kernel-provided hiddev interface. This is caused by various
    reasons - the HID parser in kernel doesn't handle all the
    HID hardware on the planet properly, some devices might require
    its own specific quirks/drivers, etc.

    hiddev interface tries to do its best to parse all the received
    reports properly, and presents only parsed usages into userspace.
    This is however often not enough, and that's the reason why
    many userland applications just don't use hiddev at all, and
    rather use libusb to read raw USB events and process them on
    their own.

    Another drawback of hiddev is that it is USB-specific.

    hidraw interface provides userspace readers with really raw HID
    reports, no matter what the low-level transport layer is (USB/BT),
    and gives the userland applications all the freedom to process
    the HID reports in a way they wish to.

    Signed-off-by: Jiri Kosina

    Jiri Kosina
     
  • Add hook in usbhid for write() callback from hidraw. Sends the
    report to the device through control pipe.

    Signed-off-by: Jiri Kosina

    Jiri Kosina
     
  • The hiddev driver currently lacks 32bit ioctl compatibility, so
    if you're running with a 64bit kernel and 32bit userspace, it won't
    work.

    I'm pretty sure that the only thing missing is a compat_ioctl
    implementation as all structs have fixed size fields.

    With this change I can use revoco to configure my MX Revolution mouse.

    Signed-off-by: Philip Langdale
    Signed-off-by: Jiri Kosina

    Philip Langdale
     
  • GeneralTouch touchscreens are handled by usbtouchscreen driver,
    make sure HID ignores them.

    Signed-off-by: Ilya Frolov
    Signed-off-by: Dmitry Torokhov
    Signed-off-by: Jiri Kosina

    Ilya Frolov
     
  • This keyboard emits a few usages that are not handled properly by
    hid-input.

    Changed IS_MS_NEK4K macro to IS_MS_KB to reflect the addition
    of another keyboard.

    Signed-off-by: Khelben Blackstaff
    Signed-off-by: Jiri Kosina

    Khelben Blackstaff
     
  • HUT 1.12 defines Logoff usage 0x19c in Consumer page. There are
    keyboards out there emitting this usage code (for example Microsoft
    Wireless Laser Keyboard 6000). Add this key so that HID code could
    map usages to it.

    Signed-off-by: Khelben Blackstaff
    Signed-off-by: Dmitry Torokhov
    Signed-off-by: Jiri Kosina

    Khelben Blackstaff
     
  • This patch fixes the problem, that Japanese MacBook doesn't recognize some keys
    like '\'(yen, or backslash), '|'(pipe), and '_'(underscore).

    It is due to that MacBook JIS keyboard (jp106) sends wrong report descriptor.
    It saids "logical maximum = 0x65", so Keyboard.0089 is mapped to Key.Unknown,
    while it should be accepted as Key.Yen.

    Signed-off-by: Tomoya Adachi
    Signed-off-by: Jiri Kosina

    Tomoya Adachi
     
  • - added KERN_DEBUG to output lines
    - fixed preffered -> preferred typo
    - added const to char *'s

    Also, exported symbol hid_resolv_event is unused by the current
    kernel tree and perhaps should be removed.

    Signed-off-by: Joe Perches
    Signed-off-by: Jiri Kosina

    Joe Perches
     
  • Special keys 1-5 on Microsoft Ergonomic Keyboard were mistakenly
    mapped to buttons, which doesn't make a lot of sense. Fix this
    mapping to KEY_F{13,18}.

    Signed-off-by: Jiri Kosina

    Jiri Kosina
     
  • Add 0e8f:0003 into the list of devices supported by the hid-plff
    force feedback driver. These devices identify themselves as
    "GreenAsia Inc. USB Joystick " and can be either adapters or
    actual game controllers. The testing was done with a Köng Gaming
    gamepad.

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

    Anssi Hannula
     
  • Use HID_QUIRK_NOGET for the ELO TS2700 touch screen USB HID device in
    order to avoid a timeout during initialisation.

    Signed-off-by: Mike Crowe
    Signed-off-by: Jiri Kosina

    Mike Crowe
     
  • The infrared remote receiver found in the SantaRosa MacBookPro
    laptops (MacBookPro3,1) need to be forced to expose a HIDDEV
    interface (instead of HIDINPUT) so that lirc can access it using
    the 'macmini' driver.

    The patch below adds the required quirk for forcing the HIDDEV
    interface to be activated (HID_QUIRK_HIDDEV) and introduces a new
    quirk which forces the HIDINPUT interface to be ignored
    (HID_QUIRK_IGNORE_HIDINPUT).

    Note that Apple calls this receiver 'IRController4' (info taken
    from Apple's driver Info.plist). Older Mac{Book,Mini,Pro}s seem
    to all use the 'IRController1' device (USB id 05ac:8240) which
    doesn't need those quirks.

    Signed-off-by: Stelian Pop
    Signed-off-by: Jiri Kosina

    Stelian Pop
     
  • There is a separate driver cm109 for handling this device.

    Signed-off-by: Alfred E. Heggestad
    Signed-off-by: Jiri Kosina

    Alfred E. Heggestad
     
  • Current HID layer does not report usage codes to the input layer. This feature
    was previously removed, because it caused unnecessary storm of events in cases
    of positioning devices, etc.

    This patch adds reporting of usage codes as EV_MSC events only for key events.
    We issue the EV_MSC event only if the state of the key corresponding to the
    given code has changed, so that we don't report usages that are sent in every
    report even if the state hasn't changed (for example Shift/Caps Lock/...
    states as sent by various keyboards).

    This functionality is required at least by KeyTouch in order to provide
    convenient means for remapping the usage codes.

    Cc: Marvin Raaijmakers
    Signed-off-by: Jiri Kosina

    Jiri Kosina
     
  • We have to ignore all non-LED usages in output fields if the
    report descriptor of the device specifies any. If we don't do
    so, the devices which contain the same usages both in input and
    output reports with different parameters will mess things up. In
    hid-input, we currently care only for the input usages, with exception
    for LEDs. All other output usages should be properly handled by
    appropriate force-feedback driver.

    Fixes auto-calibration for Saitek Cyborg Evo Force joystick.

    Reported-by: Renato Golin
    Signed-off-by: Jiri Kosina

    Jiri Kosina
     
  • Fixes some trivial whitespace damage in hid-input.c

    Signed-off-by: Jiri Kosina

    Jiri Kosina
     
  • Rework thrustmaster force-feedback module to support devices having
    different types of force feedback effects. Add signatures of
    Thrustmaster FGT Rumble Force and Thrustmaster FGT Force Feedback
    wheels to the list of devices dupported by the module.

    Parts of the patch were lifted off a simalar patch by
    Anssi Hannula

    Signed-off-by: Dmitry Torokhov
    Signed-off-by: Jiri Kosina

    Dmitry Torokhov
     
  • Autosuspend for USB HID devices remains problematic as far as mice
    and keyboards are concerned. While I am working on a grand solution,
    here's a minimalist patch that works for those devices not continously
    in use.

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

    Oliver Neukum
     
  • This keyboard emits a few usages that are not handled properly by
    hid-input.

    The usages from MSVENDOR page are colliding with Chicony Tactical
    Pad device, so we have to distinguish in runtime. Ugly ...

    Also, the buttons 1-5 have to be handled in a non-standard way,
    as they are emitted by the keyboard in a bitfield-like fashion, but
    the field is not presented as bit-field by the keyboard. The keys can't
    be pressed simultaneously, so the handling we have is correct.

    This patch also extends hid_keyboard[] with KPLeftParenthesis and
    KPRightParenthesis as defined by Keyboard page in HUT 1.12. The
    corresponding usages are also emitted by this keyboard.

    Signed-off-by: Jiri Kosina

    Jiri Kosina
     

19 Aug, 2007

1 commit


02 Aug, 2007

6 commits


13 Jul, 2007

2 commits

  • This patch (as918) introduces a new USB driver method: reset_resume.
    It is called when a device needs to be reset as part of a resume
    procedure (whether because of a device quirk or because of the
    USB-Persist facility), thereby taking over a role formerly assigned to
    the post_reset method. As a consequence, post_reset no longer needs
    an argument indicating whether it is being called as part of a
    reset-resume. This separation of functions makes the code clearer.

    In addition, the pre_reset and post_reset method return types are
    changed; they now must return an error code. The return value is
    unused at present, but at some later time we may unbind drivers and
    re-probe if they encounter an error during reset handling.

    The existing pre_reset and post_reset methods in the usbhid,
    usb-storage, and hub drivers are updated to match the new
    requirements. For usbhid the post_reset routine is also used for
    reset_resume (duplicate method pointers); for the other drivers a new
    reset_resume routine is added. The change to hub.c looks bigger than
    it really is, because mark_children_for_reset_resume() gets moved down
    next to the new hub_reset_resume() routine.

    A minor change to usb-storage makes the usb_stor_report_bus_reset()
    routine acquire the host lock instead of requiring the caller to hold
    it already.

    Signed-off-by: Alan Stern
    Signed-off-by: Jiri Kosina
    CC: Matthew Dharm
    Signed-off-by: Greg Kroah-Hartman

    Alan Stern
     
  • This patch (as886) adds the controversial USB-persist facility,
    allowing USB devices to persist across a power loss during system
    suspend.

    The facility is controlled by a new Kconfig option (with appropriate
    warnings about the potential dangers); when the option is off the
    behavior will remain the same as it is now. But when the option is
    on, people will be able to use suspend-to-disk and keep their USB
    filesystems intact -- something particularly valuable for small
    machines where the root filesystem is on a USB device!

    Signed-off-by: Alan Stern
    Signed-off-by: Greg Kroah-Hartman

    Alan Stern
     

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
     
  • The keyboard 0x046d/0xc311 needs reset leds quirk

    Tested-by: Antonino Ingargiola
    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
     
  • When setting the autocentering of PID devices, PID_DIRECTION_ENABLE is not
    being explicitely set to 1. This results in autocentering working only on the
    vertical axis when this field is preset to 0.

    Fix that by setting it explicitely to 1 when preparing the set_effect report
    for autocentering spring effect.

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

    Diogo Kastrup
     
  • Lately there have been quite a lot of bug reports against broken devices
    which require us to fix their report descriptor in the runtime, before it
    is passed to the HID parser. Those devices have eaten quite an amount of
    our quirks space, which isn't particularly necessary - the quirks are not
    needed after the report descriptor is parsed, and they just consume bits.

    Therefore this patch separates the quirks for report descriptor fixup, and
    moves their handling into separate code. The quirks are then forgotten as
    soon as the report descriptor has been parsed.

    Module parameter 'rdesc_quirks' is introduced to be able to modify these
    quirks in runtime in a similar way to 'quirks' parameter for ordinary HID
    quirks.

    Signed-off-by: Jiri Kosina

    Jiri Kosina
     
  • Devices manufactured by NCR have userspace hiddev-based drivers,
    which do all the necessary device querying by themselves. The devices
    must not be queried directly by the generic HID driver, as reported by
    NCR engineers.

    Cc: Petr Ostadal
    Signed-off-by: Jiri Kosina

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