Commit Graph

339 Commits

Author SHA1 Message Date
Alan Jenkins c2d1a2a11b Input: i8042 - fix KBC jam during hibernate
633aae2 "Input: i8042 - switch to using dev_pm_ops" removed handling
for PMSG_THAW, since we do not need to do anything during freeze and
thus it was thougt that thaw is not needed as well. However, there is
a period when interrupts are kept off, and if key happens to be pressed
during that time KBC becomes jammed. To avoid the jam we simply need
to poll KBC once during thaw.

Signed-off-by: Alan Jenkins <alan-jenkins@tuffmail.co.uk>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2010-02-18 02:07:34 -08:00
Elliott Sales de Andrade e6edbdc52b Input: i8042 - add Dritek quirk for Acer Aspire 5610.
Signed-off-by: Elliott Sales de Andrade <quantum.analyst@gmail.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2010-01-11 00:07:30 -08:00
Dmitry Torokhov ea486e6811 Input: serio - do not mark kseriod freezable anymore
We used to make kseriod freezable to prevent unnecessary attempts at
resuming keyboard and mouse before taking hibernation image when suspend
and hibernation were sharing PM operations. Now that they are separated
and we don't risk resuming during 'thaw' we don't need to freeze kseriod
anymore. This will allow us to start resetting mouse and keyboard a bit
earlier, before rest of the userspace comes back up.

Acked-by: Rafael J. Wysocki <rjw@sisk.pl>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2009-12-24 21:43:06 -08:00
Roel Kluin 909275bc1b Input: altera_ps2 - fix test of unsigned in altera_ps2_probe()
ps2if->irq is unsigned so the test does not work.

Signed-off-by: Roel Kluin <roel.kluin@gmail.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2009-12-15 09:17:06 -08:00
Dmitry Torokhov 7547a3e8a4 Merge commit 'linus' into next 2009-12-15 08:49:32 -08:00
Dmitry Torokhov e47c4f70ea Input: at32psif - do not sleep in atomic context
We can't use msleep() while holding a spinlock, moreower serio's write()
method is supposed to be useable from inettrupt context. Let's do what
i8042 does and poll the status register every 50 us (with udelay).

Reported-by: Marjan Fojkar <marjan@pajkc.eu>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2009-12-15 00:35:08 -08:00
Dmitry Torokhov a61cd03827 Input: i8042 - add Gigabyte M1022M to the noloop list
Gigabyte netbook model M1022M requires i8042.noloop, otherwise AUX port
will not detected and the touchpad will not work. Unfortunately chassis
type in DMI set to "Other" and thus generic laptop entry does not fire
on it.

Reported-by: Darryl Bond <dbond@nrggos.com.au>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2009-12-15 00:34:54 -08:00
Matthew Garrett 967c9ef9b8 Input: i8042 - allow installing platform filters for incoming data
Some hardware (such as Dell laptops) signal a variety of events through
the i8042 controller, even if these don't map to keyboard events. Add
support for drivers to filter the i8042 event stream in order to respond
to these events and (if appropriate) block them from entering the input
stream.

Signed-off-by: Matthew Garrett <mjg@redhat.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2009-12-11 23:55:42 -08:00
Dmitry Torokhov 4e8d340daa Input: i8042 - fix locking in interrupt routine
We need to protect not only i8042 status and data register from concurrent
access from IRQ 1 and 12 but the rest of the shared state as well, so let's
move release of i8042_lock in i8042_interrupt() a little bit further down.

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2009-12-11 23:55:31 -08:00
Dmitry Torokhov 010c33cc79 Input: sa1111ps2 - annotate probe() and remove() methods
Also fix annotation of ps2_test() - it can'be __init since it is called
from __devinit code.

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2009-12-11 23:46:05 -08:00
Dmitry Torokhov 266429df37 Input: ambakmi - annotate probe() and remove() methods
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2009-12-11 23:45:57 -08:00
Dmitry Torokhov a0ee2037e1 Input: gscps2 - fix probe() and remove() annotations
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2009-12-11 23:45:43 -08:00
Dmitry Torokhov 1def7afa74 Input: altera_ps2 - add annotations to probe and remove methods
Mark altera_ps2_probe() as __devinit and altera_ps2_remove() as __devexit
so that they can be discarded when not needed.

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2009-12-11 23:45:35 -08:00
Dmitry Torokhov e40ec6ff2f Input: hil-mlc - use del_timer_sync() when unloading the driver
del_timer() does not wait for the timer to finish running before returning
and therefore is technically not safe. Also make sure to enable tasklet
before kicking timer that will schedule it.

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2009-12-11 23:45:25 -08:00
Dmitry Torokhov 898d1053f7 Input: serio - set owner in driver structures
Setting up owner field ensures that driver core creates symlink from
the driver to a module implementing this driver.

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2009-12-11 23:45:11 -08:00
Linus Torvalds fa395aaec8 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input: (51 commits)
  Input: appletouch - give up maintainership
  Input: dm355evm_kbd - switch to using sparse keymap library
  Input: wistron_btns - switch to using sparse keymap library
  Input: add generic support for sparse keymaps
  Input: fix memory leak in force feedback core
  Input: wistron - remove identification strings from DMI table
  Input: psmouse - remove identification strings from DMI tables
  Input: atkbd - remove identification strings from DMI table
  Input: i8042 - remove identification strings from DMI tables
  DMI: allow omitting ident strings in DMI tables
  Input: psmouse - do not carry DMI data around
  Input: matrix-keypad - switch to using dev_pm_ops
  Input: keyboard - fix lack of locking when traversing handler->h_list
  Input: gpio_keys - scan gpio state at probe and resume time
  Input: keyboard - add locking around event handling
  Input: usbtouchscreen - add support for ET&T TC5UH touchscreen controller
  Input: xpad - add two new Xbox 360 devices
  Input: polled device - do not start polling if interval is zero
  Input: polled device - schedule first poll immediately
  Input: add S3C24XX touchscreen driver
  ...
