19 Jul, 2010

1 commit

  • For devices with exotic HID report descriptors, it might be necessary to
    make the HID core force the registration of an input device. Make that
    possible by introducing a new quirk type.

    Signed-off-by: Daniel Mack
    Cc: Jiri Kosina
    Cc: Dmitry Torokhov
    Signed-off-by: Jiri Kosina

    Daniel Mack
     

19 May, 2010

1 commit


27 Apr, 2010

1 commit


19 Apr, 2010

1 commit

  • Add two quirks to make it possible for usbhid module options to
    override whether a device is ignored (HID_QUIRK_NO_IGNORE) and
    whether to connect a hiddev device (HID_QUIRK_HIDDEV_FORCE).

    Passing HID_QUIRK_NO_IGNORE for your device means that it will
    not be ignored by the HID layer, even if present in a blacklist.

    HID_QUIRK_HIDDEV_FORCE will force the creation of a hiddev for that
    device, making it accessible from user-space.

    Tested with an Apple IR Receiver, switching it from using appleir
    to using lirc's macmini driver.

    Signed-off-by: Bastien Nocera
    Signed-off-by: Jiri Kosina

    Bastien Nocera
     

26 Feb, 2010

1 commit


10 Feb, 2010

1 commit

  • The Apple Magic Mouse (and probably other devices) publish reports that are not
    called out in their HID report descriptors -- they only send them when enabled
    through other writes to the device. This allows a driver to handle these
    unlisted reports.

    Signed-off-by: Michael Poole
    Signed-off-by: Jiri Kosina

    Michael Poole
     

03 Feb, 2010

1 commit

  • In commit 2da31939a42 ("Bluetooth: Implement raw output support for HIDP
    layer"), support for Bluetooth hid_output_raw_report was added, but it
    pushes the data to the intr socket instead of the ctrl one. This has been
    fixed by 6bf8268f9a91f1 ("Bluetooth: Use the control channel for raw HID reports")

    Still, it is necessary to distinguish whether the report in question should be
    either FEATURE or OUTPUT. For this, we have to extend the generic HID API,
    so that hid_output_raw_report() callback provides means to specify this
    value so that it can be passed down to lower level hardware drivers (currently
    Bluetooth and USB).

    Based on original patch by Bastien Nocera
    Acked-by: Marcel Holtmann
    Signed-off-by: Jiri Kosina

    Jiri Kosina
     

18 Jan, 2010

1 commit


05 Nov, 2009

1 commit

  • NCR devices are terminally broken by design -- they claim themselves to contain
    proper input applications in their HID report descriptor, but behave very badly
    if treated in standard way.

    According to NCR developers, the devices get confused when queried for reports
    in a standard way, rendering them unusable.

    NCR is shipping application called "RPSL" that can be used to drive these
    devices through hiddev, under the assumption that in-kernel driver doesn't
    perform initial report query.
    If it does, neither in-kernel nor hiddev-based driver can operate with these
    devices any more.

    Introduce a quirk that skips the report query for all NCR devices. The previous
    NOGET quirk was wrong and had been introduced because I misunderstood the nature
    of brokenness of these devices.

    Signed-off-by: Jiri Kosina

    Jiri Kosina
     

17 Sep, 2009

1 commit


14 Sep, 2009

1 commit


12 Jun, 2009

2 commits

  • This is a followup patch to the one implemeting rdesc representation in debugfs
    rather than being dependent on compile-time CONFIG_HID_DEBUG setting.

    The API of the appropriate formatting functions is slightly modified -- if
    they are passed seq_file pointer, the one-shot output for 'rdesc' file mode
    is used, and therefore the message is formatted into the corresponding seq_file
    immediately.

    Otherwise the called function allocated a new buffer, formats the text into the
    buffer and returns the pointer to it, so that it can be queued into the ring-buffer
    of the processess blocked waiting on input on 'events' file in debugfs.

    'debug' parameter to the 'hid' module is now used solely for the prupose of inetrnal
    driver state debugging (parser, transport, etc).

    Signed-off-by: Jiri Kosina

    Jiri Kosina
     
  • It is a little bit inconvenient for people who have some non-standard
    HID hardware (usually violating the HID specification) to have to
    recompile kernel with CONFIG_HID_DEBUG to be able to see kernel's perspective
    of the HID report descriptor and observe the parsed events. Plus the messages
    are then mixed up inconveniently with the rest of the dmesg stuff.

    This patch implements /sys/kernel/debug/hid//rdesc file, which
    represents the kernel's view of report descriptor (both the raw report
    descriptor data and parsed contents).

    With all the device-specific debug data being available through debugfs, there
    is no need for keeping CONFIG_HID_DEBUG, as the 'debug' parameter to the
    hid module will now only output only driver-specific debugging options, which has
    absolutely minimal memory footprint, just a few error messages and one global
    flag (hid_debug).

    We use the current set of output formatting functions. The ones that need to be
    used both for one-shot rdesc seq_file and also for continuous flow of data
    (individual reports, as being sent by the device) distinguish according to the
    passed seq_file parameter, and if it is NULL, it still output to kernel ringbuffer,
    otherwise the corresponding seq_file is used for output.

    The format of the output is preserved.

    Signed-off-by: Jiri Kosina

    Jiri Kosina
     

