aboutsummaryrefslogtreecommitdiff
path: root/drivers/input
AgeCommit message (Collapse)Author
2006-01-10Merge git://git.kernel.org/pub/scm/linux/kernel/git/dtor/inputLinus Torvalds
2006-01-10[PATCH] TTY layer buffering revampAlan Cox
The API and code have been through various bits of initial review by serial driver people but they definitely need to live somewhere for a while so the unconverted drivers can get knocked into shape, existing drivers that have been updated can be better tuned and bugs whacked out. This replaces the tty flip buffers with kmalloc objects in rings. In the normal situation for an IRQ driven serial port at typical speeds the behaviour is pretty much the same, two buffers end up allocated and the kernel cycles between them as before. When there are delays or at high speed we now behave far better as the buffer pool can grow a bit rather than lose characters. This also means that we can operate at higher speeds reliably. For drivers that receive characters in blocks (DMA based, USB and especially virtualisation) the layer allows a lot of driver specific code that works around the tty layer with private secondary queues to be removed. The IBM folks need this sort of layer, the smart serial port people do, the virtualisers do (because a virtualised tty typically operates at infinite speed rather than emulating 9600 baud). Finally many drivers had invalid and unsafe attempts to avoid buffer overflows by directly invoking tty methods extracted out of the innards of work queue structs. These are no longer needed and all go away. That fixes various random hangs with serial ports on overflow. The other change in here is to optimise the receive_room path that is used by some callers. It turns out that only one ldisc uses receive room except asa constant and it updates it far far less than the value is read. We thus make it a variable not a function call. I expect the code to contain bugs due to the size alone but I'll be watching and squashing them and feeding out new patches as it goes. Because the buffers now dynamically expand you should only run out of buffering when the kernel runs out of memory for real. That means a lot of the horrible hacks high performance drivers used to do just aren't needed any more. Description: tty_insert_flip_char is an old API and continues to work as before, as does tty_flip_buffer_push() [this is why many drivers dont need modification]. It does now also return the number of chars inserted There are also tty_buffer_request_room(tty, len) which asks for a buffer block of the length requested and returns the space found. This improves efficiency with hardware that knows how much to transfer. and tty_insert_flip_string_flags(tty, str, flags, len) to insert a string of characters and flags For a smart interface the usual code is len = tty_request_buffer_room(tty, amount_hardware_says); tty_insert_flip_string(tty, buffer_from_card, len); More description! At the moment tty buffers are attached directly to the tty. This is causing a lot of the problems related to tty layer locking, also problems at high speed and also with bursty data (such as occurs in virtualised environments) I'm working on ripping out the flip buffers and replacing them with a pool of dynamically allocated buffers. This allows both for old style "byte I/O" devices and also helps virtualisation and smart devices where large blocks of data suddenely materialise and need storing. So far so good. Lots of drivers reference tty->flip.*. Several of them also call directly and unsafely into function pointers it provides. This will all break. Most drivers can use tty_insert_flip_char which can be kept as an API but others need more. At the moment I've added the following interfaces, if people think more will be needed now is a good time to say int tty_buffer_request_room(tty, size) Try and ensure at least size bytes are available, returns actual room (may be zero). At the moment it just uses the flipbuf space but that will change. Repeated calls without characters being added are not cumulative. (ie if you call it with 1, 1, 1, and then 4 you'll have four characters of space. The other functions will also try and grow buffers in future but this will be a more efficient way when you know block sizes. int tty_insert_flip_char(tty, ch, flag) As before insert a character if there is room. Now returns 1 for success, 0 for failure. int tty_insert_flip_string(tty, str, len) Insert a block of non error characters. Returns the number inserted. int tty_prepare_flip_string(tty, strptr, len) Adjust the buffer to allow len characters to be added. Returns a buffer pointer in strptr and the length available. This allows for hardware that needs to use functions like insl or mencpy_fromio. Signed-off-by: Alan Cox <alan@redhat.com> Cc: Paul Fulghum <paulkf@microgate.com> Signed-off-by: Hirokazu Takata <takata@linux-m32r.org> Signed-off-by: Serge Hallyn <serue@us.ibm.com> Signed-off-by: Jeff Dike <jdike@addtoit.com> Signed-off-by: John Hawkes <hawkes@sgi.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com> Signed-off-by: Adrian Bunk <bunk@stusta.de> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-01-10Input: remove obsolete maple input driversPaul Mundt
These haven't worked in some time, and we've dropped support for the bus from the SH tree until someone shows some interest in maintaining it. Signed-off-by: Paul Mundt <lethal@linux-sh.org> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2006-01-10Input: prepare for f_ops constnessArjan van de Ven
Avoid doing assignments to a live ->fops so it can be marked as 'const'. Signed-off-by: Arjan van de Ven <arjan@infradead.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2006-01-10Input: wistron - do not crash if BIOS does not support interfaceMiloslav Trmac
offset can never be < 0 because it has type size_t. The driver currently oopses on insmod if BIOS does not support the interface, instead of refusing to load. Signed-off-by: Miloslav Trmac <mitr@volny.cz> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2006-01-10Input: grip_mp - kill commented out codeDmitry Torokhov
Kill leftovers of dynalloc conversion. Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2006-01-09Merge Linus' tree.Russell King
2006-01-09[ARM] Remove asm/irq.h includes from ARM driversRussell King
Many ARM drivers do not need to include asm/irq.h - remove this unnecessary include from some ARM drivers. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2006-01-08[PATCH] IRQ type flagsRussell King
Some ARM platforms have the ability to program the interrupt controller to detect various interrupt edges and/or levels. For some platforms, this is critical to setup correctly, particularly those which the setting is dependent on the device. Currently, ARM drivers do (eg) the following: err = request_irq(irq, ...); set_irq_type(irq, IRQT_RISING); However, if the interrupt has previously been programmed to be level sensitive (for whatever reason) then this will cause an interrupt storm. Hence, if we combine set_irq_type() with request_irq(), we can then safely set the type prior to unmasking the interrupt. The unfortunate problem is that in order to support this, these flags need to be visible outside of the ARM architecture - drivers such as smc91x need these flags and they're cross-architecture. Finally, the SA_TRIGGER_* flag passed to request_irq() should reflect the property that the device would like. The IRQ controller code should do its best to select the most appropriate supported mode. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-01-08[PATCH] small hp_sdc_rtc cleanup: use no_llseekMarcelo Tosatti
Use no_llseek function. Signed-off-by: Marcelo Tosatti <marcelo.tosatti@cyclades.com> Cc: "Brian S. Julin" <bri@calyx.com> Acked-by: Vojtech Pavlik <vojtech@suse.cz> Cc: Dmitry Torokhov <dtor_core@ameritech.net> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-01-07Merge git://git.kernel.org/pub/scm/linux/kernel/git/dtor/inputLinus Torvalds
2006-01-07[ARM] Move asm/hardware/clock.h to linux/clk.hRussell King
This is needs to be visible to other architectures using the AMBA bus and peripherals. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2006-01-07Merge with Linus' kernel.Russell King
2006-01-07[ARM] Move AMBA include files to include/linux/amba/Russell King
Since the ARM AMBA bus is used on MIPS as well as ARM, we need to make the bus available for other architectures to use. Move the AMBA include files from include/asm-arm/hardware/ to include/linux/amba/ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2006-01-06[PATCH] s390: cleanup KconfigMartin Schwidefsky
Sanitize some s390 Kconfig options. We have ARCH_S390, ARCH_S390X, ARCH_S390_31, 64BIT, S390_SUPPORT and COMPAT. Replace these 6 options by S390, 64BIT and COMPAT. Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-01-05Input: i8042 - add OQO Zepto to noloop dmi table.Ben Collins
Signed-off-by: Ben Collins <bcollins@ubuntu.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2006-01-05Input: atkbd - don't lose keymap settings when reconnecting keyboardDmitry Torokhov
Call serio_reconnect() instead of serio_rescan() when detecting that a new keyboard was plugged in. This should help KVM uses losing custom keymap settings when switching between boxes. Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2006-01-05Merge rsync://rsync.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6Dmitry Torokhov
2006-01-04Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-2.6Linus Torvalds
Trivial manual merge fixup for usb_find_interface clashes.
2006-01-04[PATCH] Input: add modalias supportRusty Russell
Here's the patch for modalias support for input classes. It uses comma-separated numbers, and doesn't describe all the potential keys (no module currently cares, and that would make the strings huge). The changes to input.h are to move the definitions needed by file2alias outside __KERNEL__. I chose not to move those definitions to mod_devicetable.h, because there are so many that it might break compile of something else in the kernel. The rest is fairly straightforward. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> CC: Kay Sievers <kay.sievers@vrfy.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2006-01-04[PATCH] driver core: replace "hotplug" by "uevent"Kay Sievers
Leave the overloaded "hotplug" word to susbsystems which are handling real devices. The driver core does not "plug" anything, it just exports the state to userspace and generates events. Signed-off-by: Kay Sievers <kay.sievers@suse.de> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2006-01-04[PATCH] remove CONFIG_KOBJECT_UEVENT optionKay Sievers
It makes zero sense to have hotplug, but not the netlink events enabled today. Remove this option and merge the kobject_uevent.h header into the kobject.h header file. Signed-off-by: Kay Sievers <kay.sievers@suse.de> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2006-01-04[PATCH] USB: remove .owner field from struct usb_driverGreg Kroah-Hartman
It is no longer needed, so let's remove it, saving a bit of memory. Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2006-01-03[ARM] Remove clk_use()/clk_unuse()Russell King
It seems that clk_use() and clk_unuse() are additional complexity which isn't required anymore. Remove them from the clock framework to avoid the additional confusion which they cause, and update all ARM machine types except for OMAP. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2005-12-30[PATCH] Input: warrior - fix HAT0Y axis setupDmitry Torokhov
This patch fixes a typo introduced by conversion to dynamic input_dev allocation. Signed-off-by: Dmitry Torokhov <dtor@mail.ru> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-12-28[SERMOUSE]: Sun mice speak 5-byte protocol too.David S. Miller
Noticed by Christophe Zimmerman, this explains the slow mouse movement with 2.6.x kernels. And checking the 2.4.x drivers/sbus/char/sunmouse.c driver shows we always used a 5-byte protocol with Sun mice in the past. I have no idea how the 3-byte thing got into the 2.6.x driver, but it's surely wrong. Signed-off-by: David S. Miller <davem@davemloft.net>
2005-12-28Input: wistron - convert to the new platform device interfaceDmitry Torokhov
Do not use platform_device_register_simple() as it is going away, implement ->probe() and ->remove() functions so manual binding and unbinding would work. Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2005-12-28Input: maceps2 - convert to the new platform device interfaceDmitry Torokhov
Do not use platform_device_register_simple() as it is going away, implement ->probe() and ->remove() functions so manual binding and unbinding will work with this driver. Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2005-12-28Input: q40kbd - convert to the new platform device interfaceDmitry Torokhov
Do not use platform_device_register_simple() as it is going away, implement ->probe() and ->remove() functions so manual binding and unbinding will work with this driver. Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2005-12-28Input: ct82c710 - convert to the new platform device interfaceDmitry Torokhov
Do not use platform_device_register_simple() as it is going away, implement ->probe() and ->remove() functions so manual binding and unbinding will work with this driver. Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2005-12-28Input: i8042 - convert to the new platform device interfaceDmitry Torokhov
Do not use platform_device_register_simple() as it is going away, implement ->probe() and ->remove() functions so manual binding and unbinding will work with this driver. Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2005-12-22[SPARC]: introduce a SPARC Kconfig symbolAdrian Bunk
Introduce a Kconfig symbol SPARC that is defined on both the sparc and sparc64 architectures. This symbol makes some dependencies more readable. Signed-off-by: Adrian Bunk <bunk@stusta.de> Signed-off-by: David S. Miller <davem@davemloft.net>
2005-12-21Input: logips2pp - add signature of MouseMan Wheel Mouse (87)Dmitry Torokhov
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2005-12-21Input: sparcspkr - register with driver core as a platfrom deviceDmitry Torokhov
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2005-12-21Input: m68kspkr - register with driver core as a platfrom deviceDmitry Torokhov
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2005-12-21Input: pcspkr - register with driver core as a platfrom deviceDmitry Torokhov
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2005-12-21Input: lifebook - add DMI signature of Fujitsu Lifebook B142Daniele Gozzi
This DMI data was found in Fujitsu LifeBook B142 (Product S/N FPC01003B, italian keyboard); re: bugzilla #5335 Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2005-12-21Input: add help entry for FM801 gameport driver to KconfigDmitry Torokhov
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2005-12-21Input: i8042 - disable MUX mode for Sharp MM20Dmitry Torokhov
Add yet another entry to the ever-growing list of boxes with non-working MUX implementation. Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2005-12-21Input: psmouse - don't leave mouse asleepDmitry Torokhov
It looks like quite a few mice out there treat PSMOUSE_RESET_DIS as a powerdown request and turn off the light rendering the mouse unusable. Vojtech recommended to switch from PSMOUSE_RESET_DIS to full reset, however we don't want to do that everywhere as full reset is pretty slow. Instead we only use it before probing for "generic" protocols, such as IntelliMouse and Explorer, to make sure that the mouse will be woken up if it went to sleep as a result of PSMOUSE_RESET_DIS issued earlier. Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2005-12-21Input: ALPS - add signature for HP ze1115Larry Finger
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2005-12-20Manual merge with Linus (conflict in drivers/input/misc/wistron_bnts.c)Dmitry Torokhov
2005-12-15[PATCH] drivers/input/misc/wistron_btns.c NULL noise removalAl Viro
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-12-14[PATCH] Input: ALPS - correctly report button presses on Fujitsu Siemens S6010Vojtech Pavlik
Without this patch Forward and Backward buttons on the touchpad do not generate any events. Signed-off-by: Dmitry Torokhov <dtor@mail.ru> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-12-11Input: wistron - add Acer TravelMate 240 to DMI tableAshutosh Naik
Signed-off-by: Ashutosh Naik <ashutosh.naik@gmail.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2005-12-11Input: logips2pp - add new signature (85)Jasper Spaans
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2005-12-11Input: mousedev - make module parameters visible in sysfsDmitry Torokhov
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2005-12-11Input: evdev - consolidate compat and regular codeDmitry Torokhov
Compat and normal code mirror each other and are hard to maintain. When EV_SW was added compat_ioctl case was missed. Here is my attempt at consolidating the code. Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2005-11-20Input: make serio and gameport more swsusp friendlyDmitry Torokhov
kseriod and kgameportd used to process all pending events before checking for freeze condition. This may cause swsusp to time out while stopping tasks when resuming. Switch to process events one by one to check freeze status more often. Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2005-11-20Input: handle failures in input_register_device()Dmitry Torokhov
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>