2009-12-09 19:52:01 -08:00
Jiri Kosina d014d04386 Merge branch 'for-next' into for-linus
Conflicts:

	kernel/irq/chip.c
2009-12-07 18:36:35 +01:00
Dmitry Torokhov f909b1df0a Input: i8042 - remove identification strings from DMI tables
The driver does not reference identification strings in DMI tables and
since these strings are no longer required by DMI core we can safely
remove them and save some memory.

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2009-12-04 22:11:25 -08:00
André Goddard Rosa af901ca181 tree-wide: fix assorted typos all over the place
That is "success", "unknown", "through", "performance", "[re|un]mapping"
, "access", "default", "reasonable", "[con]currently", "temperature"
, "channel", "[un]used", "application", "example","hierarchy", "therefore"
, "[over|under]flow", "contiguous", "threshold", "enough" and others.

Signed-off-by: André Goddard Rosa <andre.goddard@gmail.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
2009-12-04 15:39:55 +01:00
Dmitry Torokhov 467832032c Merge commit 'v2.6.32' into next 2009-12-02 23:38:13 -08:00
Anisse Astier 049e2d13b8 Input: i8042 - add Dell Vostro 1320, 1520 and 1720 to the reset list
These laptops often leave i8042 in a wierd state resulting in non-
operational touchpad and keyboard.

Signed-off-by: Anisse Astier <anisse@astier.eu>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2009-12-02 15:41:33 -08:00
Dmitry Torokhov 02cee68998 Merge commit 'v2.6.32-rc6' into next 2009-11-05 23:00:48 -08:00
Dmitry Torokhov ee1e82cee5 Input: i8042 - try to get stable CTR value when initializing
If user presses keys while i8042 is being initialized there is a chance
that keyboard data will be mistaken for results of Read Control Register
command causing futher troubles. Work around this issue by reading CTR
several times and stop when we get matching results.

Reported-and-tested-by: Dave Young <hidave.darkstar@gmail.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2009-11-02 22:11:43 -08:00
Dmitry Torokhov 7a53c7f56b Merge commit 'v2.6.32-rc5' into for-linus 2009-11-02 22:10:07 -08:00
Dmitry Torokhov b0225e8f10 Input: i8042 - add Sony Vaio VGN-FZ240E to the nomux list
On this model, when KBD is in active multiplexing mode, acknowledgements
to reset and get ID commands issued on KBD port sometimes are delivered
to AUX3 port (touchpad) which messes up device detection. Legacy KBC
mode works fine and since there are no external PS/2 ports on this laptop
and no support for docking station we can safely disable active MUX mode.

Tested-by: Carlos R. Mafra <crmafra2@gmail.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2009-10-18 00:03:30 -07:00
Thomas Chou fb5bbee0dd Input: add driver for Altera PS/2 controller
This patch adds a new SERIO driver to support the Altera University
Program PS/2 controller.

[dtor@mail.ru: assorted cleanups]
Signed-off-by: Thomas Chou <thomas@wytron.com.tw>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2009-10-12 21:43:11 -07:00
Dmitry Torokhov 7dcc9c230f Input: i8042 - make pnp_data_busted variable boolean instead of int
This small snippet escaped last round of int -> bool conversion.

