aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/hid
AgeCommit message (Collapse)AuthorFilesLines
2010-09-02HID: rdesc parser: remove local item size limitNikolai Kondrashov1-6/+0
The HID report descriptor parser requires local items, except "delimiters", to have data. I.e. to have non-zero size. This removes the restriction. The HID specification doesn't seem to have such restriction and, for example, a "usage" item could have zero size if the usage ID is zero. At least one usage page - Keyboard/Keypad lists zero ID as valid. This doesn't seem to happen in the wild, probably because the official tool for authoring report descriptors always puts data even for zero values for some items, including "usage" items. However, this makes little sense and at least one open source tool for descriptor authoring generates zero data size "usage" items, which saves some space, especially if many such items are used in a descriptor. Signed-off-by: Nikolai Kondrashov <spbnick@gmail.com> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
2010-09-01Input: add support for Hanwang tabletsXing Wei2-0/+9
Add support for Art Master III tablet of BeiJing HanwangTechnology Co, Ltd. Signed-off-by: Xing Wei <weixing@hanwang.com.cn> Acked-by: Jiri Kosina <jkosina@suse.cz> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2010-09-01HID: roccat: Normalized reported profile number for pyra button events.Stefan Achatz1-1/+5
Pyra uses profile numbers in range 0-4 for everything except button events. Using range 1-5 consistent now. Signed-off-by: Stefan Achatz <erazor_de@users.sourceforge.net> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
2010-09-01HID: roccat: add driver for Roccat Pyra mouseStefan Achatz6-0/+1161
This patch add support for Pyra mobile gaming mouse from Roccat. It provides access to profiles, settings, actual settings etc. through sysfs attributes. This driver is conceptual similar to the existing Kone driver. Userland tools can soon be found at http://sourceforge.net/projects/roccat Signed-off-by: Stefan Achatz <erazor_de@users.sourceforge.net> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
2010-09-01HID: waltop: comment on tablet modesNikolai Kondrashov1-2/+27
Add a comment on modes supported by Waltop tablets - a knowledge extracted from the outdated official driver, but not yet used by this driver. Signed-off-by: Nikolai Kondrashov <spbnick@gmail.com> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
2010-09-01HID: waltop: fix Media Tablet 10.6 inch zoomingNikolai Kondrashov1-3/+12
Fix zoom controls of older version of Waltop Media Tablet 10.6 inch, aka Genius G-Pen M609. This should make it supported on par with the newer version, aka Genius G-Pen M609X. The fix is extrapolated from the behavior of the newer version (Genius G-Pen M609X) and both older and newer versions of Media Tablet 14.1 inch (Genius G-Pen M712/M712X) and should work with high probability. Signed-off-by: Nikolai Kondrashov <spbnick@gmail.com> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
2010-09-01HID: waltop: add Media Tablet 14.1 inch supportNikolai Kondrashov4-0/+300
Add support for Waltop Media Tablet 14.1 inch by fixing report descriptor. This tablet is also sold as Genius G-Pen M712 (older version) and M712X (newer version). Both are supported. Trust Wide Screen Design Tablet (TB-7300, item no 15358) seems to be the older version of this tablet (similar to Genius G-Pen M712), and could be supported as well. Signed-off-by: Nikolai Kondrashov <spbnick@gmail.com> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
2010-09-01HID: waltop: fix Media Tablet 10.6 inch scrollingNikolai Kondrashov1-9/+11
Add support for horizontal scrolling with Waltop Media Tablet 10.6 inch by updating the fixed HID report descriptor. The horizontal/vertical scrolling is toggled by pressing the wheels' center buttons while in scroll mode, which wasn't discovered at the time the support for this tablet was added. Signed-off-by: Nikolai Kondrashov <spbnick@gmail.com> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
2010-08-30HID: Add quirk for eGalax touch controler.Thierry Reding1-0/+1
This patch adds a quirk for the eGalax touch controller which reports two pairs of axes. Signed-off-by: Thierry Reding <thierry.reding@avionic-design.de> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
2010-08-30HID: add support for another BTC Emprex remote controlJiri Kosina3-0/+3
Add device ID for another variant of this remote control. Reported-by: Gregor Fuis <gujs.lists@gmail.com> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
2010-08-30HID: ntrig: a bit of whitespace cleanupRafi Rubin1-9/+9
Signed-off-by: Rafi Rubin <rafi@seas.upenn.edu> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
2010-08-25HID: Kconfig: Complete Kconfig prompt namesBorislav Petkov1-30/+30
Make special HID devices' Kconfig names unambiguous, obviating the need to enter the help menu of each driver in order to know what hardware device it actually supports. Cc: Jiri Kosina <jkosina@suse.cz> Cc: "Bruno Prémont" <bonbons@linux-vserver.org> Cc: Stephane Chatty <chatty@enac.fr> Cc: Don Prince <dhprince-devel@yahoo.co.uk> Cc: linux-input@vger.kernel.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Borislav Petkov <borislav.petkov@amd.com> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
2010-08-24HID: Set Report ID properly for Output reports on the Control endpoint.Alan Ott1-1/+2
When I made commit 29129a98e6fc89 ("HID: Send Report ID when numbered reports are sent over the control endpoint"), I didn't account for *buf not being the report ID anymore, as buf is incremented. Signed-off-by: Alan Ott <alan@signal11.us> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
2010-08-24HID: Kanvus Note A5 tablet needs HID_QUIRK_MULTI_INPUTDecio Fonini2-0/+2
The Kanvus Note A5 tablet (with USB ID 5543:6001, USB vendor UC_Logic) needs the HID_QUIRK_MULTI_INPUT in order to work out of the box; otherwise, we get the usual "cursor stuck at the upper left corner of the screen". Signed-off-by: Decio Fonini <fonini@techk.org> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
2010-08-23HID: uclogic: add proper support for PF1209Nikolai Kondrashov2-0/+223
This removes extra event device and fixes reported button codes of UC-Logic Tablet PF1209. This tablet is also sold as Genius PenSketch 12x9 (or 9x12) and possibly under other names. Signed-off-by: Nikolai Kondrashov <spbnick@gmail.com> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
2010-08-23HID: uclogic: fix coding styleNikolai Kondrashov1-7/+4
Fix minor coding style violations in the hid-uclogic driver. Signed-off-by: Nikolai Kondrashov <spbnick@gmail.com> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
2010-08-23HID: add support for two Waltop tabletsNikolai Kondrashov6-0/+572
Add support for Waltop Slim Tablet 5.8 inch and Media Tablet 10.6 inch. These (and other Waltop) tablets are usually sold by different companies (such as Genius and Trust) and with different names, but with the same USB vendor/product IDs. Slim Tablet 5.8 inch is known to also be sold as Genius G-Pen F350 and Trust Widescreen Mini Tablet (item no 16485). Media Tablet 10.6 inch is known to also be sold as Genius G-Pen M609 and M609X. Of these only the latter is known to be supported. Signed-off-by: Nikolai Kondrashov <spbnick@gmail.com> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
2010-08-19HID: Add support for chicony multitouch screens.David Gow2-0/+3
Adds a hid quirk for the chicony multitouch screen found in the Acer Aspire 1820pt notebook. Signed-off-by: David Gow <david@ingeniumdigital.com> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
2010-08-18Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hidLinus Torvalds5-6/+20
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid: USB HID: Add ID for eGalax Multitouch used in JooJoo tablet HID: hiddev: fix memory corruption due to invalid intfdata HID: hiddev: protect against disconnect/NULL-dereference race HID: picolcd: correct ordering of framebuffer freeing HID: picolcd: testing the wrong variable
2010-08-16USB HID: Add ID for eGalax Multitouch used in JooJoo tabletChris Ball3-0/+11
The JooJoo tablet (http://thejoojoo.com/) contains an "eGalax Inc. USB TouchController", and this patch hooks it up to the egalax-touch driver. Without the patch we don't get any cursor motion, since it comes through Z/RX rather than X/Y. (The egalax-touch driver does not yet generate a correct event sequence for the "serial" protocol used by this device, though -- see the note added to the code, which comes from research by Stéphane Chatty.) Cc: Jiri Kosina <jkosina@suse.cz> Cc: Stéphane Chatty <chatty@enac.fr> Signed-off-by: Chris Ball <cjb@laptop.org> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
2010-08-13HID: hiddev: fix memory corruption due to invalid intfdataJiri Kosina1-2/+3
Commit bd25f4dd6972755579d0 ("HID: hiddev: use usb_find_interface, get rid of BKL") introduced using of private intfdata in hiddev for purpose of storing hiddev pointer. This is a problem, because intf pointer is already being set to struct hid_device pointer by HID core. This obviously lead to memory corruptions at device disconnect time, such as WARNING: at lib/kobject.c:595 kobject_put+0x37/0x4b() kobject: '(null)' (ffff88011e9cd898): is not initialized, yet kobject_put() is being called. Convert hiddev into accessing hiddev through struct hid_device which is in intfdata already. Reported-and-tested-by: Markus Trippelsdorf <markus@trippelsdorf.de> Reported-and-tested-by: Heinz Diehl <htd@fritha.org> Reported-and-tested-by: Alan Ott <alan@signal11.us> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
2010-08-13HID: hiddev: protect against disconnect/NULL-dereference raceChris Ball1-2/+4
One of our users reports consistently hitting a NULL dereference that resolves to the "hid_to_usb_dev(hid);" call in hiddev_ioctl(), when disconnecting a Lego WeDo USB HID device from an OLPC XO running Scratch software. There's a FIXME comment and a guard against the dereference, but that happens farther down the function than the initial dereference does. This patch moves the call to be below the guard, and the user reports that it fixes the problem for him. OLPC bug report: http://dev.laptop.org/ticket/10174 Signed-off-by: Chris Ball <cjb@laptop.org> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
2010-08-10Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/inputLinus Torvalds1-25/+24
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input: Input: xpad - add USB-ID for PL-3601 Xbox 360 pad Input: cy8ctmg100_ts - signedness bug Input: elantech - report position also with 3 fingers Input: elantech - discard the first 2 positions on some firmwares Input: adxl34x - do not mark device as disabled on startup Input: gpio_keys - add hooks to enable/disable device Input: evdev - rearrange ioctl handling Input: dynamically allocate ABS information Input: switch to input_abs_*() access functions Input: add static inline accessors for ABS properties
2010-08-09HID: uclogic: fix up Kconfig entryJiri Kosina1-1/+1
Remove remains of the original dependency of the driver on CONFIG_EMBEDDED. Signed-off-by: Jiri Kosina <jkosina@suse.cz>
2010-08-09HID: Add support for UC-Logic WP????U tabletsNikolai Kondrashov6-1/+418
Add support for UC-Logic WP4030U, WP5540U and WP8060U tablets. These tablets are usually sold by Genius, Trust and possibly others under different names and in different cases, but with the original USB vendor/product IDs. Currently, these tablets are supported by standalone X.org driver WizardPen. This patch aims to fix them in the kernel and make them supported by the generic evdev X.org driver. Still, some minor fixes in the X.org driver are to be made for the full stack support. Signed-off-by: Nikolai Kondrashov <spbnick@gmail.com> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
2010-08-09HID: Add Tablet Pick -> BTN_STYLUS2 mappingNikolai Kondrashov1-0/+4
Many tablet input drivers use BTN_STYLUS2 code to report a second tablet stylus button. Yet, the generic HID input driver doesn't map it. Apparently, because there is no corresponding usage in the HID Usage Tables. This patch selects a compromise usage - "Tablet Pick" (0x46) to be mapped to BTN_STYLUS2. Some tablets use "Eraser" usage, but mapping it to a button wouldn't be entirely correct, because the specification says it may be "a pressure quantity". Signed-off-by: Nikolai Kondrashov <spbnick@gmail.com> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
2010-08-09HID: allow resizing and replacing report descriptorsNikolai Kondrashov16-54/+70
Update hid_driver's report_fixup prototype to allow changing report descriptor size and/or returning completely different report descriptor. Update existing usage accordingly. This is to give more freedom in descriptor fixup and to allow having a whole fixed descriptor in the code for the sake of readability. Signed-off-by: Nikolai Kondrashov <spbnick@gmail.com> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
2010-08-06HID: picolcd: correct ordering of framebuffer freeingBruno Prémont1-1/+1
Fix the free() ordering (which was never reached due to wrong check). Signed-off-by: Bruno Prémont <bonbons@linux-vserver.org> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
2010-08-06HID: picolcd: testing the wrong variableDan Carpenter1-1/+1
"ref_cnt" is a point to the reference count and it's non-null. We really want to test the reference count itself. Signed-off-by: Dan Carpenter <error27@gmail.com> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
2010-08-04Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hidLinus Torvalds18-183/+585
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid: (30 commits) Revert "HID: add support for the Wacom Intuos 4 wireless" HID: fix up Kconfig entry for ACRUX driver HID: add ACRUX game controller force feedback support HID: Force input registration for "VEC footpedal" HID: add HID_QUIRK_HIDINPUT_FORCE HID: hid-input.c: indentation fixes HID: hiddev: use usb_find_interface, get rid of BKL HID: ignore digitizer usage Undefined (0x00) HID: Add support for Conceptronic CLLRCMCE HID: hid-ids.h: Whitespace fixup, align using TABs HID: picolcd: implement refcounting of framebuffer HID: picolcd: do not reallocate memory on depth change HID: picolcd: Add minimal palette required by fbcon on 8bpp HID: magicmouse: Correct parsing of large X and Y motions. HID: magicmouse: report last touch up HID: picolcd: fix deferred_io init/cleanup to fb ordering HID: hid-ids.h: keep vendor ids in alphabetical order HID: add proper support for Elecom BM084 bluetooth mouse HID: magicmouse: enable horizontal scrolling HID: magicmouse: add param for scroll speed ...
2010-08-04Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/inputLinus Torvalds3-0/+5
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input: (57 commits) Input: adp5588-keypad - fix NULL dereference in adp5588_gpio_add() Input: cy8ctmg110 - capacitive touchscreen support Input: keyboard - also match braille-only keyboards Input: adp5588-keys - export unused GPIO pins Input: xpad - add product ID for Hori Fighting Stick EX2 Input: adxl34x - fix leak and use after free Input: samsung-keypad - Add samsung keypad driver Input: i8042 - reset keyboard controller wehen resuming from S2R Input: synaptics - set min/max for finger width Input: synaptics - only report width on hardware that supports it Input: evdev - signal that device is writable in evdev_poll() Input: mousedev - signal that device is writable in mousedev_poll() Input: change input handlers to use bool when possible Input: document the MT event slot protocol Input: introduce MT event slots Input: usbtouchscreen - implement reset_resume Input: usbtouchscreen - implement runtime power management Input: usbtouchscreen - implement basic suspend/resume Input: Add ATMEL QT602240 touchscreen driver Input: fix signedness warning in input_set_keycode() ...
2010-08-04Merge branch 'bkl' into for-linusJiri Kosina1-42/+12
2010-08-04Merge branches 'magicmouse', 'roccat' and 'vec-pedal' into for-linusJiri Kosina9-62/+98
Conflicts: drivers/hid/hid-ids.h
2010-08-04Merge branch 'acrux' into for-linusJiri Kosina5-1/+187
Conflicts: drivers/hid/hid-ids.h
2010-08-04Merge branch 'upstream-fixes' into for-linusJiri Kosina5-8/+16
Conflicts: drivers/hid/hid-ids.h
2010-08-04Merge branch 'upstream' into for-linusJiri Kosina8-74/+276
Conflicts: drivers/hid/hid-ids.h
2010-08-02Input: switch to input_abs_*() access functionsDaniel Mack1-25/+24
Change all call sites in drivers/input to not access the ABS axis information directly anymore. Make them use the access helpers instead. Also use input_set_abs_params() when possible. Did some code refactoring as I was on it. Signed-off-by: Daniel Mack <daniel@caiaq.de> Cc: Dmitry Torokhov <dtor@mail.ru> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2010-07-20Revert "HID: add support for the Wacom Intuos 4 wireless"Jiri Kosina3-3/+1
This reverts commit ed9eac5b493c679ef5fc52273758fe334de82714. As reported by Bastien Nocera, the device actually uses a completely different protocol, so simply adding VID/PID doesn't work and completely new driver will need to be written. Reported-by: Bastien Nocera <hadess@hadess.net> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
2010-07-19HID: fix up Kconfig entry for ACRUX driverJiri Kosina1-1/+0
Remove 'default !EMBEDDED' from ACRUX force feedback driver entry. See commit message of 73d5e8f77e88 ("HID: fix up 'EMBEDDED' mess in Kconfig") for explanation and reasoning. Signed-off-by: Jiri Kosina <jkosina@suse.cz>
2010-07-19HID: add ACRUX game controller force feedback supportSergei Kolzun5-0/+187
Adds force feedback support for ACRUX USB game controllers. These devices are mass produced in China by several vendors. Signed-off-by: Sergei Kolzun <x0r@dv-life.ru> Signed-off-by: Dmitry Torokhov <dtor@mail.ru> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
2010-07-19HID: Force input registration for "VEC footpedal"Daniel Mack2-0/+4
These devices report a usage page of type "consumer" and a usage of "Programmable buttons". They are hence ignored by the hid-input layer. Force the registration of an input device by using the new quirk type HID_QUIRK_HIDINPUT_FORCE. Signed-off-by: Daniel Mack <daniel@caiaq.de> Cc: Jiri Kosina <jkosina@suse.cz> Cc: Dmitry Torokhov <dmitry.torokhov@gmail.com> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
2010-07-19HID: add HID_QUIRK_HIDINPUT_FORCEDaniel Mack1-0/+2
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 <daniel@caiaq.de> Cc: Jiri Kosina <jkosina@suse.cz> Cc: Dmitry Torokhov <dmitry.torokhov@gmail.com> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
2010-07-19HID: hid-input.c: indentation fixesDaniel Mack1-9/+9
Signed-off-by: Daniel Mack <daniel@caiaq.de> Cc: Jiri Kosina <jkosina@suse.cz> Cc: Dmitry Torokhov <dmitry.torokhov@gmail.com> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
2010-07-13HID: hiddev: use usb_find_interface, get rid of BKLArnd Bergmann1-42/+12
This removes the private hiddev_table in the usbhid driver and changes it to use usb_find_interface instead. The advantage is that we can avoid the race between usb_register_dev and usb_open and no longer need the big kernel lock. This doesn't introduce race condition -- the intf pointer could be invalidated only in hiddev_disconnect() through usb_deregister_dev(), but that will block on minor_rwsem and not actually remove the device until usb_open(). Signed-off-by: Arnd Bergmann <arnd@arndb.de> Cc: Jiri Kosina <jkosina@suse.cz> Cc: "Greg Kroah-Hartman" <gregkh@suse.de> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
2010-07-13HID: ignore digitizer usage Undefined (0x00)Forest Bond1-0/+3
SMART Technologies has recommended this change to fix a problem reported with SMART Board series interactive whiteboards. A description of the device-specific symptom follows: When the board is connected my mouse bounces up to the top left corner. Bjorn has tested this fix with model SB680. Tested-by: Bjorn Behrendt <bbehrendt@msjvermont.org> Signed-off-by: Forest Bond <forest@alittletooquiet.net> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
2010-07-13HID: Add support for Conceptronic CLLRCMCEKees Bakker4-2/+12
There is only one extra button for Conceptronic that wasn't yet present. The button has code 0xffbc0027 and the description is "Toggle between display ratios". So I picked KEY_MODE for this button. Signed-off-by: Kees Bakker <kees.bakker@xs4all.nl> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
2010-07-12HID: hid-ids.h: Whitespace fixup, align using TABsKees Bakker1-20/+20
Hmmm. There are still people who have their editor setup with tabwidth 4. Some of the entries were added with tabwidth 4, and for these people the lineup looks OK. But in the Linux kernel source we use tabwidth 8. This patch repairs that whitespace so that the number align properly. Signed-off-by: Kees Bakker <kees.bakker@xs4all.nl> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
2010-07-12HID: picolcd: implement refcounting of framebufferBruno Prémont1-7/+103
As our device may be hot-unplugged and framebuffer cannot handle this case by itself we need to keep track of usage count so as to release fb_info and framebuffer memory only after the last user has closed framebuffer. We need to do the freeing in a scheduled work as fb_release() is called with fb_info lock held. Signed-off-by: Bruno Prémont <bonbons@linux-vserver.org> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
2010-07-12HID: picolcd: do not reallocate memory on depth changeBruno Prémont1-15/+12
Reallocating memory in depth change does not work well if some userspace application has mmapped() the framebuffer as that mapping does not get adjusted (thus application continues to write to old buffer). In addition doing deferred_io_cleanup() and init() inside of set_par() tends to deadlock with fbcon's flashing cursor. Avoid all this by allocating a buffer that can hold 8bpp framebuffer and just use 1/8 of it while running at 1bpp. Signed-off-by: Bruno Prémont <bonbons@linux-vserver.org> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
2010-07-12HID: picolcd: Add minimal palette required by fbcon on 8bppBruno Prémont1-11/+51
Add a minimal palette so fbcon does not try to dereference a NULL point when fb is set to 8bpp. fbcon stores pixels the other way around in bytes for 1bpp than intially implemented, correct this. Signed-off-by: Bruno Prémont <bonbons@linux-vserver.org> Signed-off-by: Jiri Kosina <jkosina@suse.cz>