12 Jul, 2010

3 commits


21 Jun, 2010

2 commits


04 Jun, 2010

1 commit

  • While the hardcoded ignore list is checked in hid_add_device(), the
    user supplied ignore flags are not. Thus, the IGNORE quirk (0x0004)
    cannot be used to stop usbhid from binding devices like iBuddy, which
    has been recently removed from the ignore list due to product ID
    conflict.

    This patch adds the user quirk check to hid_add_device(), and makes
    hid_add_device() return -ENODEV when HID_QUIRK_IGNORE bit is set.

    HID_QUIRK_NO_IGNORE still takes precedence over HID_QUIRK_IGNORE.

    With the patch, iBuddy works properly using libusb when the following
    option is added to modprobe.d:

    options usbhid quirks=0x1130:0x0002:0x0004

    Signed-off-by: Jindrich Makovicka
    Signed-off-by: Jiri Kosina

    Jindrich Makovicka
     

31 May, 2010

1 commit

  • hid-roccat-kone calls the hid-roccat module interfaces,
    so the former should depend on or select the latter to prevent
    build errors, like:

    hid-roccat-kone.c:(.text+0x133ed2): undefined reference to `roccat_report_event'
    hid-roccat-kone.c:(.text+0x133fa8): undefined reference to `roccat_disconnect'
    hid-roccat-kone.c:(.text+0x1353be): undefined reference to `roccat_connect'

    Signed-off-by: Randy Dunlap
    Signed-off-by: Jiri Kosina

    Randy Dunlap
     

28 May, 2010

1 commit


25 May, 2010

3 commits

  • Fix build failure when roccat and roccat-kone are built as modules.

    Signed-off-by: Jiri Kosina

    Jiri Kosina
     
  • Module roccat is a char device used to report special events of roccat hardware
    to userland. These events include requests for on-screen-display of profile or
    dpi settings or requests for execution of macro sequences that are not stored
    in device. The information in these events depends on hid device implementation
    and contains data that is not available in a single hid event or else hidraw
    could have been used.

    It is inspired by hidraw, but uses only one circular buffer for all readers.
    The device is as generic as possible so that the functionality is usable by all
    (kone and upcomming) roccat device drivers.

    Signed-off-by: Stefan Achatz
    Signed-off-by: Jiri Kosina

    Stefan Achatz
     
  • This change adds in the USB product ID for the Gyration
    GYR4101US USB media center remote control. This remote
    is similar enough to the other two devices that this driver
    can be used without any other changes to get full support
    for the remote.

    Signed-off-by: Cory Maccarrone
    Signed-off-by: Jiri Kosina

    Cory Maccarrone
     

24 May, 2010

1 commit

  • After merging the driver-core tree, today's linux-next build (x86_64
    allmodconfig) produced these warnings:

    drivers/hid/hid-roccat-kone.c:694: warning: initialization from incompatible pointer type
    drivers/hid/hid-roccat-kone.c:696: warning: initialization from incompatible pointer type
    drivers/hid/hid-roccat-kone.c:701: warning: initialization from incompatible pointer type
    drivers/hid/hid-roccat-kone.c:703: warning: initialization from incompatible pointer type
    drivers/hid/hid-roccat-kone.c:708: warning: initialization from incompatible pointer type
    drivers/hid/hid-roccat-kone.c:710: warning: initialization from incompatible pointer type
    drivers/hid/hid-roccat-kone.c:715: warning: initialization from incompatible pointer type
    drivers/hid/hid-roccat-kone.c:717: warning: initialization from incompatible pointer type
    drivers/hid/hid-roccat-kone.c:722: warning: initialization from incompatible pointer type
    drivers/hid/hid-roccat-kone.c:724: warning: initialization from incompatible pointer type
    drivers/hid/hid-roccat-kone.c:729: warning: initialization from incompatible pointer type
    drivers/hid/hid-roccat-kone.c:731: warning: initialization from incompatible pointer type

    Introduced by commit 867040163f10f2b52b45bc573f330d6eb28f5914 ("sysfs:
    add struct file* to bin_attr callbacks") from the driver-core tree
    interacting with commit 14bf62cde79423a02a590e02664ed29a36facec1 ("HID:
    add driver for Roccat Kone gaming mouse") from the hid tree.

    Signed-off-by: Stephen Rothwell
    Signed-off-by: Jiri Kosina

    Stephen Rothwell
     

22 May, 2010

1 commit

  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid: (59 commits)
    HID: fix up 'EMBEDDED' mess in Kconfig
    HID: roccat: cleanup preprocessor macros
    HID: roccat: refactor special event handling
    HID: roccat: fix special button support
    HID: roccat: Correctly mark init and exit functions
    HID: hidraw: Use Interrupt Endpoint for OUT Transfers if Available
    HID: hid-samsung: remove redundant key mappings
    HID: add omitted hid-zydacron.c file
    HID: hid-samsung: add support for Creative Desktop Wireless 6000
    HID: picolcd: Eliminate use after free
    HID: Zydacron Remote Control driver
    HID: Use kmemdup
    HID: magicmouse: fix input registration
    HID: make Prodikeys driver standalone config option
    HID: Prodikeys PC-MIDI HID Driver
    HID: hidraw: fix indentation
    HID: ntrig: add filtering module parameters
    HID: ntrig: add sysfs access to filter parameters
    HID: ntrig: add sensitivity and responsiveness support
    HID: add multi-input quirk for eGalax Touchcontroller
    ...

    Linus Torvalds
     

21 May, 2010

4 commits

  • The whole point of making some of the drivers automatically selected
    unless 'EMBEDDED' was to handle quirks transparently after their separation
    from the generic core.

    Over time, some of the later-added quirks grew into more standalone drivers,
    implementing non-trivial features a being larger than a few bytes of code.

    In addition to that, some of the standalone drivers don't make sense for
    99.9% of the users, as they are very specific to rare devices.

    Therefore build by default in only those drivers which

    - we historically used to support even before quirk separation from the
    core code
    - are isolated enough and likely to hit quite large portion of the
    users anyway (Microsoft, Logitech)

    Reported-by: Linus Torvalds
    Signed-off-by: Jiri Kosina

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

    Daniel Mack
     
  • For more clearance what the functions actually do,

    usb_buffer_alloc() is renamed to usb_alloc_coherent()
    usb_buffer_free() is renamed to usb_free_coherent()

    They should only be used in code which really needs DMA coherency.

    All call sites have been changed accordingly, except for staging
    drivers.

    Signed-off-by: Daniel Mack
    Cc: Alan Stern
    Cc: Pedro Ribeiro
    Signed-off-by: Greg Kroah-Hartman

    Daniel Mack
     
  • This patch (as1350) removes all usages of coherent buffers for USB
    control-request setup-packet buffers. There's no good reason to
    reserve coherent memory for these things; control requests are hardly
    ever used in large quantity (the major exception is firmware
    transfers, and they aren't time-critical). Furthermore, only seven
    drivers used it. We might as well always use streaming DMA mappings
    for setup-packet buffers, and remove some extra complexity from
    usbcore.

    The DMA-mapping portion of hcd.c is currently in flux. A separate
    patch will be submitted to remove support for URB_NO_SETUP_DMA_MAP
    after everything else settles down. The removal should go smoothly,
    as by then nobody will be using it.

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

    Alan Stern
     

19 May, 2010

8 commits


18 May, 2010

4 commits

  • Added the __init and __exit hints for module functions.

    Signed-off-by: Stefan Achatz
    Signed-off-by: Jiri Kosina

    Stefan Achatz
     
  • This patch makes the hidraw driver use the first Interrupt OUT endpoint for
    HID transfers to the device if such an endpoint exists. This is consistent
    with the behavior of the hiddev driver, and the logic is similar.

    From the USB HID specification:

    The Interrupt Out pipe is optional. If a device declares an Interrupt Out
    endpoint then Output reports are transmitted by the host to the device
    through the Interrupt Out endpoint. If no Interrupt Out endpoint is
    declared then Output reports are transmitted to a device through the
    Control endpoint, using Set_Report(Output) requests.

    Signed-off-by: Alan Ott
    Signed-off-by: Jiri Kosina

    Alan Ott
     
  • Remove 7 redundant key mappings from Desktop Wireless 6000 that are
    already handled by the default hid code.

    Reported-by: Robert Schedel
    Signed-off-by: Don Prince
    Signed-off-by: Jiri Kosina

    Don Prince
     
  • Commit a9885c8f7bf62e251fc178 ("HID: Zydacron Remote Control driver") added
    hid-zydracon driver by Don Prince, but mistakenly omitted hid-zydracon.c
    file itself. Properly add the file.

    Reported-by: Don Prince
    Signed-off-by: Jiri Kosina

    Jiri Kosina
     

17 May, 2010

4 commits

  • Add support for the multimedia buttons of the Creative Desktop Wireless 6000
    keyboard/mouse combo which are not currently handled by the default/samsung HID
    driver.

    Signed-off-by: Don Prince
    Signed-off-by: Jiri Kosina

    Don Prince
     
  • The skip label frees resp, which has not been allocated at the point of
    this goto and then does a break, based on the fact that err is non-zero.
    This is replaced by a break directly.

    A simplified version of the semantic match that finds this problem is as
    follows: (http://coccinelle.lip6.fr/)

    //
    @free@
    expression E;
    position p;
    @@
    kfree@p(E)

    @@
    expression free.E, subE

    Signed-off-by: Julia Lawall
    Signed-off-by: Jiri Kosina

    Julia Lawall
     
  • A specialised HID driver for the Zydacron Remote Control (usb id: 13ec:0006).

    The specialised HID driver adds support for the buttons which are not

    currently handled by the default HID driver.

    Signed-off-by: Don Prince
    Signed-off-by: Jiri Kosina

    Don Prince
     
  • Use kmemdup when some other buffer is immediately copied into the
    allocated region.

    A simplified version of the semantic patch that makes this change is as
    follows: (http://coccinelle.lip6.fr/)

    //
    @@
    expression from,to,size,flag;
    statement S;
    @@

    - to = \(kmalloc\|kzalloc\)(size,flag);
    + to = kmemdup(from,size,flag);
    if (to==NULL || ...) S
    - memcpy(to, from, size);
    //

    Signed-off-by: Julia Lawall
    Signed-off-by: Jiri Kosina

    Julia Lawall
     

12 May, 2010

3 commits

  • When HIDRAW is not set, hid_hw_start() returns ENODEV as no subsystem has
    claimed the magicmouse device, and probe routine bails out. Which is not what we want.

    This happens because magicmouse driver is instantiating the connection to
    Input subsystem itself, and since commit 28918c211d86b ("HID: magicmouse: fix
    oops after device removal") the HID core is not registering input device
    itself.

    Fix this by letting HID core register the input device (so that hid_hw_start()
    succeeds, as the device is claimed by at least one subsystem) and de-register
    it again later before proceeding with proper input setup.

    Reported-by: Justin P. Mattock
    Signed-off-by: Jiri Kosina

    Jiri Kosina
     
  • Analogically for other full-fledged HID drivers, make the Prodikeys
    driver independent on EMBEDDED.

    Signed-off-by: Jiri Kosina

    Jiri Kosina
     
  • A specialised HID driver for the Creative Prodikeys PC-MIDI USB Keyboard.

    The Prodikeys PC-MIDI is a multifunction keyboard comprising a qwerty keyboard,
    multimedia keys and a touch sensitive musical keyboard.

    The specialised HID driver adds full support for the musical keyboard and extra
    multimedia keys which are not currently handled by the default HID driver.

    The specialised HID driver interfaces with ALSA, and presents the midi keyboard
    as a rawmidi device. Sustain duration, octave shifting and the midi output
    channel can be read/written form userspace via sysfs.

    Signed-off-by: Don Prince
    ALSA parts:
    Acked-by: Clemens Ladisch
    Signed-off-by: Jiri Kosina

    Don Prince
     

11 May, 2010

4 commits

  • Signed-off-by: Antonio Ospite
    Signed-off-by: Jiri Kosina

    Antonio Ospite
     
  • Signed-off-by: Rafi Rubin
    Signed-off-by: Jiri Kosina

    Rafi Rubin
     
  • This should make it a little more convenient to tweak the filtering
    parameters on the fly. Also unlike load-time parameters, this provides
    independent tuning for each device conntected.

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

    Rafi Rubin
     
  • The old rejection size thresholds were too high for the 12" devices.
    Larger surfaces like the Dell Studio17 exacerbated the problem since
    contact size is reported on the same logical scale, making a contact
    look smaller to the larger screen.

    Since we have observed erroneous ghost events from these devices we
    still need to filter the incoming stream.

    The prior size threshold filter is still in place, though with
    defaults set to leave it off.

    This patch adds the two new classes of filters, those that reject
    live frames before activation, and those that reject empty frames
    until deactivation. These filters are expressed in terms of a
    simple state machine for clarity (I hope).

    The activation filter has two components, slack and size, events
    are discarded until either is satisfied. Slack is defined as
    the number of seemingly good contacts to read before accepting the
    stream as valid (if the threshold is reached in the middle of a frame
    the remainder of that frame is still discarded).

    The deactivation filter discards empty frames until hitting a
    deactivate slack. This time measured in frames. N-Trig devices
    emit 5-8 (observed so far) empty frames at the end of multitouch
    activity. Ignoring the first few enables us to safely and gracefully
    handle erroneous empty frames, thus preventing a change in the tool
    state which would otherwise result in things like broken lines or
    dragged objects being dropped in bad places.

    Also, now that devices with different logical densities have
    been observed, the aforementioned sizes are scaled from physical
    to logical scales once those scales are identified. Hopefully this
    should mean that a given threshold value means the same thing across
    differing devices.

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

    Rafi Rubin