Reported-by: Joe Perches <joe@perches.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2009-10-12 21:37:14 -07:00
Alexey Dobriyan d43c36dc6b headers: remove sched.h from interrupt.h
After m68k's task_thread_info() doesn't refer to current,
it's possible to remove sched.h from interrupt.h and not break m68k!
Many thanks to Heiko Carstens for allowing this.

Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
2009-10-11 11:20:58 -07:00
Dmitry Torokhov d3d2dfe2d7 Input: i8042 - print debug data when testing AUX IRQ delivery
Sometimes it is not clear why IRQ delivery test failed so let's
add some debug printks so we know the exact reason.

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2009-10-08 20:59:54 -07:00
Dmitry Torokhov fed94549ed Input: libps2 - fix dependancy on i8042
libps2 can not be built in if i8042 is a module, all other combinations
are allowed.

Reported-by: Randy Dunlap <randy.dunlap@oracle.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2009-10-05 22:00:47 -07:00
Dmitry Torokhov 181d683d75 Input: libps2 - additional locking for i8042 ports
The serio ports on i8042 are not completely isolated; while we provide
enough locking to ensure proper serialization when accessing control
and data registers AUX and KBD ports can still have an effect on each
other on PS/2 protocol level. The most prominent effect is that
issuing a command for the device connected to one port may cause
abort of the command currently executing by the device connected to
another port.

Since i8042 nor serio subsystem are not aware of the details of the
PS/2 protocol (length of the commands and their replies and so on) the
locking should be done on libps2 level by adding special handling when
we see that we are dealing with serio port on i8042.

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2009-09-17 23:23:45 -07:00
Dmitry Torokhov fc8e1ead93 Merge branch 'next' into for-linus 2009-09-13 21:16:56 -07:00
Dmitry Torokhov f81134163f Input: i8042 - use platform_driver_probe
i8042 is not hot-pluggable and we create the device when we register
the driver, so let's save some memory by using platform_device_probe
and using __init instead of __devinit.

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2009-09-10 22:11:37 -07:00
Dmitry Torokhov 386b384900 Input: i8042 - use boolean type where it makes sense
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2009-09-10 22:11:36 -07:00
Dmitry Torokhov 5ddbc77c3e Input: i8042 - try disabling and re-enabling AUX port at close
Ever since we switched from having a polling timer to registering IRQ
handlers for both keyboard and AUX ports at the driver registration
time, on certain boxes probing for a mouse results in keyboard
stopping working. The only real difference between old and new way is
that before we disabled ports after unsuccessful probe whereas now we
leave them as is. Try to emulate the old behavior by disabling and
immediately re-enabling AUX and KBD ports when corresponding serio
port is being closed.

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2009-09-10 22:11:35 -07:00
Dmitry Torokhov 1c7827ae70 Input: i8042 - bypass AUX IRQ delivery test on laptops
It seems that many laptops do not fully implement AUX LOOP command in
their keyboard controllers, causing issues with touchpad detection.
We know however that almost every laptop/portable uses a PS/2 pointing
device and, even if user disables it in favor of an external mouse,
the system will not use IRQ 12 for anything else. Therefore we may
bypass AUX IRQ delivery test when running on a laptop and assume that
it is routed properly.

Just to be safe we require the box to have good PNP data in order to
bypass the test.

[Jin Dongming <jin.dongming@np.css.fujitsu.com>: fix crash caused
 by missing terminator in the DMI table]

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2009-09-10 22:09:40 -07:00
Dmitry Torokhov 4b61bb575b Merge commit 'v2.6.31-rc8' into next 2009-08-27 22:00:20 -07:00
Dmitry Torokhov ced909ff04 Input: i8042 - add Acer Aspire 5536 to the nomux list
When KBC is in active multiplexing mode, disabling and re-enabling the
touchpad with the special key leaves the touchpad dead. Since the laptop
does not have any external PS/2 ports disabling MUX mode should be safe.

Reported-by: Eugeniy Meshcheryakov <eugen@debian.org>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2009-08-26 02:25:32 -07:00
Tai-hwa Liang fc69f4a6af Input: add new driver for Sentelic Finger Sensing Pad
This is the driver for Sentelic Finger Sensing Pad which can be found
on MSI WIND Netbook.

Signed-off-by: Tai-hwa Liang <avatar@sentelic.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2009-08-19 21:46:09 -07:00
Linus Torvalds 385861206c Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input:
  Input: matrix_keypad - make matrix keymap size dynamic
  Input: wistron_btns - support Prestigio Wifi RF kill button
  Input: i8042 - add Asus G1S to noloop exception list
