- 21 Jun, 2006 6 commits
-
-
Rene Rebe authored
This adds the Apple MacBook product IDs for the Fn translation to the usbhid. Signed-off-by:
Rene Rebe <rene@exactcode.de> Signed-off-by:
Greg Kroah-Hartman <gregkh@suse.de>
-
Alan Stern authored
This patch (as702) makes usbhid use the new usb_reset_composite_device API. Now HID interfaces can coexist with other interfaces on the same device, and a reset can safely be requested by any of the drivers. Signed-off-by:
Alan Stern <stern@rowland.harvard.edu> Signed-off-by:
Greg Kroah-Hartman <gregkh@suse.de>
-
Alan Stern authored
Now that usbhid automatically applies HID_QUIRK_NOGET to keyboards and mice, we no longer need the blacklist entries that were present for no other purpose. This patch (as698) removes them. Signed-off-by:
Alan Stern <stern@rowland.harvard.edu> Acked-by:
Vojtech Pavlik <vojtech@suse.cz> Signed-off-by:
Greg Kroah-Hartman <gregkh@suse.de>
-
Alan Stern authored
It seems to be relatively common for USB keyboards and mice to dislike being polled for reports. Since there's no need to poll a keyboard or a mouse, this patch (as685) automatically sets the HID_QUIRK_NOGET flag for devices that advertise themselves as either sort of device with boot protocol support. This won't cure all the problems since some devices don't support the boot protocol, but it's simple and easy and it should fix quite a few problems. Signed-off-by:
Alan Stern <stern@rowland.harvard.edu> Signed-off-by:
Greg Kroah-Hartman <gregkh@suse.de>
-
Bart Massey authored
[PATCH] USB HID/HIDBP, INPUT DRIVERS: fix various usb/input/hid-input.c bugs that make Apple Mighty Mouse work poorly Transposed lines of code in drivers/usb/input/hid-input.c causes the capability bits for a new HID device to be set before quirks are applied at configuration time. When an HID event is then sent up to the input layer, it may then be discarded as irrelevant because the wrong capability bit is set. Further, the quirks for the Apple Mighty Mouse are not quite right: the horizontal scrolling needs its axis reversed, and the left and center buttons are transposed. Also, the mouse is labeled in the kernel with its earlier name (I think) of Apple PowerMouse. Steps to reproduce problem: Plug in an Apple Mighty Mouse. Note that horizontal scrolling doesn't work at all, and in fact doesn't generate any input events on /dev/input/eventN. Note also that pushing the middle button performs the right button action, and vice versa. Once you have the horizontal scrolling working, note that it is backward WRT both to vertical scrolling and to common sense. This patch maybe should be broken up, as it does address two problems. The transposed code in hidinput_configure_usage() probably creates bugs beyond just the Mighty Mouse. The rest of the patch renames POWERMOUSE to MIGHTYMOUSE everywhere (which I *believe* is correct), fixes the MIGHTYMOUSE quirk to swap the center and right mouse buttons, and adds a new quirk HID_QUIRK_INVERT_HWHEEL also assigned to the MIGHTYMOUSE with code in hidinput_hid_event() to implement it. Signed-off-by:
Bart Massey <bart@cs.pdx.edu> Signed-off-by:
Greg Kroah-Hartman <gregkh@suse.de>
-
Henk Vergonet authored
Keys on Yealink based phones will not function properly when using the generic HID driver. This patch prevents the generic HID code from grabbing the device before the regular yealink driver can get a grip on it. Signed-off-by:
Henk Vergonet <Henk.Vergonet@gmail.com> Signed-off-by:
Vojtech Pavlik <vojtech@suse.cz> Signed-off-by:
Greg Kroah-Hartman <gregkh@suse.de>
-
- 12 May, 2006 1 commit
-
-
Olaf Hering authored
After recent changes, the USB keyboard as shipped with IBM pSeries systems does not work anymore, unless the keyboard is replugged after reboot. Adding this model to the blacklist fixes it. Signed-off-by:
Olaf Hering <olh@suse.de> Signed-off-by:
Greg Kroah-Hartman <gregkh@suse.de>
-
- 14 Apr, 2006 3 commits
-
-
Jeffrey Vandenbroucke sign authored
When not using this patch, the kernel will continuously return "input irq status -32 received", while making the keyboard unusable. This can be easely resolved using HID_QUIRK_NOGET. Vendor-ID and Device-ID should be applied to hid-core.c, and making an entry to make use of it. Signed-off-by:
Jeffrey Vandenbroucke <jeffrey@wirehead.be> Cc: Alan Stern <stern@rowland.harvard.edu> Cc: Greg KH <greg@kroah.com> Cc: David Brownell <david-b@pacbell.net> Signed-off-by:
Andrew Morton <akpm@osdl.org> Signed-off-by:
Greg Kroah-Hartman <gregkh@suse.de>
-
Ping Cheng authored
This patch adds support for DTF 521, Intuos3 12x12 and 12x19 Signed-off-by:
Ping Cheng <pingc@wacom.com> Acked-by:
Vojtech Pavlik <vojtech@suse.cz> Signed-off-by:
Greg Kroah-Hartman <gregkh@suse.de>
-
Daniel Ritz authored
A new single driver for various USB touchscreen devices. It currently supports: - eGalax TouchKit - PanJit TouchSet - 3M/Microtouch - ITM Touchscreens Support for the diffent devices can be enabled/disable when CONFIG_EMBEDDED is set. Sizes for comparision: text data bss dec hex filename 2942 724 4 3670 e56 touchkitusb.ko 2647 660 0 3307 ceb mtouchusb.ko 2448 628 0 3076 c04 itmtouch.ko 4145 1012 12 5169 1431 usbtouchscreen.ko Signed-off-by:
Daniel Ritz <daniel.ritz@gmx.ch> Signed-off-by:
Greg Kroah-Hartman <gregkh@suse.de>
-
- 24 Mar, 2006 1 commit
-
-
Alexey Dobriyan authored
Signed-off-by:
Alexey Dobriyan <adobriyan@gmail.com> Signed-off-by:
Andrew Morton <akpm@osdl.org> Signed-off-by:
Linus Torvalds <torvalds@osdl.org>
-
- 20 Mar, 2006 3 commits
-
-
Wolfgang Rohdewald authored
Signed-off-by:
Wolfgang Rohdewald <wolfgang@rohdewald.de> Signed-off-by:
Greg Kroah-Hartman <gregkh@suse.de>
-
Alan Stern authored
This patch (as628c) adds error handling to the USB HID core. When an error is reported for an interrupt URB, the driver will do delayed retries, at increasing intervals, for up to one second. If that doesn't work, it will try to reset the device. Testing by users has shown that both the retries and the resets end up getting used. Signed-off-by:
Alan Stern <stern@rowland.harvard.edu> Signed-off-by:
Greg Kroah-Hartman <gregkh@suse.de>
-
Oliver Neukum authored
this uses kzalloc in hid. Signed-off-by:
Oliver Neukum <oliver@neukum.name> Signed-off-by:
Greg Kroah-Hartman <gregkh@suse.de>
-
- 28 Feb, 2006 1 commit
-
-
Andrew Fuller authored
This patch is for the Dual USB Joypad [0925:8866] from Wisegroup. The HID_QUIRK_NOGET is necessary for it to respond to input, and the HID_QUIRK_MULTI_INPUT is necessary to have two js# nodes appear. Signed-off-by:
Andrew Fuller <mactalla.obair@gmail.com> Cc: "Dmitry Torokhov" <dmitry.torokhov@gmail.com> Signed-off-by:
Greg Kroah-Hartman <gregkh@suse.de>
-
- 13 Feb, 2006 1 commit
-
-
Michael Hund authored
Signed-off-by:
Michael Hund <mhund@ld-didactic.de> Signed-off-by:
Greg Kroah-Hartman <gregkh@suse.de>
-
- 31 Jan, 2006 2 commits
-
-
Olaf Hering authored
The warn() macro in include/linux/usb.h adds a newline. Signed-off-by:
Olaf Hering <olh@suse.de> Signed-off-by:
Greg Kroah-Hartman <gregkh@suse.de>
-
Vojtech Pavlik authored
My earlier experiment (adding a clear-halt for the interrupt-in endpoint) failed. It turns out that it does cause problems for other devices. And it wasn't needed anyway; a simple blacklist entry was enough to get my HP keyboard working. This patch (as643) removes the clear-halt call and adds the blacklist entry. Signed-off-by:
Alan Stern <stern@rowland.harvard.edu> Signed-off-by:
Vojtech Pavlik <vojtech@suse.cz> Signed-off-by:
Greg Kroah-Hartman <gregkh@suse.de>
-
- 14 Jan, 2006 1 commit
-
-
Michael Hanselmann authored
This patch implements support for the fn key on Apple PowerBooks using USB based keyboards and makes them behave like their ADB counterparts. Signed-off-by:
Michael Hanselmann <linux-kernel@hansmi.ch> Acked-by:
Rene Nussbaumer <linux-kernel@killerfox.forkbomb.ch> Acked-by:
Johannes Berg <johannes@sipsolutions.net> Acked-by:
Benjamin Herrenschmidt <benh@kernel.crashing.org> Acked-by:
Vojtech Pavlik <vojtech@suse.cz> Signed-off-by:
Dmitry Torokhov <dtor@mail.ru>
-
- 13 Jan, 2006 1 commit
-
-
Vojtech Pavlik authored
The Cherry Cymotion is a special Linux keyboard made by Cherry, with only one little problem: it doesn't work with Linux. This patch (originally by hexten.net, cleaned up by me) makes it work including all the special keys. Signed-off-by:
Vojtech Pavlik <vojtech@suse.cz> Signed-off-by:
Dmitry Torokhov <dtor@mail.ru>
-
- 04 Jan, 2006 2 commits
-
-
Arjan van de Ven authored
patch below marks various USB tables and variables as const so that they end up in .rodata section and don't cacheline share with things that get written to. For the non-array variables it also allows gcc to optimize more. Signed-off-by:
Arjan van de Ven <arjan@infradead.org> Signed-off-by:
Greg Kroah-Hartman <gregkh@suse.de>
-
Greg Kroah-Hartman authored
It is no longer needed, so let's remove it, saving a bit of memory. Signed-off-by:
Greg Kroah-Hartman <gregkh@suse.de>
-
- 13 Dec, 2005 1 commit
-
-
Adam Kropelin authored
When it detects a truncated report, hid-core emits a warning and then processes the report as usual. This is good because it allows buggy devices to still get data thru to userspace. However, the missing bytes of the report should be cleared before processing, otherwise userspace will be handed partially-uninitialized data. This fixes Debian tracker bug #330487. Signed-off-by:
Adam Kropelin <akropel1@rochester.rr.com> Cc: Vojtech Pavlik <vojtech@suse.cz> Acked-by:
Dmitry Torokhov <dtor_core@ameritech.net> Signed-off-by:
Andrew Morton <akpm@osdl.org> Signed-off-by:
Linus Torvalds <torvalds@osdl.org>
-
- 17 Nov, 2005 1 commit
-
-
Ping Cheng authored
This patch adds support for Graphire4, Cintiq 710, Intuos3 6x11, etc. Signed-off-by:
Ping Cheng <pingc@wacom.com> Signed-off-by:
Greg Kroah-Hartman <gregkh@suse.de> Signed-off-by:
Linus Torvalds <torvalds@osdl.org>
-
- 28 Oct, 2005 3 commits
-
-
Alan Stern authored
This patch (as577) adds a Clear-Halt call on the Interrupt-in endpoint during input device configuration. Without it my HP USB keyboard doesn't work. Vojtech says it's worth trying, since it might help with some recalcitrant devices. On the other hand, it might interfere with others. I'm submitting it so that it can get tested by a range of users. Signed-off-by:
Alan Stern <stern@rowland.harvard.edu> Signed-off-by:
Greg Kroah-Hartman <gregkh@suse.de>
-
David Brownell authored
This updates the handling of power state for USB interfaces. - Formalizes an existing invariant: interface "power state" is a boolean: ON when I/O is allowed, and FREEZE otherwise. It does so by defining some inlined helpers, then using them. - Adds a useful invariant: the only interfaces marked active are those bound to non-suspended drivers. Later patches build on this invariant. - Simplifies the interface driver API (and removes some error paths) by removing the requirement that they record power state changes during suspend and resume callbacks. Now usbcore does that. A few drivers were simplified to address that last change. Signed-off-by:
David Brownell <dbrownell@users.sourceforge.net> Signed-off-by:
Greg Kroah-Hartman <gregkh@suse.de> drivers/usb/core/hub.c | 33 +++++++++------------ drivers/usb/core/message.c | 1 drivers/usb/core/usb.c | 65 +++++++++++++++++++++++++++++++++---------- drivers/usb/core/usb.h | 18 +++++++++++ drivers/usb/input/hid-core.c | 2 - drivers/usb/misc/usbtest.c | 10 ------ drivers/usb/net/pegasus.c | 2 - drivers/usb/net/usbnet.c | 2 - 8 files changed, 85 insertions(+), 48 deletions(-)
-
Dmitry Torokhov authored
Input: convert drivers/iusb/input to dynamic input_dev allocation This is required for input_dev sysfs integration Signed-off-by:
Dmitry Torokhov <dtor@mail.ru> Signed-off-by:
Greg Kroah-Hartman <gregkh@suse.de>
-
- 17 Oct, 2005 1 commit
-
-
Christian Krause authored
During the development of an USB device I found a bug in the handling of Highspeed HID devices in the kernel. What happened? Highspeed HID devices are correctly recognized and enumerated by the kernel. But even if usbhid kernel module is loaded, no HID reports are received by the kernel. The output of the hardware USB analyzer told me that the host doesn't even poll for interrupt IN transfers (even the "interrupt in" USB transfer are polled by the host). After some debugging in hid-core.c I've found the reason. In case of a highspeed device, the endpoint interval is re-calculated in driver/usb/input/hid-core.c: line 1669: /* handle potential highspeed HID correctly */ interval = endpoint->bInterval; if (dev->speed == USB_SPEED_HIGH) interval = 1 << (interval - 1); Basically this calculation is correct (refer to USB 2.0 spec, 9.6.6). This new calculated value of "interval" is used as input for usb_fill_int_urb: line 1685: usb_fill_int_urb(hid->urbin, dev, pipe, hid->inbuf, 0, hid_irq_in, hid, interval); Unfortunately the same calculation as above is done a second time in usb_fill_int_urb in the file include/linux/usb.h: line 933: if (dev->speed == USB_SPEED_HIGH) urb->interval = 1 << (interval - 1); else urb->interval = interval; This means, that if the endpoint descriptor (of a high speed device) specifies e.g. bInterval = 7, the urb->interval gets the value: hid-core.c: interval = 1 << (7-1) = 0x40 = 64 urb->interval = 1 << (interval -1) = 1 << (63) = integer overflow Because of this the value of urb->interval is sometimes negative and is rejected in core/urb.c: line 353: /* too small? */ if (urb->interval <= 0) return -EINVAL; The conclusion is, that the recalculaton of the interval (which is necessary for highspeed) should not be made twice, because this is simply wrong. ;-) Re-calculation in usb_fill_int_urb makes more sense, because it is the most general approach. So it would make sense to remove it from hid-core.c. Because in hid-core.c the interval variable is only used for calling usb_fill_int_urb, it is no problem to remove the highspeed re-calculation in this file. Signed-off-by:
Christian Krause <chkr@plauener.de> Signed-off-by:
Greg Kroah-Hartman <gregkh@suse.de> Signed-off-by:
Linus Torvalds <torvalds@osdl.org>
-
- 12 Sep, 2005 1 commit
-
-
Greg KH authored
This reverts 22af8878 commit. Signed-off-by:
Greg Kroah-Hartman <gregkh@suse.de>
-
- 08 Sep, 2005 2 commits
-
-
Alan Stern authored
29 July 2005, Cambridge, MA: This afternoon Alan Stern submitted a patch to remove the URB_ASYNC_UNLINK flag from the Linux kernel. Mr. Stern explained, "This flag is a relic from an earlier, less-well-designed system. For over a year it hasn't been used for anything other than printing warning messages." An anonymous spokesman for the Linux kernel development community commented, "This is exactly the sort of thing we see happening all the time. As the kernel evolves, support for old techniques and old code can be jettisoned and replaced by newer, better approaches. Proprietary operating systems do not have the freedom or flexibility to change so quickly." Mr. Stern, a staff member at Harvard University's Rowland Institute who works on Linux only as a hobby, noted that the patch (labelled as548) did not update two files, keyspan.c and option.c, in the USB drivers' "serial" subdirectory. "Those files need more extensive changes," he remarked. "They examine the status field of several URBs at times when they're not supposed to. That will need to be fixed before the URB_ASYNC_UNLINK flag is removed." Greg Kroah-Hartman, the kernel maintainer responsible for overseeing all of Linux's USB drivers, did not respond to our inquiries or return our calls. His only comment was "Applied, thanks." Signed-off-by:
Alan Stern <stern@rowland.harvard.edu> Signed-off-by:
Greg Kroah-Hartman <gregkh@suse.de>
-
Andrew de Quincey authored
To recap: My new G4 powerbook has a bluetooth device that boots up in what apppears to be a compatability mode - it looks exactly like an HID keyboard/mouse device. A special command sequence is sent to switch it into full bluetooth mode. When this occurs the original HID device vanishes, and a new (bluetooth HID) USB device appears on the bus with a different product ID. The original thread is here: http://sourceforge.net/mailarchive/message.php?msg_id=12532263 The attached patch adds the device to the hid-core quirks so that hid-core ignores it. Signed-off-by:
Andrew de Quincey <adq_dvb@lidskialf.net> Signed-off-by:
Greg Kroah-Hartman <gregkh@suse.de>
-
- 05 Sep, 2005 1 commit
-
-
Brian Schau authored
The device is a Wireless Security Lock (WSL). The device identifies itself as a Cypress Ultra Mouse. It is, however, not a mouse at all and as such, shouldn't be handled as one. Signed-off-by:
Brian Schau <brian@schau.com> Signed-off-by:
Vojtech Pavlik <vojtech@suse.cz> Signed-off-by:
Andrew Morton <akpm@osdl.org> Signed-off-by:
Dmitry Torokhov <dtor@mail.ru>
-
- 04 Sep, 2005 4 commits
-
-
Vojtech Pavlik authored
Reported-by:
Karl Relton <karllinuxtest.relton@ntlworld.com> Signed-off-by:
Vojtech Pavlik <vojtech@suse.cz> Signed-off-by:
Dmitry Torokhov <dtor@mail.ru>
-
Vojtech Pavlik authored
Add a quirk for the Apple Powermouse, remapping GenericDesktop.Z to Rel.HWheel, to allow horizontal scrolling in Linux. Signed-off-by:
Vojtech Pavlik <vojtech@suse.cz> Signed-off-by:
Dmitry Torokhov <dtor@mail.ru>
-
Vojtech Pavlik authored
Add a missing break; statement to the URB status handling in hid-core.c, avoiding flushing the request queue on success. Signed-off-by:
Vojtech Pavlik <vojtech@suse.cz> Signed-off-by:
Dmitry Torokhov <dtor@mail.ru>
-
Michael Haboustak authored
Fixes handling of multi-transaction reports for HID devices. New function hid_size_buffers() that calculates the longest report for each endpoint and stores the result in the hid_device object. These lengths are used to allocate buffers that are large enough to store any report on the endpoint. For compatibility, the minimum size for an endpoint buffer set to HID_BUFFER_SIZE rather than the known optimal case (the longest report length). It fixes bug #3063 in bugzilla. Signed-off-by:
Michael Haboustak <mike-@cinci.rr.com> I simplified the patch a bit to use just a single buffer size. Signed-off-by:
Vojtech Pavlik <vojtech@suse.cz> Signed-off-by:
Dmitry Torokhov <dtor@mail.ru>
-
- 12 Jul, 2005 1 commit
-
-
Michael Hund authored
below you will find one patch to hid-core.c, which lets usbhid ignore our HID devices. It would be nice, if you can apply it. Signed-off-by:
Michael Hund <mhund@ld-didactic.de> Signed-off-by:
Greg Kroah-Hartman <gregkh@suse.de>
-
- 11 Jul, 2005 2 commits
-
-
Adam Kropelin authored
Currently hid-core follows the same code path for input reports regardless of whether they are a result of interrupt transfers or control transfers. That leads to interrupt events erroneously being reported to hiddev for regular control transfers. Prior to 2.6.12 the problem was mitigated by the fact that reporting to hiddev is supressed if the field value has not changed, which is often the case. Said filtering was removed in 2.6.12-rc1 which means any input reports fetched via control transfers result in hiddev interrupt events. This behavior can quickly lead to a feedback loop where a userspace app, in response to interrupt events, issues control transfers which in turn create more interrupt events. This patch prevents input reports that arrive via control transfers from being reported to hiddev as interrupt events. Signed-off-by:
Adam Kropelin <akropel1@rochester.rr.com> Signed-off-by:
Vojtech Pavlik <vojtech@suse.cz> Signed-off-by:
Dmitry Torokhov <dtor@mail.ru>
-
Luca T authored
Signed-off-by:
Vojtech Pavlik <vojtech@suse.cz> Signed-off-by:
Dmitry Torokhov <dtor@mail.ru>
-
- 23 Jun, 2005 1 commit
-
-
Stelian Pop authored
Drivers need to return -ENODEV when they can't bind to a device. Anything else stops the "bind a device to a driver" search. From: Stelian Pop <stelian@popies.net> Signed-off-by:
Greg Kroah-Hartman <gregkh@suse.de>
-