20 May, 2009

1 commit

  • Added constants to hid.h for all digitizer usages (including the new multitouch
    ones that are not yet in the official USB spec but are being pushed by Microsft
    as described in their paper "Digitizer Drivers for Windows Touch and Pen-Based
    Computers"). Updated hid-debug.c to support the new MT input constants such as
    ABS_MT_POSITION_X.

    Signed-off-by: Stephane Chatty
    Signed-off-by: Jiri Kosina

    Stephane Chatty
     

30 Mar, 2009

3 commits

  • Conflicts:

    drivers/hid/hid-core.c

    Jiri Kosina
     
  • This removal was scheduled and there is no problem with later
    distros to adapt for the new bus, thanks to aliases.

    module-init-tools map files are deprecated nowadays, so that
    the patch which introduced hid ones into the m-i-t won't be
    accepted and hence there is no reason for leaving compat stuff in.

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

    Jiri Slaby
     
  • When hid quirks were converted to specialized driver, the HID_QUIRK_IGNORE
    has been moved completely, as the hid_ignore_list[] has been moved into the
    generic code.

    However userspace already got used to the possibility that modprobing
    usbhid with

    'quirks=vid:pid:0x4'

    makes the device ignored by usbhid driver. So keep this quirk flag in place
    for backwards compatibility.

    Signed-off-by: Jiri Kosina

    Jiri Kosina
     

26 Mar, 2009

1 commit

  • This uses the USB busy mechanism for aggessive autosuspend of USB
    HID devices. It autosuspends all opened devices supporting remote wakeup
    after a timeout unless

    - output is being done to the device
    - a key is being held down (remote wakeup isn't triggered upon key release)
    - LED(s) are lit
    - hiddev is opened

    As in the current driver closed devices will be autosuspended even if they
    don't support remote wakeup.

    The patch is quite large because output to devices is done in hard interrupt
    context meaning a lot a queuing and locking had to be touched. The LED stuff
    has been solved by means of a simple counter. Additions to the generic HID code
    could be avoided. In addition it now covers hidraw. It contains an embryonic
    version of an API to let the generic HID code tell the lower levels which
    capabilities with respect to power management are needed.

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

    Oliver Neukum
     

31 Jan, 2009

1 commit


04 Jan, 2009

3 commits


27 Oct, 2008

1 commit

  • Usbhid structure is allocated on start invoked only from probe
    of some driver. When there is no driver, the structure is null
    and causes null-dereference oopses.

    Fix it by allocating the structure on probe and disconnect of
    the device itself. Also make sure we won't race between start
    and resume or stop and suspend respectively.

    References: http://bugzilla.kernel.org/show_bug.cgi?id=11827

    Signed-off-by: Jiri Slaby
    Cc: Johannes Berg
    Cc: Andreas Schwab
    Signed-off-by: Jiri Kosina

    Jiri Slaby
     

22 Oct, 2008

1 commit

  • Add type to the hid structure to distinguish to which device type
    (now only mouse) we are talking to. Needed for per device type ignore
    list support.

    Note: this patch leaves the type as unknown for bluetooth devices,
    there is not support for this in the hidp code.

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

    Jiri Slaby
     

15 Oct, 2008

16 commits