summaryrefslogtreecommitdiff
path: root/include/linux/serio.h
AgeCommit message (Collapse)Author
2007-02-18Input: i8042 - let serio bus suspend portsDmitry Torokhov
Let serio subsystem take care of suspending the ports; concentrate on suspending/resuming the controller itself. Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2007-02-07SERIO: add the sysfs driver name to all modulesGreg Kroah-Hartman
This adds the module name to all SERIO drivers, if they are built into the kernel or not. It will show up in /sys/modules/MODULE_NAME/drivers/ Cc: Kay Sievers <kay.sievers@suse.de> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2006-11-23Input: serio - make serio_register_driver() return errorsDmitry Torokhov
Perform actual driver registration right in serio_register_driver() instead of offloading it to kseriod and return proper error code to callers if driver registration fails. Note that driver <-> port matching is still done by kseriod to speed up boot process since probing for PS/2 mice and keyboards is pretty slow. Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2006-11-17Input: serio - remove serio_unregister_port_delayed()Dmitry Torokhov
Now that i8042 reserves IRQs early there are no more users of this function and it should be removed. Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2006-10-11Input: serio - add lockdep annotationsJiri Kosina
Signed-off-by: Jiri Kosina <jikos@jikos.cz> Acked-by: Peter Zijlstra <a.p.zijlstra@chello.nl> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2006-10-05IRQ: Maintain regs pointer globally rather than passing to IRQ handlersDavid Howells
Maintain a per-CPU global "struct pt_regs *" variable which can be used instead of passing regs around manually through all ~1800 interrupt handlers in the Linux kernel. The regs pointer is used in few places, but it potentially costs both stack space and code to pass it around. On the FRV arch, removing the regs parameter from all the genirq function results in a 20% speed up of the IRQ exit path (ie: from leaving timer_interrupt() to leaving do_IRQ()). Where appropriate, an arch may override the generic storage facility and do something different with the variable. On FRV, for instance, the address is maintained in GR28 at all times inside the kernel as part of general exception handling. Having looked over the code, it appears that the parameter may be handed down through up to twenty or so layers of functions. Consider a USB character device attached to a USB hub, attached to a USB controller that posts its interrupts through a cascaded auxiliary interrupt controller. A character device driver may want to pass regs to the sysrq handler through the input layer which adds another few layers of parameter passing. I've build this code with allyesconfig for x86_64 and i386. I've runtested the main part of the code on FRV and i386, though I can't test most of the drivers. I've also done partial conversion for powerpc and MIPS - these at least compile with minimal configurations. This will affect all archs. Mostly the changes should be relatively easy. Take do_IRQ(), store the regs pointer at the beginning, saving the old one: struct pt_regs *old_regs = set_irq_regs(regs); And put the old one back at the end: set_irq_regs(old_regs); Don't pass regs through to generic_handle_irq() or __do_IRQ(). In timer_interrupt(), this sort of change will be necessary: - update_process_times(user_mode(regs)); - profile_tick(CPU_PROFILING, regs); + update_process_times(user_mode(get_irq_regs())); + profile_tick(CPU_PROFILING); I'd like to move update_process_times()'s use of get_irq_regs() into itself, except that i386, alone of the archs, uses something other than user_mode(). Some notes on the interrupt handling in the drivers: (*) input_dev() is now gone entirely. The regs pointer is no longer stored in the input_dev struct. (*) finish_unlinks() in drivers/usb/host/ohci-q.c needs checking. It does something different depending on whether it's been supplied with a regs pointer or not. (*) Various IRQ handler function pointers have been moved to type irq_handler_t. Signed-Off-By: David Howells <dhowells@redhat.com> (cherry picked from 1b16e7ac850969f38b375e511e3fa2f474a33867 commit)
2006-08-05Input: add driver for Touchwin serial touchscreensRick Koch
Signed-off-by: Rick Koch <n1gp@hotmail.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2006-08-05Input: add driver for Touchright serial touchscreensRick Koch
Signed-off-by: Rick Koch <n1gp@hotmail.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2006-08-05Input: add driver for Penmount serial touchscreensRick Koch
Signed-off-by: Rick Koch <n1gp@hotmail.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2006-04-02Manual merge with Linus.Dmitry Torokhov
Conflicts: arch/powerpc/kernel/setup-common.c drivers/input/keyboard/hil_kbd.c drivers/input/mouse/hil_ptr.c
2006-03-26[PATCH] more s/fucn/func/ typo fixesAkinobu Mita
s/fucntion/function/ typo fixes Signed-off-by: Akinobu Mita <mita@miraclelinux.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-02-19Input: serio - semaphore to mutex conversionArjan van de Ven
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>
2005-06-01Input: psmouse - export protocol as a sysfs per-device attributeDmitry Torokhov
to allow easy switching at run-time. Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2005-03-01input: Add MicroTouch (3M) serial touchscreen driverDan Streetman
From: Dan Streetman <ddstreet@ieee.org> Signed-off-by: Vojtech Pavlik <vojtech@suse.cz>
2005-02-24input: adjust file2alias utility to export aliases forDmitry Torokhov
serio drivers (serio:tyNprNidNexN). Move serio_device_id from serio.h to mod_devicetable.h Signed-off-by: Dmitry Torokhov <dtor@mail.ru> Signed-off-by: Vojtech Pavlik <vojtech@suse.cz>
2005-02-09input: Add support for serial ELO touchscreens, includingVojtech Pavlik
Elo IntelliTouch, AccuTouch and SecureTouch. Signed-off-by: Vojtech Pavlik <vojtech@suse.cz>
2005-02-08input: Move #include <linux/interrupt.h> inside #ifdef __KERNEL__Vojtech Pavlik
in serio.h, to make it userspace-compilable. Signed-off-by: Vojtech Pavlik <vojtech@suse.cz>
2005-02-05Input: make serio drivers register asynchronously. This shouldDmitry Torokhov
speed up boot process as some drivers take a long time probing for supported devices. Also change __inline__ to inline in serio.h Signed-off-by: Dmitry Torokhov <dtor@mail.ru> Signed-off-by: Vojtech Pavlik <vojtech@suse.cz>
2005-02-04Input: make serio's connect routines return error codeDmitry Torokhov
instead of void. Signed-off-by: Dmitry Torokhov <dtor@mail.ru> Signed-off-by: Vojtech Pavlik <vojtech@suse.cz>
2005-02-04Input: make serio implementation more in line with standardDmitry Torokhov
driver model implementations. serio_register_port is always asynchronous to allow freely registering child ports. When deregistering serio core still takes care of destroying children ports first. Signed-off-by: Dmitry Torokhov <dtor@mail.ru> Signed-off-by: Vojtech Pavlik <vojtech@suse.cz>
2005-02-04Input: replace serio's type field with serio_id structure andDmitry Torokhov
add id_table to serio drivers to split initial matching and probing routines for better sysfs integration and to assist hotplug scripts in loading proper drivers. Add serio_hotplug to notify userspace about new ports. Signed-off-by: Dmitry Torokhov <dtor@mail.ru> Signed-off-by: Vojtech Pavlik <vojtech@suse.cz>
2005-02-04Input: remove serio->private in favor of using driver-specific dataDmitry Torokhov
in device structure, add serio_get_drvdata/serio_put_drvdata to access it. Signed-off-by: Dmitry Torokhov <dtor@mail.ru> Signed-off-by: Vojtech Pavlik <vojtech@suse.cz>
2005-02-04Input: add serio->start() and serio->stop() callback methods thatDmitry Torokhov
are called whenever serio port is finishes being registered or unregistered. The callbacks are useful for drivers that share interrupt between several ports and there is a danger that interrupt handler will reference port that was just unregistered. Signed-off-by: Dmitry Torokhov <dtor@mail.ru> Signed-off-by: Vojtech Pavlik <vojtech@suse.cz>
2004-09-21Input: add serio_[un]pin_driver() functions so attribute handlersDmitry Torokhov
can safely access driver bound to a serio port. Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2004-07-19Input: allow marking serio ports (in addition to serio drivers)Dmitry Torokhov
as manual bind only, export the flag through sysfs echo -n "manual" > /sys/bus/serio/devices/serio0/bind_mode echo -n "auto" > /sys/bus/serio/drivers/serio_raw/bind_mode Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2004-07-19Input: add serio_pause_rx and serio_continue_rx so drivers can protectDmitry Torokhov
their critical sections from port's interrupt handler Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2004-06-28Input: allow marking some drivers (that don't do HW autodetection)Dmitry Torokhov
as manual bind only. Such drivers will only be bound to a serio port if user requests it by echoing driver name into port's sysfs driver attribute. Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2004-06-28Input: serio sysfs integrationDmitry Torokhov
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2004-06-28Input: allow serio drivers to create children ports and register theseDmitry Torokhov
ports for them in serio core to avoid having recursion in connect methods. Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2004-06-28Input: switch to dynamic (heap) serio port allocation in preparationDmitry Torokhov
to sysfs integration. By having all data structures dynamically allocated serio driver modules can be unloaded without waiting for the last reference to the port to be dropped. Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2004-06-28Input: more renames in serio in preparations to sysfs integrationDmitry Torokhov
- serio_dev -> serio_driver - serio_[un]register_device -> serio_[un]register_driver Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2004-06-28Input: rename serio->driver to serio->port_data in preparationDmitry Torokhov
to sysfs integration Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2004-06-24Merge suse.cz:/data/bk/linus into suse.cz:/data/bk/inputVojtech Pavlik
2004-06-17[PATCH] more PC9800 removalAdrian Bunk
Removes more PC9800 code. Requires: bk rm drivers/char/upd4990a.c bk rm drivers/net/ne2k_cbus.c bk rm drivers/net/ne2k_cbus.h Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2004-06-02input: Fixes in serio locking. We need per-serio lock for passthroughVojtech Pavlik
ports, some locks were missing, and spin_lock_irq was wishful thinking in serio_interrupt. There is no guarantee that serio_interrupt won't be called twice at the same time. Signed-off-by: Vojtech Pavlik <vojtech@suse.cz>
2004-05-28input: An attempt at fixing locking in i8042.c and serio.cVojtech Pavlik
2004-03-02input: Add serio entries for LK keyboards.Jan-Benedict Glaw
2003-12-18[PATCH] Input: add serio_[un]register_port_delayed to fix deadlockDmitry Torokhov
Add serio_[un]register_port_delayed to allow delayed execution of register/unregister code (via kseriod) when it is not clear whether serio_sem has been taken or not. Use in i8042.c to avoid deadlock
2003-12-18[PATCH] serio: reconnect facilityDmitry Torokhov
Input: serio_reconnect added. Similar to serio_rescan but gives driver a chance to re-initialize keeping the same input device.
2003-12-18[PATCH] serio: rename serio_[un]register_slave_port to ↵Dmitry Torokhov
__serio_[un]register_port Input: rename serio_{register|unregister}_slave_port to __serio_{register|unregister}_port to better follow locked/lockless naming convention
2003-10-04[PATCH] Small cleanups for inputRusty Russell
From: Pavel Machek <pavel@suse.cz>
2003-09-26input: Change AT keyboard to use hardware autorepeat and moveVojtech Pavlik
untranslating to the AT keyboard driver as well. Lower PS/2 mouse default report rate. Fix repeat rate adjustment ioctls accordingly, and update other files to reflect the changes. This should fix most known keyboard problems in 2.6.
2003-09-18Input: Big Synaptics update:Peter Osterlund
Restore synaptics pad mode on module unload. Support Synaptics touchpads with multiple buttons. Make Synaptics touchpad support optional. Add passthrough support for Synaptics touchpads. [Dmitry] Add support for old Synaptics protocol. Set mode byte correctly for old Synaptics pads. Fix multibutton support of Synaptics pads.
2003-06-20input: remove unused var from serio structDave Jones
2003-04-20[PATCH] irqs: input driversAndrew Morton
Update the input and joystick drivers to the new IRQ API.
2003-02-12input: Add two new serio type #definesVojtech Pavlik
2003-02-12input: Get rid of the kbd_pt_regs variable, and instead pass theVojtech Pavlik
value all the way from an interrupt handler to keyboard.c that can display it.
2002-11-25[PATCH] reserve a serio bit for PC98Alan Cox
2002-09-25Convert serio.[ch] to use list.h lists.Vojtech Pavlik
2002-09-24Add support for PS/2 Active Multiplexing Spec, updates for PS/2 mouseVojtech Pavlik
and keyboard handling - proper cleanup on reboot, allow USB-emulated AT keyboards, option to restrict PS/2 mouse to generic mode.