Age | Commit message (Collapse) | Author |
|
o-allocation-1228776491
pending-tracking-hist top was MERGE-via-stable-tracking-fix-s3c2410_ts-fifo-allocation-1228776491 / a85a8a282939b4f6800081f67e1d568e0b97bd7a ... parent commitmessage:
From: merge <null@invalid>
MERGE-via-stable-tracking-hist-fix-s3c2410_ts-fifo-allocation
stable-tracking-hist top was fix-s3c2410_ts-fifo-allocation / 56a57ba0d4c1d60869250d5f89fae61544f01012 ... parent commitmessage:
From: Nelson Castillo <nelsoneci@gmail.com>
Fix s3c2410_ts FIFO allocation
When I added the FIFO improving the interrupts handlers I introduced a bug.
The FIFO is allocated after the interrupts are requested. This makes the kernel
crash if the touchscreen generates activity before the allocation takes place.
This patch fixes the bug. I reproduced it and tested the fix in a GTA02.
- Fix bug
- Fix a typo
Reported-by: Andy Green <andy@openmoko.com>
Signed-off-by: Nelson Castillo <nelsoneci@gmail.com>
|
|
-1228733704
pending-tracking-hist top was MERGE-via-stable-tracking-remove-skip-filter-1228733704 / 552c6fdd4c644ab2618ad27564d159ed28bbd859 ... parent commitmessage:
From: merge <null@invalid>
MERGE-via-stable-tracking-hist-remove-skip-filter
stable-tracking-hist top was remove-skip-filter / 92bdef8636873a19efc05b2a19578a0aa93dba41 ... parent commitmessage:
From: Nelson Castillo <nelsoneci@gmail.com>
Remove skip filter
With more reliable points median and mean filters perform a better job.
We no longer need this filter.
Signed-off-by: Nelson Castillo <nelsoneci@gmail.com>
|
|
toolchain-on-1228470136
pending-tracking-hist top was MERGE-via-stable-tracking-build-fix-path-to-toolchain-on-1228470136 / 21b67ab8e79998b0a534263282dab1dda0f11b00 ... parent commitmessage:
From: merge <null@invalid>
MERGE-via-stable-tracking-hist-build-fix-path-to-toolchain-on
stable-tracking-hist top was build-fix-path-to-toolchain-on / ca14ba894df9b28822066c578dde48d7dbe931de ... parent commitmessage:
From: Andy Green <andy@openmoko.com>
build-fix-path-to-toolchain-one-at-last.patch
Signed-off-by: Andy Green <andy@openmoko.com>
|
|
al-functions-1228426177
pending-tracking-hist top was MERGE-via-stable-tracking-cleanup-add-internal-functions-1228426177 / cf9f1f4a754f2db71f829a8b07ac455e053b3d1f ... parent commitmessage:
From: merge <null@invalid>
MERGE-via-stable-tracking-hist-cleanup-add-internal-functions
stable-tracking-hist top was cleanup-add-internal-functions / 251b632aa7be6c6307a6938a59793e205da5b326 ... parent commitmessage:
From: Nelson Castillo <nelsoneci@gmail.com>
Cleanup - Add internal functions for clearing filters
This patch adds the following functions:
* ts_filter_mean_clear_internal
* ts_filter_median_clear_internal
The idea: avoid calling the clean function of other filters
when we initialize one.
Also:
* modify messages for consistency.
* remove an unneeded else.
Signed-off-by: Nelson Castillo <nelsoneci@gmail.com>
|
|
c2410_ts-pat
pending-tracking-hist top was MERGE-via-stable-tracking-add-skip_filter-s3c2410_ts-pat / 90805b15390b2c9a56c31eb9722a9704a88c1ad7 ... parent commitmessage:
From: merge <null@invalid>
MERGE-via-stable-tracking-hist-add-skip_filter-s3c2410_ts-pat
stable-tracking-hist top was add-skip_filter-s3c2410_ts-pat / d1ee2301175bf55df550fb310b0701645e07e5dd ... parent commitmessage:
From: Nelson Castillo <nelsoneci@gmail.com>
add-skip_filter-s3c2410_ts.patch
Skip filter for touchscreen values.
Problem: The first and the last sample might be unreliable. We provide
this filter as a separate function in order to keep the event_send_timer_f
function simple. This filter:
* Skips NHEAD points after IE_DOWN
* Skips NTAIL points before IE_UP
* Ignores a click if we have less than (NHEAD + NTAIL + 1) points
Right now the filter is embedded in the driver. We have two #defines with
the parameters SKIP_NHEAD and SKIP_NTAIL. I didn't store their values in
struct skip_filter on purpose.
Signed-off-by: Nelson Castillo <nelsoneci@gmail.com>
|
|
_filter_medi
pending-tracking-hist top was MERGE-via-stable-tracking-fix-last_issued-ts_filter_medi / 404664ee400e5a47f66a4dce9427f3fd4ae22d38 ... parent commitmessage:
From: merge <null@invalid>
MERGE-via-stable-tracking-hist-fix-last_issued-ts_filter_medi
stable-tracking-hist top was fix-last_issued-ts_filter_medi / 80f4b57fef5dcffbb1d93fa43432952c168860ed ... parent commitmessage:
From: Nelson Castillo <nelsoneci@gmail.com>
fix-last_issued-ts_filter_median.patch
- Decimation_below was not being used in the median filter. Fixed.
- Decimation_below should be small. There's no need to change many
points in the median filter if we're moving slow. In this way we
will filter more noise.
- Now we deliver 2X input events -- 1 each 5 milliseconds.
(side effect of the previous two changes)
- We should omit the last point before the UP event but I think this
belongs to user-space. I'm programming a tslib filter ("skip") and
if it doesn't work will I'll send a patch later to skip the last
point in the driver.
Signed-off-by: Nelson Castillo <nelsoneci@gmail.com>
|
|
hort-clicks-s3c24
pending-tracking-hist top was MERGE-via-stable-tracking-hist-ignore-very-short-clicks-s3c24 / 8e8a39f8d43430ae4543b6d13b1626bd8b913881 ... parent commitmessage:
From: merge <null@invalid>
MERGE-via-stable-tracking-hist-ignore-very-short-clicks-s3c24
stable-tracking-hist top was ignore-very-short-clicks-s3c24 / aa3d2f306e4ca5b04a01ca3ad635caae1c1e8e33 ... parent commitmessage:
From: Nelson Castillo <nelsoneci@gmail.com>
ignore-very-short-clicks-s3c2410_ts.patch
With this patch the issue of the noisy clicks seems to be
alleviated. We ignore the first two points. If a click has less
than 3 points we ignore it.
On a normal click (I mean with at least 3 points) this patch
will delay the first DOWN event by 20 milliseconds.
I'm looking for a better solution but this one works and it should
make the driver more usable.
Signed-off-by: Nelson Castillo <nelsoneci@gmail.com>
|
|
plevel-patch
balaji-tracking-hist top was MERGE-via-stable-tracking-hist-config-gta02-uplevel-patch / eb381acecca375d0a7b88cfe640504a8a1fa4c39 ... parent commitmessage:
From: merge <null@invalid>
MERGE-via-stable-tracking-hist-config-gta02-uplevel-patch
stable-tracking-hist top was config-gta02-uplevel-patch / 0e07e39074bbdb938cfefaea6ad7823282cc914c ... parent commitmessage:
From: Andy Green <andy@openmoko.com>
config-gta02-uplevel.patch
Signed-off-by: Andy Green <andy@openmoko.com>
|
|
patches-tracking-via-master-s3c-hsmmc-clean
balaji-tracking-hist top was efb2d57c0e0ed62324d79d6c5793fe797c157266
|
|
|
|
Signed-off-by: Andy Green <andy@openmoko.com>
|
|
Signed-off-by: Andy Green <andy@openmoko.com>
|
|
Signed-off-by: Andy Green <andy@openmoko.com>
|
|
pcf50633 driver rewritten to use the MFD model.
|
|
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>
|
|
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>
|
|
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>
|
|
Signed-off-by: Andy Green <andy@openmoko.com>
|
|
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>
|
|
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>
|
|
Signed-off-by: Andy Green <andy@openmoko.com>
|
|
Signed-off-by: Andy Green <andy@openmoko.com>
|
|
Signed-off-by: Andy Green <andy@openmoko.com>
|
|
Signed-off-by: Jonas Bonn <jonas.bonn@gmail.com>
|
|
Signed-off-by: Andy Green <andy@openmoko.com>
|
|
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>
|
|
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>
|
|
Move to level from edge, fix local_save... to local_irq...
simplify bitbang sequence
Signed-off-by: Sean McNeil <sean@mcneil.com>
|
|
Add /sys files for jack state reporting.
Signed-off-by: Sean McNeil <sean@mcneil.com>
|
|
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>
|
|
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>
|
|
style cleanups for accel threshold setting patch
Signed-off-by: Andy Green <andy@openmoko.com>
|
|
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>
|
|
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>
|
|
Signed-off-by: Andy Green <andy@openmoko.com>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
Signed-off-by: Andy Green <andy@openmoko.com>
|
|
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>
|
|
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>
|
|
Signed-Off-By: Holger Freyther <zecke@openmoko.org>
|
|
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>
|
|
Samsung SoC
Use this irq_to_gpio in the neo1973 keyboard driver
|
|
Signed-Off-by: Holger Freyther <zecke@openmoko.org>
|
|
Signed-Off-by: Holger Freyther <zecke@openmoko.org>
|
|
Signed-Off-by: Holger Freyther <zecke@openmoko.org>
|