aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/plat-s3c24xx
Commit message (Collapse)AuthorAge
* ARM: S3C2440: Fix s3c2440 cpufreq compilation post move.Vasily Khoruzhick2010-03-15
| | | | | | | Fix compilation issue by moving s3c2440-cpufreq.c into mach-s3c2440 directory Signed-off-by: Vasily Khoruzhick <anarsoul@gmail.com> Signed-off-by: Ben Dooks <ben-linux@fluff.org>
* Merge branch 'for-linus' of ↵Linus Torvalds2010-03-12
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (56 commits) doc: fix typo in comment explaining rb_tree usage Remove fs/ntfs/ChangeLog doc: fix console doc typo doc: cpuset: Update the cpuset flag file Fix of spelling in arch/sparc/kernel/leon_kernel.c no longer needed Remove drivers/parport/ChangeLog Remove drivers/char/ChangeLog doc: typo - Table 1-2 should refer to "status", not "statm" tree-wide: fix typos "ass?o[sc]iac?te" -> "associate" in comments No need to patch AMD-provided drivers/gpu/drm/radeon/atombios.h devres/irq: Fix devm_irq_match comment Remove reference to kthread_create_on_cpu tree-wide: Assorted spelling fixes tree-wide: fix 'lenght' typo in comments and code drm/kms: fix spelling in error message doc: capitalization and other minor fixes in pnp doc devres: typo fix s/dev/devm/ Remove redundant trailing semicolons from macros fix typo "definetly" -> "definitely" in comment tree-wide: s/widht/width/g typo in comments ... Fix trivial conflict in Documentation/laptops/00-INDEX
| * tree-wide: Assorted spelling fixesDaniel Mack2010-02-09
| | | | | | | | | | | | | | | | | | | | | | In particular, several occurances of funny versions of 'success', 'unknown', 'therefore', 'acknowledge', 'argument', 'achieve', 'address', 'beginning', 'desirable', 'separate' and 'necessary' are fixed. Signed-off-by: Daniel Mack <daniel@caiaq.de> Cc: Joe Perches <joe@perches.com> Cc: Junio C Hamano <gitster@pobox.com> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
* | ARM: S3C2440: Fix plat-s3c24xx move of s3c2440/s3c2442 supportBen Dooks2010-03-04
| | | | | | | | | | | | | | | | | | | | | | Commit 58bac7b8ded70c39bcd5f7037091051c277618aa failed to move the two PLL files s3c2440-pll-12000000.c and s3c2440-pll-16934400.c, so place these in arch/arm/mach-s3c2440 to fix this commit up. As a note, these are not built by the default configuration and thus the failure to move wasn't spotted until much later. Signed-off-by: Ben Dooks <ben-linux@fluff.org>
* | ARM: SAMSUNG: Add resources description for s3c24xx ts driverVasily Khoruzhick2010-02-23
| | | | | | | | | | | | | | Without resources description driver fails during initialization. Signed-off-by: Vasily Khoruzhick <anarsoul@gmail.com> Signed-off-by: Ben Dooks <ben-linux@fluff.org>
* | ARM: S3C24XX: Move audio-simtec.h to plat-s3c24xxBen Dooks2010-02-23
| | | | | | | | | | | | | | Continue the clearout of plat-s3c by moving audio-simtec.h to plat-s3c24xx as there are no current implementations outside of this platform. Signed-off-by: Ben Dooks <ben-linux@fluff.org>
* | ARM: SAMSUNG: Move plat-s3c Kconfig entries to plat-samsung and plat-s3c24xxBen Dooks2010-02-23
| | | | | | | | | | | | | | | | | | | | | | Move the Kconfig entries from plat-s3c to plat-samsung and plat-s3c24xx as necessary. The S3C_BOOT entries and the DMA configuration can go to plat-samsung. The low-level UART configurations are currently S3C2XX specific and can go to plat-s3c24xx. Eliminating plat-s3c from the build process will be submitted seperately. Signed-off-by: Ben Dooks <ben-linux@fluff.org>
* | ARM: Merge next-samsung-s3c64xx-platdeletionBen Dooks2010-02-22
|\ \ | | | | | | | | | | | | | | | | | | | | | Merge branch 'next-samsung-s3c64xx-platdeletion' into next-samsung Conflicts: arch/arm/mach-s3c64xx/Makefile (fixed)
| * | ARM: SAMSUNG: Remove dma-plat.h to allow plat-s3c64xx to be removedBen Dooks2010-02-21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | dma-plat.h is the last file left in plat-s3c64xx, but to remove it we must also change the use of dma-plat.h by the core code and the s3c24xx implementation. Rename the s3c24xx dma-plat.h in the common plat-samsung directory as it may be used for other ports. Move the specific dma bits into the mach-s3c64xx directory and update the build as needed. Signed-off-by: Ben Dooks <ben-linux@fluff.org>
| * | ARM: SAMSUNG: Move pm-core.h to machine directoryBen Dooks2010-02-20
| | | | | | | | | | | | | | | | | | | | | Move the pm-core.h to the machine include directory in the process of eliminating the plat-s3c64xx. Signed-off-by: Ben Dooks <ben-linux@fluff.org>
* | | ARM: S3C244X: Merge plat-s3c24xx s3c2440.h and s3c2442.h into s3c244x.hBen Dooks2010-02-01
| | | | | | | | | | | | | | | | | | | | | | | | Merge these two headers into one, these two SoCs are so similar. Note, correct fault in mach-smdk2443.h including the wrong header. Signed-off-by: Ben Dooks <ben-linux@fluff.org>
* | | ARM: S3C24XX: Move S3C2440/S3C2442 plat-s3c24xx support to mach-s3c2440Ben Dooks2010-02-01
|/ / | | | | | | | | | | | | Remove the old common S3C2440 and S3C2442 SoC support from plat-s3c24xx into mach-s3c2440 now this directory is serving both SoCs. Signed-off-by: Ben Dooks <ben-linux@fluff.org>
* | ARM: SAMSUNG: Remove empty gpio-core.h and use central plat/gpio-core.hBen Dooks2010-01-19
| | | | | | | | | | | | | | | | | | | | Rename mach-s3c2410/include/mach/gpio-core.h to mach/gpio-track.h so that it can be included by <plat/gpio-core.h> when needed. Eliminate all other empty gpio-core.h files and just include the <plat/gpio-core.h> as necessary. Signed-off-by: Ben Dooks <ben-linux@fluff.org>
* | ARM: Merge next-samsung-devupdates1Ben Dooks2010-01-19
|\ \ | | | | | | | | | Merge branch 'next-samsung-devupdates1' into next-samsung-try7
| * | ARM: S3C24XX: Add mci platform data set call s3c24xx_mci_set_platdata().Ben Dooks2010-01-19
| | | | | | | | | | | | | | | | | | | | | | | | | | | Add a s3c24xx_mci_set_platdata() call for all the machine files that have platform data for the MCI driver. This brings the MCI device into line with the other devices with __initdata and a specific call to ensure the right structure type is being passed. Signed-off-by: Ben Dooks <ben-linux@fluff.org>
| * | ARM: SAMSUNG: Make UART device code commonBen Dooks2010-01-18
| | | | | | | | | | | | | | | | | | | | | | | | Move s3c24xx_uart_devs, s3c24xx_uart_src and the platform devices to a common entry in plat-samsung since they are the same in all the current implementations. Signed-off-by: Ben Dooks <ben-linux@fluff.org>
* | | ARM: SAMSUNG: Move S3C24XX ADC driver to plat-samsungMaurus Cuelenaere2010-01-17
|/ / | | | | | | | | | | | | Move S3C24XX ADC driver to plat-samsung Signed-off-by: Maurus Cuelenaere <mcuelenaere@gmail.com> Signed-off-by: Ben Dooks <ben-linux@fluff.org>
* / ARM: SAMSUNG: Reduce size of struct clk.Ben Dooks2010-01-15
|/ | | | | | | | | | | | | | | Reduce the size of struct clk by 12 bytes and make defining clocks with common implementation functions easier by moving the set_rate, get_rate, round_rate and set_parent calls into a new structure called 'struct clk_ops' and using that instead. This change does make a few clocks larger as they need their own clk_ops, but this is outweighed by the number of clocks with either no ops or having a common set of ops. Update all the users of this. Signed-off-by: Ben Dooks <ben-linux@fluff.org>
* ARM: S3C24XX: touchscreen device definitionArnaud Patard2009-12-23
| | | | | | | | | Add definition for the touchscreen driver platform data and initial support for the H1940 machine. Signed-off-by: Arnaud Patard <arnaud.patard@rtp-net.org> Signed-off-by: Ben Dooks <ben@simtec.co.uk> Signed-off-by: Ben Dooks <ben-linux@fluff.org>
* Merge branch 's3c24xx-updates' of git://git.fluff.org/bjdooks/linuxLinus Torvalds2009-12-09
|\ | | | | | | | | | | | | | | * 's3c24xx-updates' of git://git.fluff.org/bjdooks/linux: ARM: S3C24XX: DMA: Use valid index when accessing array ARM: S3C: move s3c_pwm_remove to .devexit.text ARM: S3C24XX: Export s3c24xx_set_fiq for modules. ARM: S3C: move s3c_adc_remove to .devexit.text
| * ARM: S3C24XX: DMA: Use valid index when accessing arrayRamax Lo2009-12-08
| | | | | | | | | | | | | | | | The DMA_CH_VALID bit used in the channel index should be masked out before using it to access the channel array. Signed-off-by: Ramax Lo <ramaxlo@gmail.com> Signed-off-by: Ben Dooks <ben-linux@fluff.org>
| * ARM: S3C24XX: Export s3c24xx_set_fiq for modules.Ben Dooks2009-12-07
| | | | | | | | | | | | | | | | | | Allow s3c24xx_set_fiq() to be exported so that it can be used by modules wanting FIQ support. Signed-off-by: Ben Dooks <ben@simtec.co.uk> Signed-off-by: Simtec Linux Team <linux@simtec.co.uk> Signed-off-by: Ben Dooks <ben-linux@fluff.org>
| * ARM: S3C: move s3c_adc_remove to .devexit.textUwe Kleine-König2009-12-07
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The function s3c_adc_remove is used only wrapped by __devexit_p so define it using __devexit. Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de> Acked-by: Sam Ravnborg <sam@ravnborg.org> Cc: Russell King <linux@arm.linux.org.uk> Acked-By: Ben Dooks <ben@simtec.co.uk> Cc: Ramax Lo <ramaxlo@gmail.com> Cc: Nelson Castillo <arhuaco@freaks-unidos.net> Cc: linux-kernel@vger.kernel.org Cc: Ben Dooks <ben-linux@fluff.org> Cc: Alexey Dobriyan <adobriyan@gmail.com> Cc: Ryan Mallon <ryan@bluewatersys.com> Cc: linux-arm-kernel@lists.infradead.org Signed-off-by: Ben Dooks <ben-linux@fluff.org>
* | Merge branch 'for-linus' of ↵Linus Torvalds2009-12-09
|\ \ | |/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (42 commits) tree-wide: fix misspelling of "definition" in comments reiserfs: fix misspelling of "journaled" doc: Fix a typo in slub.txt. inotify: remove superfluous return code check hdlc: spelling fix in find_pvc() comment doc: fix regulator docs cut-and-pasteism mtd: Fix comment in Kconfig doc: Fix IRQ chip docs tree-wide: fix assorted typos all over the place drivers/ata/libata-sff.c: comment spelling fixes fix typos/grammos in Documentation/edac.txt sysctl: add missing comments fs/debugfs/inode.c: fix comment typos sgivwfb: Make use of ARRAY_SIZE. sky2: fix sky2_link_down copy/paste comment error tree-wide: fix typos "couter" -> "counter" tree-wide: fix typos "offest" -> "offset" fix kerneldoc for set_irq_msi() spidev: fix double "of of" in comment comment typo fix: sybsystem -> subsystem ...
| * tree-wide: fix assorted typos all over the placeAndré Goddard Rosa2009-12-04
| | | | | | | | | | | | | | | | | | | | 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>
| * Kconfig: Remove useless and sometimes wrong commentsMichael Roth2009-11-09
| | | | | | | | | | | | | | Additionally, some excessive newlines removed. Signed-off-by: Michael Roth <mroth@nessie.de> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
* | ARM: Merge next-s3c24xx-dev-rtpBen Dooks2009-12-03
|\ \ | | | | | | | | | | | | | | | | | | | | | Merge branch 'next-s3c24xx-dev-rtp' into for-rmk Conflicts: arch/arm/mach-s3c2440/mach-anubis.c
| * | ARM: S3C: Add NAND device platform data set callBen Dooks2009-11-30
| |/
* | ARM: S3C: Update Simtec copyright statements from , to - [2]Ben Dooks2009-11-30
| | | | | | | | | | | | | | | | | | | | | | | | | | There are a number of statements of the form A, B or A, B, C where the numbers A,B,C are not consecutive. However, referencing [1] it is the correct thing to replace these with A-B or A-C as apropriate. [1] http://www.copyrightservice.co.uk/copyright/p03_copyright_notices section 4iii 'Year of publication' Signed-off-by: Ben Dooks <ben@simtec.co.uk> Signed-off-by: Simtec Linux Team <linux@simtec.co.uk> Signed-off-by: Ben Dooks <ben-linux@fluff.org>
* | ARM: S3C: Update Simtec copyright statements from , to -Ben Dooks2009-11-30
| | | | | | | | | | | | | | | | | | | | | | | | | | There are a number of statements of the form A, B or A, B, C where the numbers A,B,C are consecutive. Tidy these up to be A-B or A-C as appropriate and to comply better with copyright standards [1] [1] http://www.copyrightservice.co.uk/copyright/p03_copyright_notices section 4iii 'Year of publication' Signed-off-by: Ben Dooks <ben@simtec.co.uk> Signed-off-by: Simtec Linux Team <linux@simtec.co.uk> Signed-off-by: Ben Dooks <ben-linux@fluff.org>
* | ARM: S3C: Fix Simtec copyright statements in Documentation/S3C24XXBen Dooks2009-11-30
| | | | | | | | | | | | | | | | | | | | | | | | | | The (c) alone is not a sufficient copyright statement, nor is it a good replacement for the proper encircled &copy; symbol [1]. Add the word copyright to the apropriate places and remove the (c) symbol. [1] http://www.copyrightservice.co.uk/copyright/p03_copyright_notices section 4 'What does a notice consist of?' Signed-off-by: Ben Dooks <ben@simtec.co.uk> Signed-off-by: Simtec Linux Team <linux@simtec.co.uk> Signed-off-by: Ben Dooks <ben-linux@fluff.org>
* | ARM: S3C24XX: Add documentation for arch/arm/plat-s3c24xx/include/plat/mci.hBen Dooks2009-11-30
| | | | | | | | | | | | | | | | | | Add documentation for the platform data structure in the SD/MMC driver header file arch/arm/plat-s3c24xx/include/plat/mci.h. Signed-off-by: Ben Dooks <ben@simtec.co.uk> Signed-off-by: Simtec Linux Team <linux@simtec.co.uk> Signed-off-by: Ben Dooks <ben-linux@fluff.org>
* | ARM: S3C24XX: machine support for Simtec AudioBen Dooks2009-11-30
|/ | | | | | | | | Add the platform/machine support for the audio devices fitted to the Simtec range of boards since the move to ASoC. Signed-off-by: Ben Dooks <ben@simtec.co.uk> Signed-off-by: Simtec Linux Team <linux@simtec.co.uk> Signed-off-by: Ben Dooks <ben-linux@fluff.org>
* ARM: S3C24XX: Fix warnings in arch/arm/plat-s3c24xx/gpio.cBen Dooks2009-10-28
| | | | | | | | | | | | | | | Fix the following warnings from sparse in arch/arm/plat-s3c24xx/gpio. due to the missing include of <mach/gpio-fns.h> gpio.c:36:6: warning: symbol 's3c2410_gpio_cfgpin' was not declared. Should it be static? gpio.c:84:14: warning: symbol 's3c2410_gpio_getcfg' was not declared. Should it be static? gpio.c:103:6: warning: symbol 's3c2410_gpio_pullup' was not declared. Should it be static? gpio.c:125:5: warning: symbol 's3c2410_gpio_getpull' was not declared. Should it be static? gpio.c:138:6: warning: symbol 's3c2410_gpio_setpin' was not declared. Should it be static? gpio.c:157:14: warning: symbol 's3c2410_gpio_getpin' was not declared. Should it be static? gpio.c:184:5: warning: symbol 's3c2410_gpio_getirq' was not declared. Should it be static? Signed-off-by: Ben Dooks <ben-linux@fluff.org>
* ARM: S3C24XX: arch/arm/plat-s3c24xx: Move dereference after NULL testJulia Lawall2009-10-28
| | | | | | | | | | | | | | | | | | | | | | If the NULL test on buf is needed, then the dereference should be after the NULL test. A simplified version of the semantic match that detects this problem is as follows (http://coccinelle.lip6.fr/): // <smpl> @match exists@ expression x, E; identifier fld; @@ * x->fld ... when != \(x = E\|&x\) * x == NULL // </smpl> Signed-off-by: Julia Lawall <julia@diku.dk> Signed-off-by: Ben Dooks <ben-linux@fluff.org>
* ARM: S3C: Fix adc function exportsRyan Mallon2009-10-28
| | | | | | | | Fix the export of s3c_adc_read. Signed-off-by: Ryan Mallon <ryan@bluewatersys.com> [ben-linux@fluff.org: remove unexport of s3c_adc_start, needed for ts] Signed-off-by: Ben Dooks <ben-linux@fluff.org>
* ARM: S3C2410: Fix link if CONFIG_S3C2410_IOTIMING is not setBen Dooks2009-10-28
| | | | | | | | | | | | | Fix the link errors if cpu-frequency support is enabled on s3c2410 systems but there is no CONFIG_S3C2410_IOTIMING set. Fix this by ensuring the relevant symbols are defined NULL if the code is not being built in. Fixes the following error: arch/arm/mach-s3c2410/built-in.o: undefined reference to `s3c2410_iotiming_get' arch/arm/mach-s3c2410/built-in.o: undefined reference to `s3c2410_iotiming_set' arch/arm/mach-s3c2410/built-in.o: undefined reference to `s3c2410_iotiming_calc' Signed-off-by: Ben Dooks <ben-linux@fluff.org>
* ARM: S3C24XX: Introduce S3C2442B CPUHarald Welte2009-10-28
| | | | | | | | | | Add the S3C2442B CPU ID to aid support the Openmoko GTA02 / Freerunner. Signed-off-by: Harald Welte <laforge@gnumonks.org> Signed-off-by: Andy Green <andy@warmcat.com> Signed-off-by: Nelson Castillo <arhuaco@freaks-unidos.net> [ben-linux@fluff.org: edit description for clarity and S3C2442B as uppercase] Signed-off-by: Ben Dooks <ben-linux@fluff.org>
* ARM: S3C24XX: Define a macro to avoid compilation errorRamax Lo2009-10-28
| | | | | | | | | | Define a macro to avoid the following error during kernel build process for platforms other than s3c2410: arch/arm/plat-s3c24xx/cpu.c:84: error: ‘s3c2410a_init’ undeclared here (not in a function) Signed-off-by: Ramax Lo <ramaxlo@gmail.com> Signed-off-by: Ben Dooks <ben-linux@fluff.org>
* headers: remove sched.h from interrupt.hAlexey Dobriyan2009-10-11
| | | | | | | | 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>
* s3cmci: add better support for no card detect or write protect availableBen Dooks2009-10-01
| | | | | | | | | | | | | | | Add better support for omitting either the card detect or the write protect GPIOs if the board does not support it. Add the fields no_wprotect and no_detect to the platform data which when set indicate the absence of the respective GPIOs. Note, this also fixes a minor bug where it tries to free IRQ0 if there is no detect gpio available. Signed-off-by: Ben Dooks <ben@simtec.co.uk> Cc: <linux-mmc@vger.kernel.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* s3cmci: Kconfig selection for PIO/DMA/BothBen Dooks2009-10-01
| | | | | | | | | | | | | | Add a selection for the data transfer mode of the s3cmci driver, allowing for either a configuration or rumtime selection of the use of the DMA or PIO transfer code. The PIO only mode is 476 bytes smaller than the driver with both methods compiled in. Signed-off-by: Ben Dooks <ben@simtec.co.uk> Cc: <linux-mmc@vger.kernel.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* Merge branch 'master' into develRussell King2009-09-12
|\
| * ARM: S3C24XX: Fix clkout mpx errorDavide Rizzo2009-08-13
| | | | | | | | | | | | | | | | Bug correction: CLK Outputs cannot have XTAL as parent Signed-off-by: Davide Rizzo <elpa.rizzo@gmail.com> [ben-linux@fluff.org: updated patch subject] Signed-off-by: Ben Dooks <ben-linux@fluff.org>
| * ARM: S3C: PWM fix for low duty cyclePeter Korsgaard2009-07-30
| | | | | | | | | | | | | | | | | | | | | | The pwm hardware only checks the compare register after a decrement, so the pin never toggles if tcmp = tcnt. This happens when a very low duty cycle is requested. Fix it by always ensuring that tcmp < tcnt. Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk> Signed-off-by: Ben Dooks <ben-linux@fluff.org>
* | ARM: S3C: Add S3C_DEV_NAND Kconfig entryBen Dooks2009-08-16
| | | | | | | | | | | | | | | | | | | | | | | | Currently the S5PC100 does not define S3C_PA_NAND, leaving the NAND device definitions in arch/arm/plat-s3c/dev-nand.c unbuildable. Add a KConfig entry to select whether this is built. As backwards compatibility, both the S3C24XX and S3C64XX define the new configuration in their main Kconfig files until better support for basing this selection on a per-machine basis can be sorted out. Signed-off-by: Ben Dooks <ben-linux@fluff.org>
* | Merge branch 'next-s3c64xx-moves' into next-s3cBen Dooks2009-08-14
|\ \
| * | ARM: S3C: move timer/pwm handling from plat-s3c24xx to plat-s3cPeter Korsgaard2009-07-30
| | | | | | | | | | | | | | | | | | | | | | | | The s3c64xx devices use the same hardware core as s3c24xx, so move the timer/pwm handling to plat-s3c so it can be used by both. Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk> Signed-off-by: Ben Dooks <ben-linux@fluff.org>
| * | ARM: S3C: move s3c_device_nand from plat-s3c24xx to plat-s3cPeter Korsgaard2009-07-30
| |/ | | | | | | | | | | | | | | Move the s3c_device_nand platform device from plat-s3c24xx to plat-s3c, now that the nand driver also support the s3c64xx devices. Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk> Signed-off-by: Ben Dooks <ben-linux@fluff.org>
* | Merge branch 'next-s3c24xx-cpufreq' into next-s3cBen Dooks2009-08-14
|\ \