2009-08-07 10:42:14 -07:00
Jory A. Pratt 685aaca751 Input: i8042 - add Asus G1S to noloop exception list
The synaptic touchpad on the Asus G1S is not properly detected when
rebooting machine or on cold boot from time to time. Adding the Asus
G1S to the noloop exception table resolves the issue.

# dmidecode 2.10
SMBIOS 2.4 present.

Handle 0x0001, DMI type 1, 27 bytes
System Information
     Manufacturer: ASUSTeK Computer Inc.
     Product Name: G1S
     Version: 1.0
     Wake-up Type: Power Switch
     SKU Number:
     Family:

Signed-off-by: Jory A. Pratt <geekypenguin@gmail.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2009-08-05 00:01:53 -07:00
Helge Deller c6fe6b0783 parisc: hp_sdc_mlc.c - check return value of down_trylock()
Signed-off-by: Helge Deller <deller@gmx.de>
2009-08-02 15:13:29 +02:00
Dmitry Torokhov 633aae23ff Input: serio - switch to using dev_pm_ops
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2009-07-26 11:17:01 -07:00
Dmitry Torokhov ebd7768dae Input: i8042 - switch to using dev_pm_ops
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2009-07-26 11:15:22 -07:00
Dmitry Torokhov bd072111e7 Merge commit 'v2.6.31-rc4' into next 2009-07-22 21:47:29 -07:00
Linus Torvalds 5e75c5f5d7 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input:
  Input: gpio_mouse - use standard driver registration method
  Input: mark serio and i8042 as suspended when hibernating too
  Input: add support for generic GPIO-based matrix keypad
  Input: arrange keyboards alphabetically
  Input: gpio-keys - avoid possibility of sleeping in timer function
  Input: gpio-keys - revert 'change timer to workqueue'
  Input: dm355evm_keys - fix kconfig symbol names
  Input: wacom - add DTF720a support and fix rotation on Intuos3
  Input: i8042 - more reset quirks for MSI Wind-clone netbooks
2009-07-08 09:32:41 -07:00
Julia Lawall 72398e4b1a Input: use resource_size when allocating resources
Use the function resource_size, which reduces the chance of
introducing off-by-one errors in calculating the resource size.

The semantic patch that makes this change is as follows:
(http://www.emn.fr/x-info/coccinelle/)

// <smpl>
@@
struct resource *res;
@@

- (res->end - res->start) + 1
+ resource_size(res)
// </smpl>

Signed-off-by: Julia Lawall <julia@diku.dk>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2009-07-07 22:48:14 -07:00
Thadeu Lima de Souza Cascardo ddaa43433d Input: mark serio and i8042 as suspended when hibernating too
Serio ports are not being restarted any longer because resume operations
after hibernate do nothing, since the device has not been marked as
suspended. This happens because suspend is only considering the SUSPEND
event but not the FREEZE event.

Note that this driver has still to migrate to dev_pm_ops, but this fixes
this particular bug now.

Signed-off-by: Thadeu Lima de Souza Cascardo <cascardo@holoscopio.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2009-07-07 22:46:58 -07:00
Yan Li 9230ccb107 Input: i8042 - more reset quirks for MSI Wind-clone netbooks
When testing Moblin on various netbooks, we've got reports that
many MSI Wind clones need the i8042 reset quirks for the keyboard
and/or touchpad's proper function.

Signed-off-by: Yan Li <yan.i.li@intel.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2009-06-28 23:57:22 -07:00
Linus Torvalds 93db629495 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input: (35 commits)
  Input: add driver for Synaptics I2C touchpad
  Input: synaptics - add support for reporting x/y resolution
  Input: ALPS - handle touchpoints buttons correctly
  Input: gpio-keys - change timer to workqueue
  Input: ads7846 - pin change interrupt support
  Input: add support for touchscreen on W90P910 ARM platform
  Input: appletouch - improve finger detection
  Input: wacom - clear Intuos4 wheel data when finger leaves proximity
  Input: ucb1400 - move static function from header into core
  Input: add driver for EETI touchpanels
  Input: ads7846 - more detailed model name in sysfs
  Input: ads7846 - support swapping x and y axes
  Input: ati_remote2 - use non-atomic bitops
  Input: introduce lm8323 keypad driver
  Input: psmouse - ESD workaround fix for OLPC XO touchpad
  Input: tsc2007 - make sure platform provides get_pendown_state()
  Input: uinput - flush all pending ff effects before destroying device
  Input: simplify name handling for certain input handles
  Input: serio - do not use deprecated dev.power.power_state
  Input: wacom - add support for Intuos4 tablets
  ...
2009-06-20 10:17:02 -07:00