aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2008-11-19sdio: use interruptible sleep in kthread main loopsJason Uhlenkott
My FreeRunner's load average was leveling off at 2.00 as a result of these two kernel threads: SDIO Helper D c02b4500 0 255 2 [<c02b4298>] (schedule+0x0/0x2d4) from [<c02b4040>] (__down+0x100/0x158) [<c02b3f40>] (__down+0x0/0x158) from [<c02b3e2c>] (__down_failed+0xc/0x20) r7:00000000 r6:c01fbd64 r5:c7cb7134 r4:c7d58000 [<c01fa6fc>] (CardDetectHelperFunction+0x0/0x1ac) from [<c01fbd80>] (HelperLaunch+0x1c/0x28) r5:c7cb7134 r4:c7cb7134 [<c01fbd64>] (HelperLaunch+0x0/0x28) from [<c005bbd0>] (kthread+0x60/0x94) r4:c7d58000 [<c005bb70>] (kthread+0x0/0x94) from [<c0048f7c>] (do_exit+0x0/0x744) r6:00000000 r5:00000000 r4:00000000 SDIO Helper D c02b4500 0 259 2 [<c02b4298>] (schedule+0x0/0x2d4) from [<c02b4040>] (__down+0x100/0x158) [<c02b3f40>] (__down+0x0/0x158) from [<c02b3e2c>] (__down_failed+0xc/0x20) r7:c0382bb4 r6:c0382b34 r5:c7d5a000 r4:00000001 [<c01f9104>] (SDIOIrqHelperFunction+0x0/0x29c) from [<c01fbd80>] (HelperLaunch+0x1c/0x28) r8:00000000 r7:00000000 r6:c01fbd64 r5:c0382bb4 r4:c0382bb4 [<c01fbd64>] (HelperLaunch+0x0/0x28) from [<c005bbd0>] (kthread+0x60/0x94) r4:c7d5a000 [<c005bb70>] (kthread+0x0/0x94) from [<c0048f7c>] (do_exit+0x0/0x744) r6:00000000 r5:00000000 r4:00000000 This fixes them to use interruptible sleep primitives while waiting in their main loops, as is conventional for kernel threads. They can't actually be interrupted since kernel threads ignore all signals, but by sleeping this way they get classified as long term waiters, and don't get counted as running for purposes of load average calculation. This is intended as a minimal fix. In the longer term, it'd probably make sense to replace the semaphores with completions or something, and to do away with some of these StudlyCapped wrapper functions. Signed-off-by: Jason Uhlenkott <jasonuhl@jasonuhl.org> -- This is untested, but what could possibly go wrong? ;)
2008-11-19introduce-BANKCON-meddling-sysfs.patchAndy Green
A few questions have been flying around about how optimal our waitstates are for various things including Glamo. This patch introduces new sysfs nodes /sys/devices/platform/neo1973-memconfig.0/BANKCON0 ... /sys/devices/platform/neo1973-memconfig.0/BANKCON7 If you cat them you get translated info about bus speed on that chip select, eg, # cat /sys/devices/platform/neo1973-memconfig.0/BANKCON1 BANKCON1 = 0x00000A40 Type = ROM / SRAM PMC = normal (1 data) Tacp = 2 clocks Tcah = 0 clocks Tcoh = 1 clock Tacc = 3 clocks Tcos = 1 clock Tacs = 0 clocks You can write them in hex too # echo 0x200 > /sys/devices/platform/neo1973-memconfig.0/BANKCON1 The write format for BANKCON0 - 5 looks like this b1..b0 PMC Page Mode Config b3..b2 Tacp Page Mode Access Cycle b5..b4 Tcah Address hold after CS deasserted b7..b6 Tcoh CS hold after OE deasserted b10..b8 Tacc Access Cycle Period b12..b11 Tcos CS setup before OE asserted b14..b13 Tacs Address setup before CS asserted BANKCON 6 and 7 have two extra bits b16..b15 MT Memory type (00=ROM/SRAM, 11=DRAM) If it's ROM/SRAM, the rest of the bits are as described above. For DRAM b1..b0 SCAN Column address number b3..b2 RAS to CAS delay The patch is intended to let people experiement on their own. But of course you will crash things for sure if the timing is wrong, and you can also trash SD Card data if you make Glamo unstable, so remove it or remount ro first. Other horrible things are possible, but because the settings aren't sticky, you should always be able to recover by either normal reboot usually or at worst NOR boot and then dfu. Most likely you will just crash your session and have to reboot if your settings are bad, but consider yourself warned bad things are possible. :-) Signed-off-by: Andy Green <andy@openmoko.com>
2008-11-19change-backlight-level-not-forced-up-on-resume.patchAndy Green
We at least always enabled backlight on resume, this patch changes us to set backlight back to last requested backlight brightness level on resume. Note it means that you can resume with screen blanked, but it should come back if that happened with touchscreen action as usual. /sys/class/backlight/pcf50633-bl/actual_brightness and /sys/class/backlight/pcf50633-bl/brightness seem to agree after resume when reportedly they didn't before. Signed-off-by: Andy Green <andy@openmoko.com>
2008-11-19fix-no-uart-leak-when-gps-off.patchAndy Green
During the suspend current reduction campaign on suspend I forced the GPS UART to be GPIO and to drive 0 into the GPS unit so we would not burn current there. On resume it lets the pins act as UARTs again. But really, we should do this all the time that the GPS unit is off, lest we leak it enough power to hold internal state and make trouble. Signed-off-by: Andy Green <andy@openmoko.com>
2008-11-19add-pcf50633-allow-force-charger-type.patchAndy Green
This patch adds a sysfs node: /sys/class/i2c-adapter/i2c-0/0-0073/force_usb_limit_dangerous it allows to force the charging limit regardless of the one chosen by pcf50633 kernel driver. As such, if you write a charging limit here that is not suitable for the power source, and the power source is not current limited on its side, it could draw more current than your power source can handle, burn down you house, etc. If you're certain that your power supply can handle it, you can use this on your own responsibility to make the amount drawn by the PMU match what you believed your power supply could handle. Example usage, in case where you have a dumb 500mA USB charger that does not have the ID resistor: # cat /sys/class/i2c-adapter/i2c-0/0-0073/charger_type host/500mA usb mode 100mA <=== dumb charger does not ennumerate us # echo 500 > /sys/class/i2c-adapter/i2c-0/0-0073/force_usb_limit_dangerous # cat /sys/class/i2c-adapter/i2c-0/0-0073/charger_type host/500mA usb mode 500mA 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-pcf50633-mask-second-on-resume.patchAndy Green
We leave SECOND unmasked on resume, it's like the situation at probe() time, but there it makes us turn SECOND off after coldplug action. So we need to act like after that has happened, not exactly like what we do at probe / init time. Signed-off-by: Andy Green <andy@openmoko.com>
2008-11-19From 3a32be40f78404d5f1185f0b3d6b5632381cb33f Mon Sep 17 00:00:00 2001Holger Freyther
Subject: [PATCH] [neo1973 leds] Move from mutex to spinlock because we may not use mutexes The led triggers may call set_brightness from atomic contexts. As mutex_lock calls might_sleep and sleeping is not allowed in atomic contexts we have to switch to spinlocks here. Signed-Off-By: Holger Freyther <zecke@openmoko.org>
2008-11-19From cede5c6c9b06ecbb0f7f2df7b7070092b87ddaf8 Mon Sep 17 00:00:00 2001Holger Freyther
Subject: [PATCH] [pcf50633] Avoid ooops on start with inserted usb cable The pcf50633_global might not be initialized when we get the first usb interrupt. We would oops inside the dev_err because we made up a struct device. Signed-Off-By: Holger Freyther <zecke@openmoko.org>
2008-11-19commit 5f42e24d361cd83178fe8da9d68efbf41a011483Mike Westerhof
Add missing initialization for the touchscreen driver for the gta01 platform. Signed-off-by: Mike Westerhof <mwester@dls.net>
2008-11-19Remove some bits of nspy + GSM flow control patches that leaked into stableMike Westerhof
Signed-off-by: Mike Westerhof <mwester@dls.net>
2008-11-19add-ar6k-wake-interrupt.patchMatt
Signed-off-by: Matt Hsu <matt_hsu@openmoko.org> - add an interrupt for ar6k wifi module
2008-11-19change-remove-kernel-charging-led-drive.patchAndy Green
Signed-off-by: Andy Green <andy@openmoko.com>
2008-11-19From c221bb27c8e22daa451e26353140777223d397d2 Mon Sep 17 00:00:00 2001Holger Freyther
Subject: [PATCH] [pcf50633] Report more events to userspace using the default callback Signed-Off-By: Holger Freyther <zecke@openmoko.org>
2008-11-19From 5718bde77ed1a75e0fd2cdf5e099e66121d10c0a Mon Sep 17 00:00:00 2001Holger Freyther
Subject: [PATCH] [battery] Make the bq27000 send an uevent when the charging state possible changed Remove the todo entries from the pcf50633, make the mach-gta02 call the bq27000 driver from the pmu callback.
2008-11-19From 000450f1ad2c713d2345a872fdf44f5dd3702e1b Mon Sep 17 00:00:00 2001Holger Freyther
Subject: [PATCH] [janitor] make checkpatch.pl happy
2008-11-19From 683ef8067815f6ba0ede73fa71973823726213a3 Mon Sep 17 00:00:00 2001Holger Freyther
Subject: [PATCH] [janitor] Make checkpatch happy on the header files
2008-11-19From ae3f72fc608fcd0a98a980a335ac4dc7ad95b221 Mon Sep 17 00:00:00 2001Holger Freyther
Subject: [PATCH] [bq27000] Make the checkpatch.pl happy
2008-11-19From 119f4e02ba81cffe4dbc88d8ff667048ad28d925 Mon Sep 17 00:00:00 2001Andrzej Zaborowski
Subject: [PATCH] Hacky CONFIG_NO_IDLE_HZ (dyn-tick) support for S3C24xx.
2008-11-19tracking-2.6.26-rc7-repeat-cdev-removal-pcf50633.patchAndy Green
Signed-off-by: Andy Green <andy@openmoko.com>
2008-11-19tracking-defconfig-2.6.26-rc7.patchAndy Green
Signed-off-by: Andy Green <andy@openmoko.com>
2008-11-19introduce-resume-exception-capture.patchAndy Green
This patch introduces a new resume debugging concept: if we get an OOPS inbetween starting suspend and finishing resume, it uses a new "emergency spew" device similar to BUT NOT REQUIRING CONFIG_DEBUG_LL to dump the syslog buffer and then the OOPS on the debug device defined by the existing CONFIG_DEBUG_S3C_UART index. But neither CONFIG_DEBUG_LL nor the S3C low level configs are needed to use this feature. Another difference between this feature and CONFIG_DEBUG_LL is that it does not affect resume timing, ordering or UART traffic UNLESS there is an OOPS during resume. The patch adds three global exports, one to say if we are inside suspend / resume, and two callbacks for printk() to use to init and dump the emergency data. The callbacks are set in s3c serial device init, but the whole structure is arch independent. Signed-off-by: Andy Green <andy@openmoko.com>
2008-11-19fix-gsm-resume-problems.patchAndy Green
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-19introduce-panic-blink-led-not-using-userspace-omfg.patchAndy Green
A panic is silent on GTA02, it would be good if we got a little hint if we are crashing (eg, in suspend / resume) from a panic instead of a deadlock, etc. On a normal PC i8042 blinks the keyboard lights if we panic, this patch causes AUX to flash at 5Hz in event of a panic. Tested by giving kernel fake root= that didn't exist. Signed-off-by: Andy Green <andy@openmoko.com>
2008-11-19Subject: [PATCH] glamo: Don't disable hwcursor for blinking and use vsync-wait.Andrzej Zaborowski
2008-11-19Subject: [PATCH] [a6k] Everyone calls SET_NET_DEV and hald needs that too,Holger Freyther
make it happy Call SET_NET_DEV to set a parent device. All other net drivers are doing this and hald needs a parent to add the network device.
2008-11-19workaround-s3c24xx-i2s-stop-live-stream-stall-on-resume.patchAndy Green
Reported-by: Graeme Gregory <graeme@openmoko.org> Basically-solved-by: Graeme Gregory <graeme@openmoko.org> Graeme found a while back that on resume, IISCON register in s3c2442 does not show LRCK toggling in LRINDEX bit any more, causing s3c24xx_snd_lrsync() to timeout and return an error, aborting restart of any live stream that was playing at suspend. I confirmed it was true, meddled around for a bit looking for some magic to restart LRCK or at least the reporting of it, and in the end worked around it using the method noted by Graeme: just ignore LRCK sync if it timed out. The worst that could happen would be L and R swap for the duration of stream that was suspended into but probably not even that. Signed-off-by: Andy Green <andy@openmoko.com>
2008-11-19fix-pcf50633-use-pcf-not-data-in-probe-for-context.patchAndy Green
Everywhere in the sources except the probe function the context pointer is called "pcf"... in there it's called "data" for some reason. This stops confusion by changing it to be "pcf" in there as well. Signed-off-by: Andy Green <andy@openmoko.com>
2008-11-19fix-pcf50633-migrate-gta02-peripherals-out.patchAndy Green
pcf50633.c shouldn't know GTAxx at all. Move to using a platform callback to allow definition of platform devices with pcf50633 as parent device (good for enforcing suspend / resume ordering). Remove all code references to GTAxx from the sources (one string left for compatability). Signed-off-by: Andy Green <andy@openmoko.com>
2008-11-19fix-pcf50633-platform-backlight-resume-ramp-setting.patchAndy Green
Signed-off-by: Andy Green <andy@openmoko.com>
2008-11-19fix-glamo-suspend-resume-dram-and-engines.patchAndy Green
Two issues... we never took care to take down engines in suspend and bring them back in resume. This was part of the display corruption that could be seen briefly on resume. The other issue that made the "noise" corruption was bad ordering of resume steps. This patch simplifies (removing needless re-init) resume actions and makes explicit the suspend and resume steps. It also adds code to track which engines are up and push them down in suspend and bring them back in resume. The result is no more corruption of display buffer in suspend, it comes back completely clean. Signed-off-by: Andy Green <andy@openmoko.com>
2008-11-19fix-pcf50633-really-defer-backlight-on-resume.patchAndy Green
Backlight wasn't off by default on resume, so it was never really deferred (until LCM is initialized). This fixes that and so removes the brief white screen between pcf50633 resume and LCM init. Signed-off-by: Andy Green <andy@openmoko.com>
2008-11-19debug-backtrace-not-choke-on-null-dev_blah.patchAndy Green
Signed-off-by: Andy Green <andy@openmoko.com>
2008-11-19fix-pcf50633-disable-irq-from-suspend-until-resume.patchAndy Green
Disable pcf interrupt (not for wake, just as interrupt) in suspend, re-enable it again just before we force-call the workqueue function at end of pcf resume, which leads to pcf interrupt source registers getting cleared so it can signal an interrupt normally again. This change ends the uncontrolled appearance of pcf interrupts during resume time which previously caused the work to attempt to use the I2C stuff before i2c host device had itself resumed. Now the isr work is only queued, and the isr work function called, definitively after pcf resume completes. In suspend time, the work function may have been queued some time before and be pending, and it could still show up at a bad time. Therefore if the work function sees that it is coming since the start of pcf50633 suspend function, it aborts without attempting to read the pcf interrupt regs, leaving them for resume to take care of. USB current limit and no battery work functions are also made aware of suspend state and act accordingly. Lastly I noticed that in early resume, i2c_get_clientdata(&pcf->client) returns NULL, presumably because i2c device is still suspended. This could easily make trouble for async events like interrupt work, since pcf pointer is the client data. Disabling appearance of the work until after pcf50633 resume will also avoid that. Signed-off-by: Andy Green <andy@openmoko.com>
2008-11-19fix-pcf50633-suspend-state-as-enum.patchAndy Green
Use an enum to define pcf50633 suspend / resume state. Add PCF50633_SS_RESUMING_BUT_NOT_US_YET to be the state early in resume: add platform driver resume function just to set this state so we can differentiate between early resume and late suspend. Signed-off-by: Andy Green <andy@openmoko.com>
2008-11-19debug-i2c-s3c2410-dump-stack-on-suspended-tranfer.patchAndy Green
Signed-off-by: Andy Green <andy@openmoko.com>
2008-11-19fix-allow-core-1v3-to-go-down.patchAndy Green
Whoops left it up in suspend Signed-off-by: Andy Green <andy@openmoko.com>
2008-11-19fix-pcf50633-kill-white-splash-of-death-on-suspend.patchAndy Green
mach-gta02 meddles with the regulator platform struct after it is defined, leading to LCM power getting lost in suspend despite I set it to be left up. Fixing this finally removes the incredibly stubborn white LCM on suspend "flash". This is also going to be implicated in Sean McNeil's experience of monochromatic LCM after resume, which was previously attacked by resetting and re-initing the LCM from scratch. In addition, I realized that we take down core_1v3 in pcf50633 suspend action, this is happening near the start of suspend, so we are in a meta-race to finish suspend in a controlled way before the caps on core_1v3 run out (I only saw 23.3uF total). If it's true, this is where the weirdo sensitivity to timing during suspend is coming from. Therefore in this patch we also remove sleeps and dev_info() etc (which have to flush on serial console) from the pc50633 isr workqueue if we are in pcf50633 driver suspend state 1, ie, suspending... because we don't have time for it. Signed-off-by: Andy Green <andy@openmoko.com>
2008-11-19fix-pcf50633-add-back-gratuitous-isr-work-call-in-resume.patchAndy Green
Sean McNeil reports that he doesn't get pcf50633 interrupts any more after resume. This adds back the call to ISR work in the resume, removal of which is probably to do with it. Signed-off-by: Andy Green <andy@openmoko.com>
2008-11-19fix-pcf50633-require-resume-level-3-for-irq-work.patchAndy Green
Signed-off-by: Andy Green <andy@openmoko.com>
2008-11-19add-remote-install-sdcard-script.patchAndy Green
If you boot from SDCARD, this helper script for the build host mounts SD card part 1, copies the new uImage.bin, umounts it and then remounts SD card part 2 as ro, before doing a reboot all in one step. Read the instructions inside the script for adding your public key to the GTAxx rootfs for really really simple and nice automatic update and reboot action. Signed-off-by: Andy Green <andy@openmoko.com>
2008-11-19fix-gta02-mach-remove-gta01-lcd-reset.patchAndy Green
Signed-off-by: Andy Green <andy@openmoko.com>
2008-11-19change-lcm-keep-power-faster-resume.patchAndy Green
The LCM spins for 100ms during resume for not much reason. Leave it powered (it is meant to pull uA when suspended) and get nice fast resume to video. Signed-off-by: Andy Green <andy@openmoko.com>
2008-11-19fix-pcf50633-usb-curlim-workqueue-migration.patchAndy Green
pcf50633 needs to take responsibility for managing current limit changes asycnhrnously, ie, from USB stack enumeration. It's a feature of pcf50633 not mach-gta02.c, and we can do better with taking care about keeping it from firing at a bad time in there too. Signed-off-by: Andy Green <andy@openmoko.com>
2008-11-19fix-pcf50633-use-i2c-bulk-autoincrement.patchAndy Green
Simplify and speed up bulk sequential I2C actions in pcf50633 the time savings are pretty considerable and so is the simplification Signed-off-by: Andy Green <andy@openmoko.com>
2008-11-19fix-pcf50633-rtc-i2c-bulk-autoincrement-simplify.patchAndy Green
More pcf50633 major time saving by using i2c bulk autoincrement. Code reduction too by using array for time elements. Signed-off-by: Andy Green <andy@openmoko.com>
2008-11-19fix-pcf50633-interrupt-work-enforce-wait-on-resume-completion.patchAndy Green
Improve pcf50633 interrupt service scheduling to enforce only servicing when resume action is completed Signed-off-by: Andy Green <andy@openmoko.com>