summaryrefslogtreecommitdiff
path: root/drivers/hid/usbhid
AgeCommit message (Collapse)Author
2008-04-22HID: move wait from hid to usbhidJiri Slaby
Since only place where this is used is usbhid, move it there. Signed-off-by: Jiri Slaby <jslaby@suse.cz> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
2008-04-22HID: fix sparse warningsJiri Slaby
Fix these sparse warnings: .../hid/hid-core.c:100:15: warning: incorrect type in assignment (different signedness) .../hid/hid-core.c:100:15: expected signed int [usertype] *value .../hid/hid-core.c:100:15: got unsigned int *<noident> by unsigned -> s32 .../hid/hid-input-quirks.c:336:10: warning: Using plain integer as NULL pointer by 0 -> NULL .../hid/usbhid/hid-core.c:786:46: warning: incorrect type in argument 3 (different signedness) .../hid/usbhid/hid-core.c:786:46: expected int *max .../hid/usbhid/hid-core.c:786:46: got unsigned int *<noident> .../hid/usbhid/hid-core.c:787:47: warning: incorrect type in argument 3 (different signedness) .../hid/usbhid/hid-core.c:787:47: expected int *max .../hid/usbhid/hid-core.c:787:47: got unsigned int *<noident> .../hid/usbhid/hid-core.c:788:48: warning: incorrect type in argument 3 (different signedness) .../hid/usbhid/hid-core.c:788:48: expected int *max .../hid/usbhid/hid-core.c:788:48: got unsigned int *<noident> by int -> unsigned int Signed-off-by: Jiri Slaby <jirislaby@gmail.com> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
2008-04-22HID: patch to add NOGET for DMI/AcomdataPete Zaitcev
This must be the weirdest failure yet. My external disk stops processing the storage commands the moment it receives a GET_REPORT. The firmware does not crash; if I do rmmod hid, then SET-INTERFACE restores normal operations. Still, I cannot live without the keyboard when I want backup my files. Adding the NOGET quirk fixes this problem for me. Signed-off-by: Pete Zaitcev <zaitcev@redhat.com> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
2008-04-22HID: Sunplus Wireless Desktop needs report descriptor fixupJiri Kosina
This device has reports lower logical maximum compared to the real usages for Zoom+ and Zoom- it emits. This patch bumps the values in the report descriptor up, and also adjusts HID_MAX_USAGE accordingly. Reported-by: Khelben Blackstaff <eye.of.the.8eholder@gmail.com> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
2008-04-22HID: quirk for MS Wireless Desktop Receiver (model 1028)Jim Duchek
Microsoft's wireless desktop receiver (Model 1028) has a bug in the report descriptor -- namely, in four seperate places it uses USAGE_MIN and _MAX when it quite obviously doesn't intend to. In other words, it reports that it has pretty much _everything_ in 'consumer' and 'generic desktop'. And then the X evdev driver believes I have a mouse with 36 absolute axes and a huge pile of keys and buttons, when I in fact, should have zero. 255/256 in three of the cases, and 0-1024 in another. This patch fixes the report descriptor of this device before it enters the HID parser. Signed-off-by: Jim Duchek <jim.duchek@gmail.com> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
2008-04-22HID: fixup fullspeed interval on highspeed Afatech DVB-T IR kbdPekka Sarnila
Many vendors highspeed devices give erroneously fullspeed interval value in endpoint descriptor for interrupt endpoints. This quirk fixes up that by recalculating the right value for highspeed device. At the time of hid configuration this quirk calculates which highspeed interval value gives same interval delay as, or next smaller then, what it would be if the original value would be interpreted as fullspeed value. In subsequent urbs that new value is used instead. Forming the 'hid->name' in usb_hid_config() was moved up to accommodate more descriptive printk reporting the fixup. In this patch the quirk is set for one such device: Afatech DVB-T 2 infrared HID-keyboard. It reports value 16 which means 4,069s in highspeed while obviously 16ms was intended. In this case quirk calculates new value to be 8 which gives when interpreted as highspeed value 16ms as wanted. The behavior of the device was verified to be what expected both before and after the patch. Signed-off-by: Pekka Sarnila <sarnila@adit.fi> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
2008-04-22HID: fix build failure in hiddev_ioctl with gcc 3.2Jean Delvare
Fix build failure in hiddev_ioctl with gcc 3.2: http://bugzilla.kernel.org/show_bug.cgi?id=10121 The trick is to move the handling of ioctls which need to allocate memory to separate functions. Signed-off-by: Jean Delvare <khali@linux-fr.org> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
2008-04-15Input: aiptek - add support for Genius G-PEN 560 tabletGuryanov Dmitry
USBHID driver only supports relative mode with this tablet so let aiptek module handle it. Signed-off-by: Dmitry Guryanov <guryanov@dgap.mipt.ru> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Jiri Kosina <jkosina@suse.cz> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2008-03-18HID: BADPAD entry for NATSU Playstation USB adapterAndrew Burton
Add quirk entry for BADPAD for the NATSU Playstation USB adapter. The adapter is supported under Linux, but with bad direction detection. Signed-off-by: Andrew Burton <adb@iinet.net.au> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
2008-03-18HID: Use DIV_ROUND_UPJulia Lawall
The kernel.h macro DIV_ROUND_UP performs the computation (((n) + (d) - 1) / (d)) but is perhaps more readable. Signed-off-by: Julia Lawall <julia@diku.dk> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
2008-03-18HID: remove HID_QUIRK_APPLE_ISO_KEYBOARD for 4th generation macbookTobias Mueller
4th generation MacBook (product id 0x022a) from Apple doesn't need HID_QUIRK_APPLE_ISO_KEYBOARD fix anymore. Signed-off-by: Tobias Mueller <Tobias_Mueller@twam.info> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
2008-02-13HID: add USB IDs for MacBook 3rd generationTobias Mueller
Add support for Macbook 3rd generation special mappings. Signed-off-by: Tobias Mueller <Tobias_Mueller@twam.info> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
2008-02-11HID: add LCSPEC from VERNIER to quirk listJiri Kosina
We need to blacklist this device, as it should be handled by ldusb driver. Reported-by: stephen <stephen.ware@eqware.net> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
2008-02-11HID: Blacklist new GTCO CalComp USB device PIDsJeremy Roberson
Adds new GTCO CalComp USB device PIDs to the blacklist. Signed-off-by: Jeremy A. Roberson <jroberson@gtcocalcomp.com> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
2008-01-28HID: ADS/Tech Radio si470x needs blacklist entryTobias Lorenz
This patch adds blacklist entries in hid-quirks.c to let the usbhid driver ignore the si470x radio devices. They are now handled by the new radio-si470x driver. Signed-off-by: Tobias Lorenz <tobias.lorenz@gmx.net> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
2008-01-28HID: Logitech Extreme 3D needs NOGET quirkJiri Kosina
Logitech Extreme 3D needs NOGET quirk, otherwise it times out at the time of connect. Reported-by: Mike Sharov <msharov@softhome.net> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
2008-01-28HID: Support Samsung IR remoteRobert Schedel
Samsung USB remotes (0419:0001) are rejected by kernel 2.6.23, because the report descriptor from the remote contains a 48 bit HID report field. HID 1.11 states: Fields may span at most 4 bytes. This patch, based on 2.6.23, fixes this by modifying the internal report descriptor in hid-quirks.c. Additional user space support (e.g. LIRC) is required to fetch the information from the hiddev interface. The burden to reconstruct the data is moved into userspace (lirc through hiddev). There is no need to set HID_QUIRK_HIDDEV quirk, as the device has also output applications, which trigger the creation of hiddev device automatically. Signed-off-by: Robert Schedel <r.schedel@yahoo.de> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
2008-01-28HID: fix compilation of hidbp drivers without usbhidJiri Kosina
We can use the blacklist only if usbhid code is compiled. Reported-by: jurriaan <thunder7@xs4all.nl> Cc: Pascal Terjan <pterjan@mandriva.com> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
2008-01-28HID: Blacklist the Gretag-Macbeth Huey display colorimeterNicolas Mailhot
The Gretag-Macbeth Huey display colorimeter claims to be an HID device but isn't. As a result the linux HID device will claim it, preventing FLOSS software like Argyll CMS from talking to it. Tested-by: Frederic Crozat <fcrozat@mandriva.com> Signed-off-by: Nicolas Mailhot <nicolas.mailhot@laposte.net> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
2008-01-28HID: force hiddev creation for SONY PS3 controllerBastien Nocera
The device is not discoverable, and needs to be poked to set its master, the Bluetooth device it will try to connect to when the "Home" button is pressed without a cable plugged in. Using libusb means disconnecting the device from its driver to get the report descriptor. Using hiddev, we can poke it without relinquishing control over it, so when you plug it in, it would still work as a pad. This could be then used by sixpair program, after it is rewritten to use hiddev instead of libusb. Signed-off-by: Bastien Nocera <hadess@hadess.net> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
2008-01-28HID: Use hid blacklist in usbmouse/usbkbdPascal Terjan
This fixes wacom tablets not working if usbmouse is loaded. Signed-off-by: Pascal Terjan <pterjan@mandriva.com> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
2008-01-28HID: proper handling of MS 4k and 6k devicesJiri Kosina
This removes ugly macros IS_* to distinguish devices that need special handling in hid-input, and establish proper quirks for them. Signed-off-by: Jiri Kosina <jkosina@suse.cz>
2008-01-28HID: hid-input quirk for BTC 8193Jiri Kosina
BTC 8193 keyboard handles its scrollwheel in very non-standard way. It produces two non-standard usages for scrolling up and down, in both cases with postive value equaling to 1. We handle this by temporary mapping, which we then catch in quirk event handler, and remap to negative HWHEEL even in order to introduce correct behavior. Also the button requires special mapping, as it triggers standard-violating usage code. Reported in kernel.org bugzilla #9385 Reported-by: Kir Kolyshkin <kir@sacred.ru> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
2008-01-28HID: Microsoft Wireless Optical Desktop 3.0 quirkDrew Fisher
Make the Microsoft Wireless Optical Desktop 3.0 work as a mouse. Microsoft Wireless Optical Desktop 3.0 doesn't properly describe its interface class. Specifically, since it doesn't mark the second interface as a mouse (bInterfaceSubclass = 0), it doesn't get HID_QUIRK_NOGET applied to the interface, and then acts broken when polled. Signed-off-by: Drew Fisher <drew.m.fisher@gmail.com> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
2008-01-28HID: Add support for Logitech Elite keyboardsCarlos Corbacho
Reuse the quirks from the Cordless Desktop LX500 - stops some of the extra keys being reported as mouse buttons. Signed-off-by: Carlos Corbacho <cathectic@gmail.com> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
2008-01-28HID: add full support for Genius KB-29EJiri Kosina
Genius KB-29E has broken report descriptor, which causes some of the Consumer usages to appear incorrectly as Button usages. We fix it by fixing the report descriptor before it is being parsed. Also a few of the keys violate the HUT standard, so they need a special handling. They currently fall into "Reserved" range as per HUT 1.12. Reported-by: Szekeres Istvan <szekeres@iii.hu> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
2008-01-28HID: fix a potential bug in pointer castingLi Zefan
Don't directly cast list_head * to foo *, this works only when list is the first member of struct foo, and we should not make the assumption how members are ordered in the structure. i.e. struct *f = (struct *f)pos will work if: struct foo { struct list_head list; int i; }; but will fail if: struct foo { int i; struct list_head list; } Signed-off-by: Li Zefan <lizf@cn.fujitsu.com> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
2008-01-28HID: Implement horizontal wheel handling for A4 Tech X5-005DPavel Troller
This mouse distinguishes horizontal wheel from vertical by a special "pseudo event" GenericDesktop.00b8, with values of 0 for vertical and 8 for horizontal wheel. Because this event is supplied by the parser too late, we need to delay a wheel event, wait for this one and send either REL_WHEEL or REL_HWHEEL to input depending on the event value. Signed-off-by: Pavel Troller <patrol@sinus.cz> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
2008-01-28HID: Add support for Apple aluminum USB keyboards.Michel Daenzer
Reuse the existing quirks for Apple laptop USB keyboards. Signed-off-by: Michel Daenzer <michel@tungstengraphics.com> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
2008-01-28HID: Rename some code identifiers from PowerBook specific to Apple genericMichel Daenzer
Preserve identifiers exposed in build and run time configuration though in order not to break existing configurations. This is in preparation for adding support for Apple aluminum USB keyboards. Signed-off-by: Michel Daenzer <michel@tungstengraphics.com> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
2007-10-31HID: hiddev - fix compiler warningJiri Kosina
drivers/hid/usbhid/hiddev.c: In function 'hiddev_compat_ioctl': drivers/hid/usbhid/hiddev.c:746: warning: passing argument 4 of 'hiddev_ioctl' makes integer from pointer without a cast Add cast to hiddev_compat_ioctl() Signed-off-by: Jiri Kosina <jkosina@suse.cz>
2007-10-31HID: Add GoTop tablets to blacklistJerrold Jones
GoTop devices are handled by usbtouchscreen driver, make sure HID ignores them. Signed-off-by: Daniel Ritz <daniel.ritz@gmx.ch> Signed-off-by: Dmitry Torokhov <dtor@mail.ru> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
2007-10-20changed emailJohann Deneux
Changed email address of Johann Deneux (myself) Also removed CVS tags in comments (no longer using cvs) Signed-off-by: Johann Deneux <johann.deneux@gmail.com> Signed-off-by: Adrian Bunk <bunk@kernel.org>
2007-10-19get rid of input BIT* duplicate definesJiri Slaby
get rid of input BIT* duplicate defines use newly global defined macros for input layer. Also remove includes of input.h from non-input sources only for BIT macro definiton. Define the macro temporarily in local manner, all those local definitons will be removed further in this patchset (to not break bisecting). BIT macro will be globally defined (1<<x) Signed-off-by: Jiri Slaby <jirislaby@gmail.com> Cc: <dtor@mail.ru> Acked-by: Jiri Kosina <jkosina@suse.cz> Cc: <lenb@kernel.org> Acked-by: Marcel Holtmann <marcel@holtmann.org> Cc: <perex@suse.cz> Acked-by: Mauro Carvalho Chehab <mchehab@infradead.org> Cc: <vernux@us.ibm.com> Cc: <malattia@linux.it> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-10-14Merge branch 'hidraw' into for-linusJiri Kosina
2007-10-14HID: add hidraw interfaceJiri Kosina
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 <jkosina@suse.cz>
2007-10-14USB HID: provide hook for hidraw write()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 <jkosina@suse.cz>
2007-10-14HID: hiddev: Add 32bit ioctl compatibiltyPhilip Langdale
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 <philipl@overt.org> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
2007-10-14HID: Add GeneralTouch touchscreen to the blacklistIlya Frolov
GeneralTouch touchscreens are handled by usbtouchscreen driver, make sure HID ignores them. Signed-off-by: Ilya Frolov <zeylie@gmail.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
2007-10-14USBHID: report descriptor fix for MacBook JIS keyboardTomoya Adachi
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 <adachi@il.is.s.u-tokyo.ac.jp> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
2007-10-14HID: use hid-plff driver for GreenAsia 0e8f:0003 devicesAnssi Hannula
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 <anssi.hannula@gmail.com> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
2007-10-14USBHID: Add HID_QUIRK_NOGET for ELO Touch Screen 2700 displayMike Crowe
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 <mac@mcrowe.com> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
2007-10-14HID: enable hiddev for the SantaRosa MacBookPro IR receiverStelian Pop
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 <stelian@popies.net> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
2007-10-14USBHID: add CM109 device to blacklistAlfred E. Heggestad
There is a separate driver cm109 for handling this device. Signed-off-by: Alfred E. Heggestad <aeh@db.org> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
2007-10-14HID: add support for Thrustmaster FGT Force Feedback wheelDmitry Torokhov
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 <anssi.hannula@gmail.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
2007-10-14HID: minimal autosuspend support for USB HID devicesOliver Neukum
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 <oneukum@suse.de> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
2007-08-02HID: Never call hid_free_buffers() when usbhid_device has been freedJiri Kosina
We can't call hid_free_buffers() when the underlying usbhid_device has already been freed. Signed-off-by: Jiri Kosina <jkosina@suse.cz>
2007-08-02USB HID: fix memory leak of usbhid_deviceJiri Kosina
Add forgotten freeing of usbhid_device structure. Signed-off-by: Jiri Kosina <jkosina@suse.cz>
2007-08-02USB HID: fix a possible NULL pointer dereference when we fail to allocate memoryJesper Juhl
If, in usb_hid_configure(), we fail to allocate storage for 'usbhid', "if (!(usbhid = kzalloc(sizeof(struct usbhid_device), GFP_KERNEL)))", then we'll jump to the 'fail:' label where we have this code: usb_free_urb(usbhid->urbin); usb_free_urb(usbhid->urbout); usb_free_urb(usbhid->urbctrl); Since we got here because we couldn't allocate storage for 'usbhid', what we have here is a NULL pointer dereference - ouch... This patch solves that little problem by adding a new 'fail_no_usbhid:' label after the problematic calls to usb_free_urb() and jumps to that one instead, in the problem case. Signed-off-by: Jesper Juhl <jesper.juhl@gmail.com> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
2007-08-02USB HID: add ASUS LCM to the blacklistChristian Lamparter
Some of ASUS' notebooks (e.g G Series) include a tiny oled display, which is attached to an internal USB bus. Unfortunatly the device reports a wrong DeviceDescriptor and is therefore identified as a HID device... Signed-off-by: Christian Lamparter <chunkeey@web.de> Signed-off-by: Jiri Kosina <jkosina@suse.cz>