aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/serio.h
Commit message (Collapse)AuthorAge
* Input: serio - add helper macro for serio_driver boilerplateAxel Lin2012-04-04
| | | | | | | | | | | | | | | This patch introduces the module_serio_driver macro which is a convenience macro for serio driver modules similar to module_platform_driver. It is intended to be used by drivers which init/exit section does nothing but registers/unregisters the serio driver. By using this macro it is possible to eliminate a few lines of boilerplate code per serio driver. Based on work done by Lars-Peter Clausen <lars@metafoo.de> for other buses (i2c and spi). Signed-off-by: Axel Lin <axel.lin@gmail.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* include: convert various register fcns to macros to avoid include chainingPaul Gortmaker2011-10-31
| | | | | | | | | | | | | | | The original implementations reference THIS_MODULE in an inline. We could include <linux/export.h>, but it is better to avoid chaining. Fortunately someone else already thought of this, and made a similar inline into a #define in <linux/device.h> for device_schedule_callback(), [see commit 523ded71de0] so follow that precedent here. Also bubble up any __must_check that were used on the prev. wrapper inline functions up one to the real __register functions, to preserve any prev. sanity checks that were used in those instances. Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
* Input: add a driver for TSC-40 serial touchscreenSebastian Andrzej Siewior2011-09-28
| | | | | | | | | | | This patch adds the TSC-40 serial touchscreen driver and should be compatible with TSC-10 and TSC-25. The driver was written by Linutronix on behalf of Bachmann electronic GmbH. Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Signed-off-by: Christian Gmeiner <christian.gmeiner@gmail.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* Input: serio - add support for PS2Mult multiplexer protocolDmitry Eremin-Solenikov2010-10-18
| | | | | | | | | PS2Mult is a simple serial protocol used for multiplexing several PS/2 streams into one serial data stream. It's used e.g. on TQM85xx series of boards. Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* Input: serio - support multiple child devices per single parentDmitry Eremin-Solenikov2010-10-13
| | | | | | | | | Some (rare) serio devices need to have multiple serio children. One of the examples is PS/2 multiplexer present on several TQC STKxxx boards, which connect PS/2 keyboard and mouse to single tty port. Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* Input: serio_driver - drop private pointerDmitry Torokhov2010-09-14
| | | | | | Nobody uses it anymore. Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* Input: serio_driver - mark id_table and description as constDmitry Torokhov2010-09-14
| | | | | | Memory pointed to by these fields is not supposed to change. Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* Input: add driver for hampshire serial touchscreensAdam Bennett2010-04-14
| | | | | | | | Adds support for Hampshire TSHARC serial touchscreens. Implements Hampshire's 4-byte communication protocol. Signed-off-by: Adam Bennett <abennett72@gmail.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* Merge commit 'v2.6.33-rc5' into nextDmitry Torokhov2010-01-22
|\
| * Input: serio - fix potential deadlock when unbinding driversEric W. Biederman2010-01-06
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | sysfs_remove_group() waits for sysfs attributes to be removed, therefore we do not need to worry about driver-specific attributes being accessed after driver has been detached from the device. In fact, attempts to take serio->drv_mutex in attribute methods may lead to the following deadlock: sysfs_read_file() fill_read_buffer() sysfs_get_active_two() psmouse_attr_show_helper() serio_pin_driver() serio_disconnect_driver() mutex_lock(&serio->drv_mutex); <--------> mutex_lock(&serio_drv_mutex); psmouse_disconnect() sysfs_remove_group(... psmouse_attr_group); .... sysfs_deactivate(); wait_for_completion(); Fix this by removing calls to serio_[un]pin_driver() and functions themselves and using driver-private mutexes to serialize access to attribute's set() methods that may change device state. Signed-off-by: Eric W. Biederman <ebiederm@xmission.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* | Input: serio - let device core tell us if device was registeredDmitry Torokhov2010-01-06
|/ | | | | | No need to keep track of it by ourselves. Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* Input: add driver for Dynapro serial touchscreenTias Guns2009-10-26
| | | | | | | | | | This is a driver for Dynapro serial touchscreen, which used to be supported in Xorg. The driver needs updated inputattach utility to initialize serial port and create proper serio device before the driver will be bound to it. Signed-off-by: Tias Guns <tias@ulyssis.org> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* Input: serio - switch to using dev_pm_opsDmitry Torokhov2009-07-26
| | | | Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* Input: serio - do not use deprecated dev.power.power_stateDmitry Torokhov2009-05-09
| | | | Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* Input: serio - fix protocol number for TouchIT213Dmitry Torokhov2009-03-07
| | | | | | | | Protocol 0x37 has been reserved for iNexio devices and Sahara was supposed to get 0x38. Reported-by: Claudio Nieder <private@claudio.ch> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* Input: add support for Wacom W8001 penabled serial touchscreenJaya Kumar2008-11-24
| | | | | | | | | The Wacom W8001 sensor is a sensor device (uses electromagnetic resonance) and it is interfaced via its serial microcontroller to the host. Signed-off-by: Jaya Kumar <jayakumar.lkml@gmail.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* Input: serio - mark serio_register_driver() __must_checkDmitry Torokhov2008-07-23
| | | | | | Also remove extra declaration of serio_register_driver(). Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* Input: serio - trivial documentation fixNiels de Vos2008-07-08
| | | | | | | | | In include/linux/serio.h two different define-series are documented as "Serio types". However the second series contains defines for the different protocols. Signed-off-by: Niels de Vos <niels.devos@wincor-nixdorf.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* Input: add driver for Tabletkiosk Sahara TouchIT-213 touchscreenClaudio Nieder2008-07-07
| | | | | Signed-off-by: Claudio Nieder <private@claudio.ch> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* Input: Add driver for iNexio serial touchscreen.Richard Lemon2008-06-30
| | | | | Signed-off-by: Richard Lemon <richard@codelemon.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* Input: add Zhen Hua driverMartin Kebert2008-04-15
| | | | | | | | | | | | This is a driver for Zhen Hua PPM-4CH RC transmitter (commonly used in cheap Ready To Fly RC helicopters by Walkera) which using "Zhen Hua 5-byte protocol" for using them as a four axis joystick via serial port. Transmitter connected to serial port (19200 8N1) sending periodically 5 bytes where first byte is for synchronization and next four bytes are values of axis. Signed-off-by: Martin Kebert <gkmarty@gmail.com> Signed-off-by: Jiri Kosina <jkosina@suse.cz> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* Input: add driver for Fujitsu serial touchscreensDmitry Torokhov2007-07-18
| | | | | | | | | | | | | | These serial touchscreens are found on some Fujitsu lifebook P-series laptops, and the B6210. Using this requires a new version of inputattach and doing: inputattach -fjt /dev/ttyS0 Big thanks to Stephen Hemminger for testing it and making it work on his B6210 laptop. Signed-off-by: Stephen Hemminger <shemminger@linux-foundation.org> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* i2c: New bus driver for the TAOS evaluation modulesJean Delvare2007-07-12
| | | | | | | This is a new I2C bus driver for the TAOS evaluation modules. Developped and tested on the TAOS TSL2550 EVM. Signed-off-by: Jean Delvare <khali@linux-fr.org>
* Input: i8042 - let serio bus suspend portsDmitry Torokhov2007-02-18
| | | | | | | Let serio subsystem take care of suspending the ports; concentrate on suspending/resuming the controller itself. Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* SERIO: add the sysfs driver name to all modulesGreg Kroah-Hartman2007-02-07
| | | | | | | | | 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>
* Input: serio - make serio_register_driver() return errorsDmitry Torokhov2006-11-23
| | | | | | | | | | | | 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>
* Input: serio - remove serio_unregister_port_delayed()Dmitry Torokhov2006-11-17
| | | | | | | 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>
* Input: serio - add lockdep annotationsJiri Kosina2006-10-11
| | | | | | 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>
* IRQ: Maintain regs pointer globally rather than passing to IRQ handlersDavid Howells2006-10-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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)
* Input: add driver for Touchwin serial touchscreensRick Koch2006-08-05
| | | | | Signed-off-by: Rick Koch <n1gp@hotmail.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* Input: add driver for Touchright serial touchscreensRick Koch2006-08-05
| | | | | Signed-off-by: Rick Koch <n1gp@hotmail.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* Input: add driver for Penmount serial touchscreensRick Koch2006-08-05
| | | | | Signed-off-by: Rick Koch <n1gp@hotmail.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* Manual merge with Linus.Dmitry Torokhov2006-04-02
|\ | | | | | | | | | | | | Conflicts: arch/powerpc/kernel/setup-common.c drivers/input/keyboard/hil_kbd.c drivers/input/mouse/hil_ptr.c
| * [PATCH] more s/fucn/func/ typo fixesAkinobu Mita2006-03-26
| | | | | | | | | | | | | | | | 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>
* | Input: serio - semaphore to mutex conversionArjan van de Ven2006-02-19
|/ | | | | | | | | | 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: psmouse - export protocol as a sysfs per-device attributeDmitry Torokhov2005-06-01
| | | | | | to allow easy switching at run-time. Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* Linux-2.6.12-rc2v2.6.12-rc2Linus Torvalds2005-04-16
Initial git repository build. I'm not bothering with the full history, even though we have it. We can create a separate "historical" git archive of that later if we want to, and in the meantime it's about 3.2GB when imported into git - space that would just make the early git days unnecessarily complicated, when we don't have a lot of good infrastructure for it. Let it rip!