summaryrefslogtreecommitdiffstats
path: root/drivers/input/serio
Commit message (Collapse)AuthorAgeFilesLines
* [PATCH] powerpc: Use check_legacy_ioport() on ppc32 too.David Woodhouse2006-04-281-2/+2
| | | | | | | | | | | | | Some people report that we die on some Macs when we are expecting to catch machine checks after poking at some random I/O address. I'd seen it happen on my dual G4 with serial ports until we fixed those to use OF, but now other users are reporting it with i8042. This expands the use of check_legacy_ioport() to avoid that situation even on 32-bit kernels. Signed-off-by: David Woodhouse <dwmw2@infradead.org> Signed-off-by: Paul Mackerras <paulus@samba.org>
* Manual merge with Linus.Dmitry Torokhov2006-04-023-6/+7
|\ | | | | | | | | | | | | Conflicts: arch/powerpc/kernel/setup-common.c drivers/input/keyboard/hil_kbd.c drivers/input/mouse/hil_ptr.c
| * [PARISC] I/O-Space must be ioremap_nocache()'dHelge Deller2006-03-301-2/+2
| | | | | | | | | | | | | | Addresses in F-space must be accessed uncached on most parisc machines. Signed-off-by: Helge Deller <deller@parisc-linux.org> Signed-off-by: Kyle McMartin <kyle@parisc-linux.org>
| * BUG_ON() Conversion in input/serio/hp_sdc_mlc.cEric Sesterhenn2006-03-261-3/+4
| | | | | | | | | | | | | | | | this changes if() BUG(); constructs to BUG_ON() which is cleaner and can better optimized away Signed-off-by: Eric Sesterhenn <snakebyte@gmx.de> Signed-off-by: Adrian Bunk <bunk@stusta.de>
| * BUG_ON() Conversion in input/serio/hil_mlc.cEric Sesterhenn2006-03-241-1/+1
| | | | | | | | | | | | | | | | this changes if() BUG(); constructs to BUG_ON() which is cleaner and can better optimized away Signed-off-by: Eric Sesterhenn <snakebyte@gmx.de> Signed-off-by: Adrian Bunk <bunk@stusta.de>
* | Input: serio - fix memory leakAdrian Bunk2006-03-141-0/+1
| | | | | | | | | | Signed-off-by: Adrian Bunk <bunk@stusta.de> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* | Input: i8042 - fix logic around pnp_register_driver()Bjorn Helgaas2006-03-141-10/+16
| | | | | | | | | | | | | | | | Do not assume that pnp_register_driver() returns the number of devices claimed. Signed-off-by: Bjorn Helgaas <bjorn.helgaas@hp.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* | Input: use kzalloc() throughout the codeEric Sesterhenn2006-03-144-10/+5Star
| | | | | | | | | | Signed-off-by: Eric Sesterhenn <snakebyte@gmx.de> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* | Input: initialize serio and gameport at subsystem levelDmitry Torokhov2006-02-191-1/+1
| | | | | | | | | | | | | | | | | | Serio and gameport cores do not depend on other drivers and are used by code living outside of drivers/input/{gameport|serio}. Registering them at subsystem level guarantees that they are fully initialized before anyone tries to use them. Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* | Input: serio - semaphore to mutex conversionArjan van de Ven2006-02-193-38/+40
|/ | | | | | | | | | The conversion was generated via scripts, and the result was validated automatically via a script as well. Signed-off-by: Arjan van de Ven <arjan@infradead.org> Signed-off-by: Ingo Molnar <mingo@elte.hu> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* Input: kill remnants of 98kbd{,-io} and 98spkrArthur Othieno2006-02-151-1/+0Star
| | | | | | | | | 98kbd{,-io} and 98spkr all went out with PC98 subarch. Remove stale Makefile entries that remained. Signed-off-by: Arthur Othieno <apgo@patchbomb.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* Merge master.kernel.org:/pub/scm/linux/kernel/git/gregkh/driver-2.6Linus Torvalds2006-01-141-5/+7
|\
| * [PATCH] Add serio bus_type probe and remove methodsRussell King2006-01-131-5/+7
| | | | | | | | | | Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
* | Merge master.kernel.org:/pub/scm/linux/kernel/git/dtor/inputLinus Torvalds2006-01-141-0/+7
|\ \ | |/ |/|
| * Input: i8042 - add Sony Vaio FSC-115b to MUX blacklistVojtech Pavlik2006-01-141-0/+7
| | | | | | | | | | Signed-off-by: Vojtech Pavlik <vojtech@suse.cz> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* | [PATCH] TTY layer buffering revampAlan Cox2006-01-101-12/+1Star
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* | [ARM] Remove asm/irq.h includes from ARM driversRussell King2006-01-091-1/+0Star
| | | | | | | | | | | | | | 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>
* | Merge git://git.kernel.org/pub/scm/linux/kernel/git/dtor/inputLinus Torvalds2006-01-075-123/+254
|\|
| * Input: i8042 - add OQO Zepto to noloop dmi table.Ben Collins2006-01-061-0/+8
| | | | | | | | | | Signed-off-by: Ben Collins <bcollins@ubuntu.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
| * Merge rsync://rsync.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6Dmitry Torokhov2006-01-062-12/+12
| |\
| * | Input: maceps2 - convert to the new platform device interfaceDmitry Torokhov2005-12-281-16/+52
| | | | | | | | | | | | | | | | | | | | | | | | 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>
| * | Input: q40kbd - convert to the new platform device interfaceDmitry Torokhov2005-12-281-32/+57
| | | | | | | | | | | | | | | | | | | | | | | | 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>
| * | Input: ct82c710 - convert to the new platform device interfaceDmitry Torokhov2005-12-281-26/+63
| | | | | | | | | | | | | | | | | | | | | | | | 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>
| * | Input: i8042 - convert to the new platform device interfaceDmitry Torokhov2005-12-281-49/+67
| | | | | | | | | | | | | | | | | | | | | | | | 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>
| * | Input: i8042 - disable MUX mode for Sharp MM20Dmitry Torokhov2005-12-211-0/+7
| | | | | | | | | | | | | | | | | | | | | Add yet another entry to the ever-growing list of boxes with non-working MUX implementation. Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* | | [ARM] Move asm/hardware/clock.h to linux/clk.hRussell King2006-01-071-1/+1
| | | | | | | | | | | | | | | | | | | | | 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>
* | | Merge with Linus' kernel.Russell King2006-01-071-11/+11
|\ \ \ | | |/ | |/|
| * | [PATCH] driver core: replace "hotplug" by "uevent"Kay Sievers2006-01-051-11/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* | | [ARM] Move AMBA include files to include/linux/amba/Russell King2006-01-071-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* | | [ARM] Remove clk_use()/clk_unuse()Russell King2006-01-031-8/+1Star
|/ / | | | | | | | | | | | | | | | | 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>
* / [SPARC]: introduce a SPARC Kconfig symbolAdrian Bunk2005-12-231-1/+1
|/ | | | | | | | | | 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>
* Input: make serio and gameport more swsusp friendlyDmitry Torokhov2005-11-201-3/+9
| | | | | | | | | 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>
* [DRIVER MODEL] Convert platform drivers to use struct platform_driverRussell King2005-11-092-19/+21
| | | | | | | | | This allows us to eliminate the casts in the drivers, and eventually remove the use of the device_driver function pointer methods for platform device drivers. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk> Acked-by: Greg Kroah-Hartman <gregkh@suse.de>
* Merge master.kernel.org:/home/rmk/linux-2.6-drvmodelLinus Torvalds2005-10-315-1/+5
|\ | | | | | | Manual #include fixups for clashes - there may be some unnecessary
| * Create platform_device.h to contain all the platform device details.Russell King2005-10-295-1/+5
| | | | | | | | | | | | | | | | Convert everyone who uses platform_bus_type to include linux/platform_device.h. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk> Acked-by: Greg Kroah-Hartman <gregkh@suse.de>
* | [PATCH] fix missing includesTim Schmielau2005-10-311-0/+1
|/ | | | | | | | | | | | | | | | | | | | | I recently picked up my older work to remove unnecessary #includes of sched.h, starting from a patch by Dave Jones to not include sched.h from module.h. This reduces the number of indirect includes of sched.h by ~300. Another ~400 pointless direct includes can be removed after this disentangling (patch to follow later). However, quite a few indirect includes need to be fixed up for this. In order to feed the patches through -mm with as little disturbance as possible, I've split out the fixes I accumulated up to now (complete for i386 and x86_64, more archs to follow later) and post them before the real patch. This way this large part of the patch is kept simple with only adding #includes, and all hunks are independent of each other. So if any hunk rejects or gets in the way of other patches, just drop it. My scripts will pick it up again in the next round. Signed-off-by: Tim Schmielau <tim@physik3.uni-rostock.de> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* Merge master.kernel.org:/pub/scm/linux/kernel/git/gregkh/driver-2.6Linus Torvalds2005-10-281-9/+4Star
|\
| * [PATCH] DRIVER MODEL: Get rid of the obsolete tri-level suspend/resume callbacksRussell King2005-10-281-9/+4Star
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In PM v1, all devices were called at SUSPEND_DISABLE level. Then all devices were called at SUSPEND_SAVE_STATE level, and finally SUSPEND_POWER_DOWN level. However, with PM v2, to maintain compatibility for platform devices, I arranged for the PM v2 suspend/resume callbacks to call the old PM v1 suspend/resume callbacks three times with each level in order so that existing drivers continued to work. Since this is obsolete infrastructure which is no longer necessary, we can remove it. Here's an (untested) patch to do exactly that. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
* | [PARISC] Update parisc specific input code from parisc treeMatthew Wilcox2005-10-222-10/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Update drivers to new input layer changes. Signed-off-by: Helge Deller <deller@parisc-linux.org> Signed-off-by: Matthew Wilcox <willy@parisc-linux.org> Reorder code in gscps2_interrupt() and only enable ports when opened. This fixes issues with hangs booting an SMP kernel on my C360. Previously serio_interrupt() could be called before the lock in struct serio was initialised. Signed-off-by: Richard Hirst <rhirst@parisc-linux.org> Signed-off-by: Kyle McMartin <kyle@parisc-linux.org>
* | [PARISC] Convert parisc_device to use struct resource for hpaMatthew Wilcox2005-10-222-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | Convert pa_dev->hpa from an unsigned long to a struct resource. Signed-off-by: Matthew Wilcox <willy@parisc-linux.org> Fix up users of ->hpa to use ->hpa.start instead. Signed-off-by: Matthew Wilcox <willy@parisc-linux.org> Signed-off-by: Kyle McMartin <kyle@parisc-linux.org>
* | [PARISC] Change the driver names so /sys/bus/parisc/drivers/ looks betterMatthew Wilcox2005-10-222-2/+2
|/ | | | | | | | | Make /sys/bus/parisc/drivers look better by cleaning up parisc_driver names. Signed-off-by: Matthew Wilcox <willy@parisc-linux.org> Signed-off-by: Kyle McMartin <kyle@parisc-linux.org>
* Input: i8042 - use kzalloc instead of kcallocDmitry Torokhov2005-09-101-3/+3
| | | | Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* Manual merge with LinusDmitry Torokhov2005-09-101-2/+2
|\
| * [PATCH] input: convert kcalloc to kzallocPekka Enberg2005-09-081-2/+2
| | | | | | | | | | | | | | | | | | This patch converts kcalloc(1, ...) calls to use the new kzalloc() function. Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi> Cc: Vojtech Pavlik <vojtech@suse.cz> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* | Input: i8042 - add Lifebook E4010 to MUX blacklistDmitry Torokhov2005-09-041-0/+7
| | | | | | | | Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* | Input: i8042 - add i8042.nokbd module option to allow supressingDmitry Torokhov2005-09-042-5/+21
| | | | | | | | | | | | creation of keyboard port. Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* | Input: i8042 - fix IRQ printing when either KBD or AUX portDmitry Torokhov2005-09-041-14/+25
| | | | | | | | | | | | is absent from ACPI/PNP tables. Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* | Input: make i8042_platform_init return 'real' error codeDmitry Torokhov2005-09-046-23/+26
| | | | | | | | Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* | Input: i8042 - clean up initialization code; abort if weDmitry Torokhov2005-09-041-78/+100
|/ | | | | | can't create all ports. Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* Input: i8042 - don't use negation to mark AUX dataDmitry Torokhov2005-07-151-28/+32
| | | | | | | | | | | Currently i8042_command() negates data coming from the AUX port of keyboard controller; this is not a very reliable indicator. Change i8042_command() to fail if response to I8042_CMD_AUX_LOOP is not coming from AUX channel and get rid of negation. Based on patch by Vojtech Pavlik. Signed-off-by: Dmitry Torokhov <dtor@mail.ru>