summaryrefslogtreecommitdiff
path: root/arch/avr32
AgeCommit message (Collapse)Author
2007-10-11[AVR32] Fix random segfault with preemptionPhilippe Rétornaz
As explained on: http://www.avrfreaks.net/index.php?nameÿphpBB2&fileÿewtopic&tS307 If the current process is preempted before it can copy RAR_SUP and RSR_SUP both register are lost and the process will segfault as soon as it return from the syscall since the return adress will be corrupted. This patch disable IRQ as soon as we enter the syscall path and reenable them when the copy is done. In the interrupt handlers, check if we are interrupting the srrf instruction, if so disable interrupts and return. The interrupt handler will be re-called immediatly when the interrupts are reenabled. After some stressing workload: - find / > /dev/null in loop - top (in ssh) - ping -f avr32 The segfaults are not seen anymore. Signed-off-by: Philippe Rétornaz <philippe.retornaz@epfl.ch> Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>
2007-10-11[AVR32] ngw100 i2c-gpio tweaksDavid Brownell
Make the NGW100 bitbang i2c use open drain signaling. Also, speed it up, so it's closer to 100 kHz ... the code paths seem to be long enough that the udelay isn't dominating bit times. The peak bit rate I observed was around 125 kHz, but that's with large delays (usually before ACK/NAK) which hold the overall rate down to around 80 kHz (call it 100 usec/byte on average). Signed-off-by: David Brownell <dbrownell@users.sourceforge.net> Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>
2007-10-11[AVR32] SMC configuration in clock cyclesKristoffer Nyborg Gregertsen
This patch makes the SMC configuration take timings in clock cycles instead of nanoseconds. A function to calculate timings in clock cycles is added. This patch removes the rounding troubles of the previous SMC configuration method. [hskinnemoen@atmel.com: fix atstk1002/atngw100 flash config] Signed-off-by: Kristoffer Nyborg Gregertsen <gregerts@stud.ntnu.no> Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>
2007-10-11[AVR32] Drop support for redundant "keepinitrd" boot-time parm.Robert P. J. Day
Given the existing "retain_initrd" boot-time parameter defined in init/initramfs.c, there appears to be no need for the equivalent "keepinitrd" parameter. Signed-off-by: Robert P. J. Day <rpjday@mindspring.com> Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>
2007-10-11[AVR32] Remove unneeded 8K alignment of .text sectionHaavard Skinnemoen
__init_end, which comes immediately before .text, is already page aligned, and that should be more than enough for the .text section. The reason why we need to align the .text section is because the interrupt handler offset is ORed with EVBA, so we need to provide enough alignment of EVBA that this OR operation works as an ADD. Currently, the last interrupt handler is not nearly a full page away from EVBA, so it won't be a problem. Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>
2007-10-11[AVR32] Kill a few hardcoded constants in vmlinux.ldsHaavard Skinnemoen
Use PAGE_SIZE, THREAD_SIZE and L1_CACHE_BYTES instead of harcoded constants in places where that's what we really mean. Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>
2007-10-11[AVR32] rename vmlinux.ldsSam Ravnborg
Rename vmlinux.lds to a .S file to match other architectures. Simplify Makefile to match the rename and deleted the unused USE_STANDARD_AS_RULE Signed-off-by: Sam Ravnborg <sam@ravnborg.org> Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>
2007-10-11[AVR32] fix command line parsing in early_parse_fbmemMatteo Vit
Signed-off-by: Matteo Vit - Dave S.r.l. <matteo.vit@dave.eu> Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>
2007-10-11[AVR32] Wire up USBA deviceHaavard Skinnemoen
Implement at32_add_device_usba() and use it to wire up the USBA device on ATSTK1000 and ATNGW100. Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>
2007-10-11[AVR32] add multidrive support for pio driverMatteo Vit
This patch add multidrive support for pio driver Signed-off-by: Matteo Vit - Dave S.r.l. <matteo.vit@dave.eu> Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>
2007-10-11[AVR32] /sys/kernel/debug/at32ap_clkDavid Brownell
When debugfs is available, /sys/kernel/debug/at32ap_clk will provide a dump of the power manager registers and of the current clock tree. This can help sorting out various surprises, and when making runtime PM work. Signed-off-by: David Brownell <dbrownell@users.sourceforge.net> Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>
2007-10-11[AVR32] Move AT32_PM_BASE definition into pm.hHaavard Skinnemoen
We don't want to redefine this in every file that needs to access the PM. Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>
2007-08-15[AVR32] Wire up i2c-gpio on the ATNGW100 boardHaavard Skinnemoen
The NGW100 has a board controller which is hooked up to the TWI lines on AP7000. Since the TWI driver isn't in mainline, use the i2c-gpio driver in the mean time. Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>
2007-08-15[AVR32] leds-gpio for stk1000David Brownell
Add GPIO led support: J2 to either block of LEDs on the STK1000. This uses the new LEDS_GPIO driver, and sets up a heartbeat trigger by default ... either bright (!!) amber, or a more interesting purple. Signed-off-by: David Brownell <dbrownell@users.sourceforge.net> Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>
2007-07-22Merge branch 'for-linus' of git://git.o-hand.com/linux-rpurdie-ledsLinus Torvalds
* 'for-linus' of git://git.o-hand.com/linux-rpurdie-leds: leds: Convert from struct class_device to struct device leds: leds-gpio for ngw100 leds: Add warning printks in error paths leds: Fix trigger unregister_simple if register_simple fails leds: Use menuconfig objects II - LED leds: Teach leds-gpio to handle timer-unsafe GPIOs leds: Add generic GPIO LED driver
2007-07-19mm: fault feedback #2Nick Piggin
This patch completes Linus's wish that the fault return codes be made into bit flags, which I agree makes everything nicer. This requires requires all handle_mm_fault callers to be modified (possibly the modifications should go further and do things like fault accounting in handle_mm_fault -- however that would be for another patch). [akpm@linux-foundation.org: fix alpha build] [akpm@linux-foundation.org: fix s390 build] [akpm@linux-foundation.org: fix sparc build] [akpm@linux-foundation.org: fix sparc64 build] [akpm@linux-foundation.org: fix ia64 build] Signed-off-by: Nick Piggin <npiggin@suse.de> Cc: Richard Henderson <rth@twiddle.net> Cc: Ivan Kokshaysky <ink@jurassic.park.msu.ru> Cc: Russell King <rmk@arm.linux.org.uk> Cc: Ian Molton <spyro@f2s.com> Cc: Bryan Wu <bryan.wu@analog.com> Cc: Mikael Starvik <starvik@axis.com> Cc: David Howells <dhowells@redhat.com> Cc: Yoshinori Sato <ysato@users.sourceforge.jp> Cc: "Luck, Tony" <tony.luck@intel.com> Cc: Hirokazu Takata <takata@linux-m32r.org> Cc: Geert Uytterhoeven <geert@linux-m68k.org> Cc: Roman Zippel <zippel@linux-m68k.org> Cc: Greg Ungerer <gerg@uclinux.org> Cc: Matthew Wilcox <willy@debian.org> Cc: Paul Mackerras <paulus@samba.org> Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org> Cc: Heiko Carstens <heiko.carstens@de.ibm.com> Cc: Martin Schwidefsky <schwidefsky@de.ibm.com> Cc: Paul Mundt <lethal@linux-sh.org> Cc: Kazumoto Kojima <kkojima@rr.iij4u.or.jp> Cc: Richard Curnow <rc@rc0.org.uk> Cc: William Lee Irwin III <wli@holomorphy.com> Cc: "David S. Miller" <davem@davemloft.net> Cc: Jeff Dike <jdike@addtoit.com> Cc: Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it> Cc: Miles Bader <uclinux-v850@lsi.nec.co.jp> Cc: Chris Zankel <chris@zankel.net> Acked-by: Kyle McMartin <kyle@mcmartin.ca> Acked-by: Haavard Skinnemoen <hskinnemoen@atmel.com> Acked-by: Ralf Baechle <ralf@linux-mips.org> Acked-by: Andi Kleen <ak@muc.de> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> [ Still apparently needs some ARM and PPC loving - Linus ] Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-07-18[AVR32] Initialize phy_mask for both macb devicesHaavard Skinnemoen
The STK1000 uses pullups on the MDIO lines to the PHY, but they are too weak. This causes the PHY layer to detect PHYs on all possible MII addresses. Mask out all but the correct address to prevent this from happening. Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>
2007-07-18[AVR32] Correct misspelled CONFIG_BLK_DEV_INITRD variable.Robert P. J. Day
Signed-off-by: Robert P. J. Day <rpjday@mindspring.com> Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>
2007-07-18[AVR32] Fix build error in parse_tag_rdimg()Haavard Skinnemoen
This code is inside an #ifdef with a misspelled config symbol, so it hasn't been used for a long time. Fix it before fixing the config symbol to keep bisection working. Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>
2007-07-18[AVR32] Don't wire up macb0 unless SW6 is in default positionKristoffer Nyborg Gregertsen
If the user wants to sacrifice macb0 for more GPIOs, let him. Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>
2007-07-18[AVR32] Wire up SSC platform device 0 as TX on ATSTK1000 boardHans-Christian Egtvedt
Signed-off-by: Hans-Christian Egtvedt <hcegtvedt@atmel.com> Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>
2007-07-18[AVR32] Add Atmel SSC driver platform device to AT32AP architectureHans-Christian Egtvedt
This patch adds register definitions, clocks and IRQs to the platform devices. Signed-off-by: Hans-Christian Egtvedt <hcegtvedt@atmel.com> Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>
2007-07-18[AVR32] Make STK1000 mux settings configurableDavid Brownell
This adds some STK1002-specific config options covering the jumper settings, so the kernel can automatically be configured to include the relevant devices. One of them replaces the previous internal SW2_DEFAULT setting; SPI config is affected by two of the jumpers; and a fourth one switches between LCD and the second Ethernet connector. (There's more that to be done.) Signed-off-by: David Brownell <dbrownell@users.sourceforge.net> Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>
2007-07-18[AVR32] CPU frequency scaling for AT32APHans-Christian Egtvedt
This patch enables CPU frequency scaling for AT32AP devices. This will enable the CPU to scale between the speed of the high speed bus and the master clock and thus save some power. The patch also adds a parent to cpu_clk and a cpu_clk_set_rate to enable changing the CPU clock divider in a sane way. The driver does not check if the given rate is 0, thus resulting in a div by 0. I think this check should be go into the clk_set_rate framework, and not here. Tested on AT32AP7000/ATSTK1000. Hardware documentation can be found in the AT32AP7000 datasheet. Signed-off-by: Hans-Christian Egtvedt <hcegtvedt@atmel.com> Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>
2007-07-18[AVR32] Split SM device into PM, RTC, WDT and EICHaavard Skinnemoen
Split the SM platform device into separate platform devices for PM, RTC, WDT and EIC. This is more correct according to the documentation and allows us to simplify the code a little. Also turn the EIC driver into a real platform driver. Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com> Acked-by: Hans-Christian Egtvedt <hcegtvedt@atmel.com>
2007-07-17PTRACE_POKEDATA consolidationAlexey Dobriyan
Identical implementations of PTRACE_POKEDATA go into generic_ptrace_pokedata() function. AFAICS, fix bug on xtensa where successful PTRACE_POKEDATA will nevertheless return EPERM. Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com> Cc: Christoph Hellwig <hch@lst.de> Cc: <linux-arch@vger.kernel.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-07-17PTRACE_PEEKDATA consolidationAlexey Dobriyan
Identical implementations of PTRACE_PEEKDATA go into generic_ptrace_peekdata() function. Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com> Cc: Christoph Hellwig <hch@lst.de> Cc: <linux-arch@vger.kernel.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-07-17Report that kernel is tainted if there was an OOPSPavel Emelianov
If the kernel OOPSed or BUGed then it probably should be considered as tainted. Thus, all subsequent OOPSes and SysRq dumps will report the tainted kernel. This saves a lot of time explaining oddities in the calltraces. Signed-off-by: Pavel Emelianov <xemul@openvz.org> Acked-by: Randy Dunlap <randy.dunlap@oracle.com> Cc: <linux-arch@vger.kernel.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> [ Added parisc patch from Matthew Wilson -Linus ] Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-07-16generic bug: use show_regs() instead of dump_stack()Heiko Carstens
The current generic bug implementation has a call to dump_stack() in case a WARN_ON(whatever) gets hit. Since report_bug(), which calls dump_stack(), gets called from an exception handler we can do better: just pass the pt_regs structure to report_bug() and pass it to show_regs() in case of a warning. This will give more debug informations like register contents, etc... In addition this avoids some pointless lines that dump_stack() emits, since it includes a stack backtrace of the exception handler which is of no interest in case of a warning. E.g. on s390 the following lines are currently always present in a stack backtrace if dump_stack() gets called from report_bug(): [<000000000001517a>] show_trace+0x92/0xe8) [<0000000000015270>] show_stack+0xa0/0xd0 [<00000000000152ce>] dump_stack+0x2e/0x3c [<0000000000195450>] report_bug+0x98/0xf8 [<0000000000016cc8>] illegal_op+0x1fc/0x21c [<00000000000227d6>] sysc_return+0x0/0x10 Acked-by: Jeremy Fitzhardinge <jeremy@goop.org> Acked-by: Haavard Skinnemoen <hskinnemoen@atmel.com> Cc: Andi Kleen <ak@suse.de> Cc: Kyle McMartin <kyle@parisc-linux.org> Cc: Paul Mackerras <paulus@samba.org> Cc: Paul Mundt <lethal@linux-sh.org> Cc: Martin Schwidefsky <schwidefsky@de.ibm.com> Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-07-16leds: leds-gpio for ngw100David Brownell
Add GPIO leds to the NGW100 platform and its defconfig. Access through /sys/class/leds/{a,b,sys}/* files; one defaults to a heartbeat. Signed-off-by: David Brownell <dbrownell@users.sourceforge.net> Signed-off-by: Richard Purdie <rpurdie@rpsys.net>
2007-06-23[AVR32] Update defconfigsHaavard Skinnemoen
Update defconfigs for ATNGW100 and ATSTK1002. This will enable the SLUB allocator by default on both, and will enable NFS root on ATSTK1002 (ATNGW100 had it enabled before.) Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>
2007-06-23[AVR32] Initialize dma_mask and dma_coherent_maskDavid Brownell
The current at32ap7000 platform devices aren't declared as supporting DMA, so that layered drivers can't tell whether they need to manage DMA. This patch makes all those platform devices report that they support DMA. Most do, but in a few cases this is inappropriate. Signed-off-by: David Brownell <dbrownell@users.sourceforge.net> Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>
2007-06-23[AVR32] NGW100, Remove relics of the old USART mapping schemeben.nizette@iinet.net.au
USART mapping used to be accomplished by the manual filling of at32_usart_map[] and at32_nr_usarts. This has now been replaced with at32_map_usart() so we can remove these variables. Signed-off-by: Ben Nizette <ben.nizette@iinet.net.au> Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>
2007-06-23[AVR32] Fix bug in invalidate_dcache_region()Haavard Skinnemoen
If (start + size) is not cacheline aligned and (start & mask) > (end & mask), the last but one cacheline won't be invalidated as it should. Fix this by rounding `end' down to the nearest cacheline boundary if it gets adjusted due to misalignment. Also flush the write buffer unconditionally -- if the dcache wrote back a line just before we invalidated it, the dirty data may be sitting in the write buffer waiting to corrupt our buffer later. Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>
2007-06-14[AVR32] STK1000: Set SPI_MODE_3 in the ltv350qv board infoHaavard Skinnemoen
In the latest incarnation of the ltv350qv driver the call to spi_setup() has been removed. So we need to initialize things more carefully in the board info struct. Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>
2007-06-14[AVR32] ratelimit segfault reporting rateAndrea Righi
Limit the rate of the kernel logging for the segfaults of user applications, to avoid potential message floods or denial-of-service attacks. Signed-off-by: Andrea Righi <a.righi@cineca.it> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>
2007-05-19all-archs: consolidate .data section definition in asm-genericSam Ravnborg
With this consolidation we can now modify the .data section definition in one spot for all archs. Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
2007-05-19all-archs: consolidate .text section definition in asm-genericSam Ravnborg
Move definition of .text section to asm-generic. Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
2007-05-15[AVR32] Implement platform hooks for atmel_lcdfb driverHaavard Skinnemoen
This modifies and extends the existing lcdc platform code to support the new atmel_lcdfb driver. The ATSTK1000 board code is set up to use the on-board Samsung LTV350QV LCD panel. Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>
2007-05-13[AVR32] Wire up signalfd, timerfd and eventfdHaavard Skinnemoen
Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>
2007-05-13[AVR32] optimize pagefault pathChristoph Hellwig
Avoid the costly notifier list in the pagefault path and call the kprobes code directly. The same change went into the 2.6.22 cycle for powerpc, 2s390 and sparc64 already. Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>
2007-05-13[AVR32] Remove bogus comment in arch/avr32/kernel/irq.cHaavard Skinnemoen
The comment at the top of arch/avr32/kernel/irq.c doesn't really make sense anymore since most of the actual interrupt handling code is elsewhere. Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>
2007-05-09Merge branch 'for-linus' of git://www.atmel.no/~hskinnemoen/linux/kernel/avr32Linus Torvalds
* 'for-linus' of git://www.atmel.no/~hskinnemoen/linux/kernel/avr32: [AVR32] Wire up sys_utimensat [AVR32] Fix section mismatch .taglist -> .init.text [AVR32] Implement dma_{alloc,free}_writecombine() AVR32: Spinlock initializer cleanup [AVR32] Use correct config symbol when setting cpuflags
2007-05-09wrap access to thread_infoRoman Zippel
Recently a few direct accesses to the thread_info in the task structure snuck back, so this wraps them with the appropriate wrapper. Signed-off-by: Roman Zippel <zippel@linux-m68k.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-05-09[AVR32] Wire up sys_utimensatHaavard Skinnemoen
Tested with a slightly hacked version of the test case included with the original utimensat patch. All OK. Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>
2007-05-09[AVR32] Fix section mismatch .taglist -> .init.textHaavard Skinnemoen
Rename .taglist to .taglist.init to silence section mismatch warnings. The .taglist.init section was already placed in the .init output section along with .init.text, so the warning didn't indicate any real problems. Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>
2007-05-09[AVR32] Implement dma_{alloc,free}_writecombine()Haavard Skinnemoen
Implement dma_alloc_writecombine() and its dma_free_writecombine() counterpart. These will do basically the same thing as dma_alloc_coherent() except that the virtual mapping will allow write buffering, causing better performance for certain use cases like frame buffers. The same API is already available on ARM. Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>
2007-05-09AVR32: Spinlock initializer cleanupThomas Gleixner
Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>
2007-05-09[AVR32] Use correct config symbol when setting cpuflagsHaavard Skinnemoen
As Robert P. J. Day pointed out, the CONFIG_CPU_AT32AP7000 symbol wasn't used for anything. It should have been used to select the correct -mcpu= options for CFLAGS. -mcpu=ap7000 is the default anyway, so this patch shouldn't really make any difference, but it's always nice to do things correctly. Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>
2007-05-08header cleaning: don't include smp_lock.h when not usedRandy Dunlap
Remove includes of <linux/smp_lock.h> where it is not used/needed. Suggested by Al Viro. Builds cleanly on x86_64, i386, alpha, ia64, powerpc, sparc, sparc64, and arm (all 59 defconfigs). Signed-off-by: Randy Dunlap <randy.dunlap@oracle.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>