| Age | Commit message (Collapse) | Author |
|
Let serio subsystem take care of suspending the ports; concentrate
on suspending/resuming the controller itself.
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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)
|
|
Signed-off-by: Rick Koch <n1gp@hotmail.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
|
|
Signed-off-by: Rick Koch <n1gp@hotmail.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
|
|
Signed-off-by: Rick Koch <n1gp@hotmail.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
|
|
Conflicts:
arch/powerpc/kernel/setup-common.c
drivers/input/keyboard/hil_kbd.c
drivers/input/mouse/hil_ptr.c
|
|
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>
|
|
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>
|
|
to allow easy switching at run-time.
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
|
|
From: Dan Streetman <ddstreet@ieee.org>
Signed-off-by: Vojtech Pavlik <vojtech@suse.cz>
|
|
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>
|
|
Elo IntelliTouch, AccuTouch and SecureTouch.
Signed-off-by: Vojtech Pavlik <vojtech@suse.cz>
|
|
in serio.h, to make it userspace-compilable.
Signed-off-by: Vojtech Pavlik <vojtech@suse.cz>
|
|
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>
|
|
instead of void.
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
Signed-off-by: Vojtech Pavlik <vojtech@suse.cz>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
can safely access driver bound to a serio port.
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
|
|
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>
|
|
their critical sections from port's interrupt handler
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
|
|
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>
|
|
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
|
|
ports for them in serio core to avoid having recursion in connect
methods.
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
|
|
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>
|
|
- serio_dev -> serio_driver
- serio_[un]register_device -> serio_[un]register_driver
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
|
|
to sysfs integration
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
|
|
|
|
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>
|
|
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>
|
|
|
|
|
|
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
|
|
Input: serio_reconnect added. Similar to serio_rescan but gives driver
a chance to re-initialize keeping the same input device.
|
|
__serio_[un]register_port
Input: rename serio_{register|unregister}_slave_port to
__serio_{register|unregister}_port to better follow
locked/lockless naming convention
|
|
From: Pavel Machek <pavel@suse.cz>
|
|
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.
|
|
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.
|
|
|
|
Update the input and joystick drivers to the new IRQ API.
|
|
|
|
value all the way from an interrupt handler to keyboard.c
that can display it.
|
|
|
|
|
|
and keyboard handling - proper cleanup on reboot, allow USB-emulated
AT keyboards, option to restrict PS/2 mouse to generic mode.
|