aboutsummaryrefslogtreecommitdiff
path: root/drivers/input
AgeCommit message (Collapse)Author
2008-11-21uplevel-neo1973kbd-gta03-compatibility.patchAndy Green
Signed-off-by: Andy Green <andy@openmoko.com>
2008-11-20pcf50633_mfd.patchBalaji Rao
pcf50633 driver rewritten to use the MFD model.
2008-11-19lis302dl-ack-ff_wu-interrupts.patchSimon Kagstrom
Setup interrupt latching for thresholded operation From: Simon Kagstrom <simon.kagstrom@gmail.com> This patch, for stable-tracking, sets up interrupt latching for thresholded operation, and also acks the interrupt in the handler. This reduces the interrupt load, and thresholds < 36 are once again allowed (though not of much use). The patch also fixes some warnings in the code (including a potential bug). Thanks to Werner for pointing this out! Signed-off-by: Simon Kagstrom <simon.kagstrom@gmail.com>
2008-11-19: lis302dl-port-work-from-stable.patchSimon Kagstrom
Merge in the accelerometer functionality from stable From: Simon Kagstrom <simon.kagstrom@gmail.com> This giant patch merges the functionality from stable. It also changes the default threshold to 0 (generate interrupts on data). As the level-triggered interrupts cause too frequent interruptions on low thresholds, also set a lower limit to 36mg to avoid slowing down the phone too much. Also rearrange the probe function to disable interrupts only over device I/O. This fixes the kernel errors when inserting the module. Andy was right: In stable-tracking, no magic workaround is needed to make suspend/resume work. I've tested the accelerometers under heavy load (making the phone basically unusable) without getting lockups. Signed-off-by: Simon Kagstrom <simon.kagstrom@gmail.com>
2008-11-19fix-lid302dl-bitbang-all-the-way-baby.patchAndy Green
This large patch removes motion sensor from Linux SPI bitbang driver. Previously, some access was done through Linux SPI protected by a mutex, and the ISR access was done by platform bitbang code due to inability of Linux SPI driver to work in the interrupt context. Now all access is done by bitbang callbacks in mach_gta02.c and are protected by single scheme of interrupt lockout for the duration -- I line-by-line'd the driver to confirm that best I could, adding protection and taking more care on several /sys related paths. Because this is no longer a Linux SPI bus driver, the path for various /sys things have changed. They can now be found down, eg, /sys/devices/platform/lis302dl.1/sample_rate lis302dl.1 is the top sensor and .2 the bottom. The names of the input susbsytem paths remain the same as before. Not working in interrupt context made trouble using interrupt lockout as locking [21474615.495000] BUG: sleeping function called from invalid context at kernel/sched.c:4684 [21474615.495000] in_atomic():0, irqs_disabled():128 [21474615.495000] 2 locks held by bash/779: [21474615.495000] #0: (&buffer->mutex){....}, at: [<c00ec1b0>] sysfs_write_file+0x30/0x80 [21474615.495000] #1: (pm_mutex){....}, at: [<c007a34c>] enter_state+0xd4/0x10c [21474615.495000] [<c0032a14>] (dump_stack+0x0/0x14) from [<c0049410>] (__might_sleep+0xdc/0xf8) [21474615.495000] [<c0049334>] (__might_sleep+0x0/0xf8) from [<c0316c38>] (wait_for_common+0x28/0x190) [21474615.495000] r5:c79ffd00 r4:c79ffd4c [21474615.495000] [<c0316c10>] (wait_for_common+0x0/0x190) from [<c0316e30>] (wait_for_completion+0x18/0x1c) [21474615.495000] r8:c79ffd84 r7:c79c4800 r6:c79ffd00 r5:c79ffd20 r4:c79ffd4c [21474615.495000] [<c0316e18>] (wait_for_completion+0x0/0x1c) from [<c01d28ec>] (spi_sync+0xa0/0xb8) [21474615.495000] [<c01d284c>] (spi_sync+0x0/0xb8) from [<c020ca10>] (__reg_write+0x88/0x94) [21474615.495000] [<c020c988>] (__reg_write+0x0/0x94) from [<c020cc30>] (lis302dl_resume+0x54/0x198) [21474615.495000] r6:60000013 r5:c79c4800 r4:c79bc9c0 [21474615.495000] [<c020cbdc>] (lis302dl_resume+0x0/0x198) from [<c01d2fb0>] (spi_resume+0x38/0x44) [21474615.495000] r6:00000010 r5:c79c4800 r4:c79c4974 [21474615.495000] [<c01d2f78>] (spi_resume+0x0/0x44) from [<c0198f34>] (resume_device+0x8c/0x1b0) [21474615.495000] [<c0198ea8>] (resume_device+0x0/0x1b0) from [<c01990c0>] (dpm_resume+0x68/0x134) [21474615.495000] r7:00000003 r6:00000010 r5:c79c4800 r4:c79c4974 [21474615.495000] [<c0199058>] (dpm_resume+0x0/0x134) from [<c01991b4>] (device_resume+0x28/0x38) [21474615.495000] r6:00000003 r5:c08b7188 r4:00000010 [21474615.495000] [<c019918c>] (device_resume+0x0/0x38) from [<c007a0f8>] (suspend_devices_and_enter+0x110/0x180) [21474615.495000] r4:00000000 [21474615.495000] [<c0079fe8>] (suspend_devices_and_enter+0x0/0x180) from [<c007a320>] (enter_state+0xa8/0x10c) [21474615.495000] r6:00000003 r5:c03aa414 r4:00000000 [21474615.495000] [<c007a278>] (enter_state+0x0/0x10c) from [<c007a430>] (state_store+0xac/0xc0) [21474615.495000] r6:c7b80000 r5:00000003 r4:c03aa414 [21474615.495000] [<c007a384>] (state_store+0x0/0xc0) from [<c014dfb4>] (kobj_attr_store+0x24/0x30) [21474615.495000] [<c014df90>] (kobj_attr_store+0x0/0x30) from [<c00ebe58>] (flush_write_buffer+0x54/0x68) [21474615.495000] [<c00ebe04>] (flush_write_buffer+0x0/0x68) from [<c00ec1d8>] (sysfs_write_file+0x58/0x80) [21474615.495000] r8:c7acca80 r7:c79fff78 r6:000be408 r5:00000004 r4:c7a19ea0 [21474615.495000] [<c00ec180>] (sysfs_write_file+0x0/0x80) from [<c00a91b8>] (vfs_write+0xbc/0x14c) [21474615.495000] [<c00a90fc>] (vfs_write+0x0/0x14c) from [<c00a9774>] (sys_write+0x4c/0x7c) [21474615.495000] r7:00000004 r6:00000000 r5:00000000 r4:c7acca80 [21474615.495000] [<c00a9728>] (sys_write+0x0/0x7c) from [<c002dc20>] (ret_fast_syscall+0x0/0x2c) Signed-off-by: Andy Green <andy@openmoko.com>
2008-11-19fix-lis302dl-use-__reg_read-in-suspend.patchAndy Green
Signed-off-by: Andy Green <andy@openmoko.com>
2008-11-19fix-rebase-dust.patchAndy Green
Last rebase to stable-2.6.26 left some trash from rebasing the patches on top of this, clean it back out Signed-off-by: Andy Green <andy@openmoko.com>
2008-11-19debug-aux-key-probe-resume-death.patchAndy Green
Nasty temporary patch that is VERY useful, basically if you hit AUX key during suspend time, it will force an OOPS, which due to another debug patch forces a spew on serial console showing dmesg to date and the oops. Signed-off-by: Andy Green <andy@openmoko.com>
2008-11-19test-touchscreen-median.patchAndy Green
Signed-off-by: Andy Green <andy@openmoko.com>
2008-11-19tracking-2.6.28-breakage-after-change-to-64xx-tree.patchAndy Green
Signed-off-by: Andy Green <andy@openmoko.com>
2008-11-19tracking-2.6.28-device_create_drvdata-gone.patchAndy Green
Signed-off-by: Andy Green <andy@openmoko.com>
2008-11-19Move asm/arch/ts.h to mach/ts.hJonas Bonn
Signed-off-by: Jonas Bonn <jonas.bonn@gmail.com>
2008-11-19fix-stable-tracking-build-without-symlink.patchAndy Green
Signed-off-by: Andy Green <andy@openmoko.com>
2008-11-19[ARM]: Move asm/arch/gpio.h to mach/ directoryJonas Bonn
This file was moved in the big file move, but some OpenMoko specific changes did not make it. This patch peels out the relevant bits and adds them to the gpio.h file in the upstream location. The only OpenMoko specific change is the definition of gpio_to_irq and irq_to_gpio. These functions should really be defined in gpio_chip and asm-generic/gpio.h; this is coming soon, but until then we'll just use the Moko definitions that we've been using up until now. This is not strictly correct for the GTA02 case, but it works given the configuration that's currently in use. This can be fixed (and should become evident) when the configuration options are cleaned up. Signed-off-by: Jonas Bonn <jonas.bonn@gmail.com>
2008-11-19[ARM]: Move asm/arch/gta01.h to include/machJonas Bonn
This file is OpenMoko specific and didn't get moved in the big file move. Move it to arch/arm/mach-s3c2410/include/mach where it belongs and fix the references to it. Signed-off-by: Jonas Bonn <jonas.bonn@gmail.com>
2008-11-19fix-lis302dl-issues.patchSean McNeil
Move to level from edge, fix local_save... to local_irq... simplify bitbang sequence Signed-off-by: Sean McNeil <sean@mcneil.com>
2008-11-19add-neo1973kbd-jack-state-sys.patchSean McNeil
Add /sys files for jack state reporting. Signed-off-by: Sean McNeil <sean@mcneil.com>
2008-11-19soft_tap.patchDima Kogan
Hi all. I'm seeing a behavior in my freerunner where light taps on the touchscreen are not registered as clicks by the kernel even though the base hardware does report clicking events. I'm seeing the kernel generate extra "unclick" events in these cases. It looks like in the driver, an unclick event is processed before the click event, thus suppressing the click from ever being generated. I'm attaching a patch that addresses this. I'm now able to type much faster on the matchbox keyboard, even when using my fingertips instead of fingernails. Dima Signed-off-by: Dima Kogan <dkogan@cds.caltech.edu>
2008-11-19gta02-accel-isr-fix-more.patchAndy Green
Fix all of the mismatches Andrzej put us on to. Found-by: Andrzej Zaborowski <balrogg@gmail.com> Signed-off-by: Andy Green <andy@openmoko.com>
2008-11-19checkpatch-accel-fixes.patchAndy Green
style cleanups for accel threshold setting patch Signed-off-by: Andy Green <andy@openmoko.com>
2008-11-19interface for configuring freefall/wakeup interrupts for the accelerometersSimon Kagstrom
Hi! First: Unfortunately, the freerunner currently wakes up immediately on suspend when the accelerometer IRQ is selected as a wakeup source. I'm posting this for comments and if someone else wants to have a look at this problem. The patch should be safe to apply even though the sleep portion doesn't work - as long as it's configured it will not disturb anything. // Simon -- lis302dl-configure-wakeup-interrupts.patch From: simon.kagstrom <simon.kagstrom@gmail.com> First: Unfortunately, the freerunner currently wakes up immediately on suspend when the accelerometer IRQ is selected as a wakeup source. Add configuration of wakeup/freefall interrupts through a sysfs interface. Configuration is done through echoing a value of the form X Y Z THRESHOLD DURATION SPEC to freefall_wakeup_1/2. X, Y and Z are threshold values, given as a value > 0, < 0 or 0 to specify if an interrupt should be generated for high or low thresholds or neither (off). THRESHOLD specifies the threshold that must be exceeded. DURATION specifies the time in milliseconds for which the acceleration should be measured. SPEC is either '1' or '0' and specifies if the thresholds should be taken all together or one at a time ('and' or 'or' mode). Echoing '0' to the file turns off the interrupts. Example: echo "1 1 1 60 60 0" > freefall_wakeup_1 # Turn on x,y,z, 60ms/60 threshold, or-mode echo "0" > freefall_wakeup_1 # Turn off interrupt The hardware supports two simulataneous wakeup sources to be configured, but the freerunner only connects one of the interrupt outputs. The patch exports both. Similarly, only the "top" accelerometer can be used as a wake-up source, and it's not possible to generate DATA_READY interrupts while the wakeup interrupts are active. Signed-off-by: Simon Kagstrom <simon.kagstrom@gmail.com>
2008-11-19lis302dl-allow-unloading-module.patchSimon Kagstrom
This patch fixes module unloading for the accelerometer (actually module loading failed before). The two problems were that the interrupt was not unregistered, and that the device was left in a "strange" state. Signed-off-by: Simon Kagstrom <simon.kagstrom@gmail.com>
2008-11-19tracking-2.6.27-rc2-include-path-changes.patchAndy Green
Signed-off-by: Andy Green <andy@openmoko.com>
2008-11-19fix-aux-key-level-by-gtaxx.patchAndy Green
Reported-by: Mickey Lauer <mickey@openmoko.org> AUX level detection is inverted based on GTA01 or 02 Signed-off-by: Andy Green <andy@openmoko.com>
2008-11-19fix-lis302dl-resume-and-init-reload-boot-coefficients.patchAndy Green
Reported-by: John Lee <john_lee@openmoko.com> We don't reset the devices either at init or resume, where init means use the BOOT bit to reload device calibration coefficients from internal EEPROM. John Lee saw brain-damaged behaviour after resume and sometimes after boot (since it may not have lost power to force a BOOT itself that makes sense). This patch - adds a diagnostic dump feature down /sys - forces BOOT action on init and resume, and waits for completion - makes sure XYZ capture is enabled on resume - adds some constants in the .h and removes some magic numbers in the code by using them Signed-off-by: Andy Green <andy@openmoko.com>
2008-11-19fix-touchscreen-meddling-divde.patchAndy Green
Reported-by: Holger Freyther <zecke@openmoko.org> length can be zero... blowing a divide by zero exception... which somehow I don't get (?) Anyway the code is wrong and this should fix it. Signed-off-by: Andy Green <andy@openmoko.com>
2008-11-19touchscreen-meddling.patchAndy Green
Touchscreen on GTA01-02 experiences noise on the channel that serves the "tall axis" of the LCM. The sample quality of the other axis is good. The bad samples have a characteristic of one shot excursions that can reach +/- 20% or more of the sample average. Previously, we had a simple averaging scheme going in the touchscreen driver that summed up 32 x and ys and then divided it by 32. This patch first tidies up the existing code for style, then adds a new "running average" concept with a FIFO. The running average is separate from the summing average mentioned above, and is accurate for the last n samples sample-by-sample, where n is set by 1 << excursion_filter_len_bits in the machine / platform stuff. The heuristic the patch implements for the filtering is to accept all samples, but tag the *previous* sample with a flag if it differed from the running average by more than reject_threshold_vs_avg in either axis. The next sample time, a beauty contest is held if the flag was set to decide if we think the previous sample was a one-shot excursion (detected by the new sample being closer to the average than to the flagged previous sample), or if we believe we are moving (detected by the new sample being closer to the flagged previous sample than the average. In the case that we believe the previous sample was an excursion, we simply overwrite it with the new data and adjust the summing average to use the new data instead of the excursion data. I only tested this by eyeballing the output of ts_print_raw, but it seemed to be quite a bit better. Gross movement appeared to be tracked fine too. If folks want to try different heuristics on top of this patch, be my guest; either way feedback on what it looks like with a graphical app would be good. Signed-off-by: Andy Green <andy@openmoko.com>
2008-11-19Fixup hang on resume caused by the s3c2410 touch screen driverHolger Freyther
From dc6d335b467646d802a21ea6b925ee97e83e07be Mon Sep 17 00:00:00 2001 From: Holger Freyther <zecke@openmoko.org> Date: Thu, 15 May 2008 01:16:23 +0200 Subject: [PATCH] Do not use msleep in the resume path of s3c2410_ts as it might lockup For some reason msleep might set the only task running into a suspended state and no timer will ever wake it up. Use mdelay to avoid this. I was not able to understand the reasoning of sleeping after enabling the clock. So we might just remove the msleep/mdelay at all and be fine. Signed-Off-By: Holger Freyther <zecke@openmoko.org>
2008-11-19fix-KEY_PHONE-up-down-inversion.patchSean McNeil
the KEY_PHONE is backwards. It returns up when pushed and down when released. The following change fixes it: Signed-off-by: Sean McNeil <sean@mcneil.com>
2008-11-19tracking-2.6.26-rc1-remove-input-dev-private-member.patchAndy Green
Signed-off-by: Andy Green <andy@openmoko.com>
2008-11-19tracking-2.6.25-input_dev-cdev-union-removed.patchAndy Green
struct input_dev in include/linux/input.h used to have a union cdev which contained the associated device struct pointer. This got simplified out in 2.6.25, so this patch removes cdev from our drivers that used it before. Signed-off-by: Andy Green <andy@openmoko.com>
2008-11-19fix-jack-interrupt-debounce-loss-window.patchAndy Green
Make sure we can't lose a jack interrupt in debounce, despite it is a one-in-a-million thing that just needs replug to clear Signed-off-by: Andy Green <andy@openmoko.com>
2008-11-19OpenMoko => OpenmokoHolger Freyther
Signed-Off-By: Holger Freyther <zecke@openmoko.org>
2008-11-19fix-jack-debounce.patchAndy Green
Headphone jack detection is bouncy, it can trigger multiple interrupts on insertion or removal. This patch adds a workqueue that waits out the interrupt spew in 100ms units, and if it sees no more interrupts for 100ms only then samples and reports the jack state. I was unable to get a bounce after 20 or so tries after this. Signed-off-by: Andy Green <andy@openmoko.com>
2008-11-19Add GPIO -> IRQ for the s3c2410 and add irq_to_gpio to the gpio.h of the ↵Holger Freyther
Samsung SoC Use this irq_to_gpio in the neo1973 keyboard driver
2008-11-19Convert the driver to the generic GPIO frameworkHolger Freyther
Signed-Off-by: Holger Freyther <zecke@openmoko.org>
2008-11-19Fix the FIXME, store the GPIO value for nowHolger Freyther
Signed-Off-by: Holger Freyther <zecke@openmoko.org>
2008-11-19Remove dead codeHolger Freyther
Signed-Off-by: Holger Freyther <zecke@openmoko.org>
2008-11-19Simplify the code, there is no need for a branch. The code forHolger Freyther
GTA01_GPIO_AUX_KEY looks odd. Signed-Off-by: Holger Freyther <zecke@openmoko.org>
2008-11-19fix-lis302dl-suspend-gpio.patchAndy Green
Add platform stuff to deal with going in and out of suspend so the motion sensor IO is not driving high into unpowered sensors Signed-off-by: Andy Green <andy@openmoko.com>
2008-11-19s3c2410-qt2410-buttons.patchmokopatches
2008-11-19input-nots-mousedev.patchmokopatches
This patch disables the reporting of touchscreen-like devices via /dev/input/mice. In the Neo1973 (much like other handheld devices), we need this to distinguish between the touchscreen (which uses tslib) and optional additional usb/bluetooth mice that might be attached. Signed-off-by: Harald Welte <laforge@openmoko.org>
2008-11-19gta02-acc.patchmokopatches
2008-11-19lis302dl.patchmokopatches
This is a Linux driver for the STmicro LIS302DL 3-axis accelerometer. Signed-off-by: Harald Welte <laforge@openmoko.org>
2008-11-19s3c2410_touchscreen.patchmokopatches
2008-11-19gta01-inputdevice.patchmokopatches
This provides support for the GTA01 keyboard Signed-off-by: Harald Welte <laforge@openmoko.org>
2008-11-01saner FASYNC handling on file closeAl Viro
As it is, all instances of ->release() for files that have ->fasync() need to remember to evict file from fasync lists; forgetting that creates a hole and we actually have a bunch that *does* forget. So let's keep our lives simple - let __fput() check FASYNC in file->f_flags and call ->fasync() there if it's been set. And lose that crap in ->release() instances - leaving it there is still valid, but we don't have to bother anymore. Signed-off-by: Al Viro <viro@zeniv.linux.org.uk> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2008-10-27INPUT: sgi_btns: Add license specificationDmitri Vorobiev
The SGI Volume Button interface driver uses GPL-only symbols platform_driver_unregister and platform_driver_register, but lacks license specification. Thus, when compiled as a module, this driver cannot be installed. This patch fixes this by adding the MODULE_LICENSE() specification. Signed-off-by: Dmitri Vorobiev <dmitri.vorobiev@movial.fi> Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
2008-10-26Merge branch 'for-linus' of ↵Linus Torvalds
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: psmouse - add support for Elantech touchpads Input: i8042 - add Blue FB5601 to noloop exception table
2008-10-22Merge branch 'for-rmk' of git://git.android.com/kernel into develRussell King