summaryrefslogtreecommitdiffstats
path: root/arch/blackfin
Commit message (Collapse)AuthorAgeFilesLines
* Blackfin: bf538: pull gpio/port logic out of core hibernate pathsMike Frysinger2011-07-235-36/+65
| | | | | | | | Re-architect how we save/restore the gpio/port logic that only pertains to bf538/bf539 parts by pulling it out of the core code paths and pushing it out to bf538-specific locations. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
* Blackfin: dpmc: optimize hibernate/resume pathMike Frysinger2011-07-232-439/+572
| | | | | | | | | | | | | | | | | | | | The current save logic used in hibernation is to do a MMR load (base + offset) into a register, and then push that onto the stack. Then when restoring, pop off the stack into a register followed by a MMR store (base + offset). These use plenty of 32bit insns rather than 16bit, are pretty long winded, and full of pipeline bubbles. So, by taking advantage of MMRs that are contiguous, the multi-register push/pop insn, and register abuse, we can shrink this code considerably. When saving, the new logic does a lot of loads into the data and pointer registers before executing a single multi-register push insn. Then when restoring, we do a single multi-register pop insn followed by a lot of stores. Overall, this allows us to cut the insn count by ~30%, the code size by ~45%, and drastically reduce the register hazards that trigger bubbles in the pipeline. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
* Blackfin: dpmc: do not save/restore EVT0/EVT1/EVT4 when hibernatingMike Frysinger2011-07-231-6/+0
| | | | | | | | | | EVT0 is for emulation, EVT1 is for reset, and EVT4 is the "global int disable" region. None of these are used by software (or even hardware), so don't bother saving/restoring them when we hibernate since nothing ever uses these in Linux (the only thing they would be useful for is core-memory scratch, but that's just crazy talk). Signed-off-by: Mike Frysinger <vapier@gentoo.org>
* Blackfin: dpmc: relocate hibernate helper macrosMike Frysinger2011-07-232-26/+24
| | | | | | | This defines only get used in the hibernate code, so remove them from the global dpmc header as no one else cares. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
* Blackfin: dpmc: omit RETE/RETN when hibernatingMike Frysinger2011-07-231-4/+0
| | | | | | | | The RETE/RETN registers are only used in emulation(JTAG) and NMI nodes, or as scratch registers, neither of which need to be saved/restored as this code doesn't execute at those core event levels. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
* Blackfin: dpmc: optimize SIC_IWR programming a littleMike Frysinger2011-07-231-9/+6
| | | | | | | For parts with more than one SIC_IWR, we can optimize the writing a little bit using better Blackfin insns. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
* Blackfin: gpio/ints: generalize pint logicMike Frysinger2011-07-233-12/+19
| | | | | | | | Have the logic that uses peripheral interrupt blocks key off of pint defines rather than CPU names so that things are generalized across families. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
* Blackfin: dpmc: bind to MMR names and not CPUsMike Frysinger2011-07-231-4/+3
| | | | | | | Have the code work off of MMR names rather than CPU defines so there is less code to tweak in the future with new parts. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
* Blackfin: debug-mmrs: generalize pint logicMike Frysinger2011-07-231-19/+31
| | | | | | Don't bind the code to specific CPU defines. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
* Blackfin: bf54x: switch to common pint MMR structMike Frysinger2011-07-231-18/+5
| | | | | | | We have a struct in the headers describing the register layout, so drop the local duplicate one. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
* Blackfin: bf54x: tweak MMR pint namesMike Frysinger2011-07-232-2/+2
| | | | | | | The hardware block uses the name "request" rather than "irq", so update the struct accordingly. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
* Blackfin: bf54x: constify pint register arrayMike Frysinger2011-07-231-1/+1
| | | | | | The array of pointers to register blocks never changes, so constify it. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
* Blackfin: gpio: punt unused GPIO_# definesMike Frysinger2011-07-232-52/+3
| | | | | | | | These defines don't accomplish much as GPIO_# is the same thing as #. Each CPU already provides helpful symbolic defines like GPIO_<PIN> which everyone uses, so just punt these # ones. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
* Blackfin: convert unicode space gremlinsMike Frysinger2011-07-237-27/+27
| | | | | | | | Not sure how these guys slipped in, but they're annoying me. So bring these unicode space gremlins down to earth to normal ascii spaces. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
* Blackfin: pwm: implement linux/pwm.h APIMike Frysinger2011-07-233-0/+111
| | | | | | | | For now, this only supports gptimers. Support for dedicated PWM devices as found on newer parts to come. Signed-off-by: Michael Hennerich <michael.hennerich@analog.com> Signed-off-by: Mike Frysinger <vapier@gentoo.org>
* Blackfin: gptimers: add enable/disable by timer idMike Frysinger2011-07-231-0/+10
| | | | | | | The API is geared around timer ids, except for the act of enabling and disabling timers. So add a small helper to fill out the gap. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
* Blackfin: make sure percpu section is aligned in XIP buildsSteven Miao2011-07-231-0/+1
| | | | | | | | The alignment is normally handled by PERCPU(), but we need to do it ourselves in the XIP build due to the custom layout. Signed-off-by: Steven Miao <realmz6@gmail.com> Signed-off-by: Mike Frysinger <vapier@gentoo.org>
* Blackfin: gptimers: use bfin read/write helpersMike Frysinger2011-07-231-20/+25
| | | | | | | Use proper helper macros for reading/writing the MMRs rather than volatile markings on the struct. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
* Blackfin: gptimers: use register structs from common headerMike Frysinger2011-07-231-32/+16
| | | | | | | Now that asm/gptimers.h has the hardware register struct layout, there's no need to duplicate things locally. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
* Blackfin: debug-mmrs: use new gptimer_group layout to simplify codeMike Frysinger2011-07-231-18/+34
| | | | Signed-off-by: Mike Frysinger <vapier@gentoo.org>
* Blackfin: debug-mmrs: prevent macro arg from expandingMike Frysinger2011-07-231-1/+1
| | | | | | | Passing a non-simple expression in as the addr arg could incorrectly apply the pointer cast resulting in misbehavior. Add proper paren. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
* Blackfin: gptimers: add group structure for hardware register layoutMike Frysinger2011-07-231-0/+9
| | | | Signed-off-by: Mike Frysinger <vapier@gentoo.org>
* Blackfin: exec: remove redundant set_fs(USER_DS)Mathias Krause2011-07-231-1/+0
| | | | | | | | The address limit is already set in flush_old_exec() so this set_fs(USER_DS) is redundant. Signed-off-by: Mathias Krause <minipli@googlemail.com> Signed-off-by: Mike Frysinger <vapier@gentoo.org>
* Blackfin: update anomaly lists to latest public infoMike Frysinger2011-07-237-211/+290
| | | | Signed-off-by: Mike Frysinger <vapier@gentoo.org>
* Blackfin: bf561-ezkit: change parallel flash from M to Y in defconfigMike Frysinger2011-07-231-4/+4
| | | | | | | These flashes are always on the board, so might as well enable them by default rather than a module. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
* Blackfin: debug-mmrs: disable PERIPHERAL_MAP for IMDMA channelsMike Frysinger2011-07-231-1/+2
| | | | | | | | The documentation for the IMDMA channels appears to be incorrect. These DMA blocks don't actually have PERIPHERAL_MAP MMRs for us to access. Attempts to do so lead to system mmr hardware errors. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
* Blackfin: debug-mmrs: fix typo in single dmac setupMike Frysinger2011-07-231-1/+1
| | | | Signed-off-by: Mike Frysinger <vapier@gentoo.org>
* Blackfin: convert to asm-generic/mutex-dec.h for all systemsMike Frysinger2011-07-231-76/+1
| | | | | | | The Blackfin mutex.h is merely a copy of an older asm-generic/mutex-dec.h, so punt it and just use the common one directly. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
* Blackfin: optimize double fault boot checkingMike Frysinger2011-07-236-63/+62
| | | | | | | | This moves the double fault data used at boot time into a single struct which can then easily be addressed with indexed loads rather than having to explicitly load multiple addresses. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
* Blackfin: time: replace magic numbers with definesMike Frysinger2011-07-231-2/+2
| | | | Signed-off-by: Mike Frysinger <vapier@gentoo.org>
* Blackfin: SMP: optimize start up code a bitMike Frysinger2011-07-231-78/+54
| | | | | | | This just imports all of the optimization work done in the common startup code. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
* Blackfin: boards: clean up redundant/dead spi resourcesMike Frysinger2011-07-2326-896/+0
| | | | | | | | | | | | The default for the Blackfin SPI driver is 8 bits and dma disabled, so many of the bfin5xx_spi_chip resources are redundant. So punt those parts. Further, drivers should themselves be declaring 16 bit transfers, so for those that do, and for the ones which no longer do 16 bit transfers, drop the bfin5xx_spi_chip resources. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
* Blackfin: net2272: move pin setup to boards filesMike Frysinger2011-07-238-0/+192
| | | | Signed-off-by: Mike Frysinger <vapier@gentoo.org>
* Blackfin: convert to kbuild asm-generic supportMike Frysinger2011-07-2343-47/+43
| | | | | | No need for one line header stubs. Just declare it in Kbuild. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
* rtc: fix build warnings in defconfigsWanlong Gao2011-06-151-1/+1
| | | | | | | | | | | | | RTC_CLASS is changed to bool, so 'm' is invalid. Signed-off-by: Wanlong Gao <wanlong.gao@gmail.com> Acked-by: Mike Frysinger <vapier@gentoo.org> Acked-by: Wolfram Sang <w.sang@pengutronix.de> Acked-by: Hans-Christian Egtvedt <hans-christian.egtvedt@atmel.com> Acked-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> Cc: Guan Xuetao <gxt@mprc.pku.edu.cn> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* Blackfin: strncpy: fix handling of zero lengthsSteven Miao2011-06-031-1/+1
| | | | | | | | | The jump to 4f will cause the NUL padding loop to run at least one time, so if string length is zero just jump to the end. Otherwise we wrongly write one NUL byte when size==0. Signed-off-by: Steven Miao <realmz6@gmail.com> Signed-off-by: Mike Frysinger <vapier@gentoo.org>
* Blackfin: debug-mmrs: include RSI_PID[4567] MMRsMike Frysinger2011-05-281-0/+4
| | | | | | | | The documentation is a little iffy as to whether these are actual MMRs, but reading them on the hardware works, and the previous version of this logic (the SDH) had PID[4567]. So add it for RSI too. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
* Blackfin: bf51x: fix up RSI_PID# MMR definesMike Frysinger2011-05-281-8/+8
| | | | | | | | Looks like the copying of MMR defines from the SDH block missed updating the addresses of the RSI_PID# registers. So tweak them to reflect the actual hardware. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
* Blackfin: bf52x/bf54x: fix up usb MMR definesMike Frysinger2011-05-282-11/+12
| | | | | | | | | | The bf52x/bf54x have the incorrect addresses for USB_EP_NI7_RXINTERVAL and USB_EP_NI7_TXCOUNT, so adjust those. Further, the bf54x header puts the USB defines in the wrong place, so shuffle them back to the right grouping. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
* Blackfin: debug-mmrs: fix typos with gptimers/mdma/ppiMike Frysinger2011-05-281-18/+14
| | | | | | | | | | | | | | | | This code was mostly developed against a BF54x, so some BF537-specific issues were missed. The PPI block starts at PPI_CONTROL, not PPI_STATUS (which is the reverse of the EPPI block). The MDMA block starts at MDMA_NEXT_DESC_PTR, not MDMA_CONFIG. Seems the sim does not catch misreads here so that'll need to get fixed. The gptimer block is mostly 32bit regs, not 16bit. Use the gptimer struct to figure that out rather than hardcoding it locally. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
* Blackfin: gptimers: add structure for hardware register layoutMike Frysinger2011-05-281-0/+18
| | | | Signed-off-by: Mike Frysinger <vapier@gentoo.org>
* Blackfin: wire up new sendmmsg syscallMike Frysinger2011-05-282-1/+3
| | | | Signed-off-by: Mike Frysinger <vapier@gentoo.org>
* Blackfin: mach/bfin_serial_5xx.h: punt now-unused headerMike Frysinger2011-05-287-528/+0
| | | | | | | | Now that the serial code has been unified in bfin_serial.h, and the Blackfin UART driver pushed its resources to the boards files, we don't need these headers anymore. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
* Blackfin: bfin_serial.h: turn default port wrappers into stubsMike Frysinger2011-05-281-3/+3
| | | | | | | Any consumer that needs to access the MMRs has to provide these helpers, so make the default into useless stubs. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
* Merge branch 'perf-urgent-for-linus' of ↵Linus Torvalds2011-05-281-2/+2
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip * 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (25 commits) perf: Fix SIGIO handling perf top: Don't stop if no kernel symtab is found perf top: Handle kptr_restrict perf top: Remove unused macro perf events: initialize fd array to -1 instead of 0 perf tools: Make sure kptr_restrict warnings fit 80 col terms perf tools: Fix build on older systems perf symbols: Handle /proc/sys/kernel/kptr_restrict perf: Remove duplicate headers ftrace: Add internal recursive checks tracing: Update btrfs's tracepoints to use u64 interface tracing: Add __print_symbolic_u64 to avoid warnings on 32bit machine ftrace: Set ops->flag to enabled even on static function tracing tracing: Have event with function tracer check error return ftrace: Have ftrace_startup() return failure code jump_label: Check entries limit in __jump_label_update ftrace/recordmcount: Avoid STT_FUNC symbols as base on ARM scripts/tags.sh: Add magic for trace-events for etags too scripts/tags.sh: Fix ctags for DEFINE_EVENT() x86/ftrace: Fix compiler warning in ftrace.c ...
| * Merge branch 'tip/perf/urgent' of ↵Ingo Molnar2011-05-271-2/+2
| |\ | | | | | | | | | git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-2.6-trace into perf/urgent
| | * maccess,probe_kernel: Make write/read src const void *Steven Rostedt2011-05-251-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The functions probe_kernel_write() and probe_kernel_read() do not modify the src pointer. Allow const pointers to be passed in without the need of a typecast. Acked-by: Mike Frysinger <vapier@gentoo.org> Acked-by: Heiko Carstens <heiko.carstens@de.ibm.com> Acked-by: Martin Schwidefsky <schwidefsky@de.ibm.com> Signed-off-by: Steven Rostedt <rostedt@goodmis.org> Link: http://lkml.kernel.org/r/1305824936.1465.4.camel@gandalf.stny.rr.com
* | | Merge branch 'setns'Linus Torvalds2011-05-282-1/+3
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | * setns: ns: Wire up the setns system call Done as a merge to make it easier to fix up conflicts in arm due to addition of sendmmsg system call
| * | | ns: Wire up the setns system callEric W. Biederman2011-05-282-1/+3
| |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 32bit and 64bit on x86 are tested and working. The rest I have looked at closely and I can't find any problems. setns is an easy system call to wire up. It just takes two ints so I don't expect any weird architecture porting problems. While doing this I have noticed that we have some architectures that are very slow to get new system calls. cris seems to be the slowest where the last system calls wired up were preadv and pwritev. avr32 is weird in that recvmmsg was wired up but never declared in unistd.h. frv is behind with perf_event_open being the last syscall wired up. On h8300 the last system call wired up was epoll_wait. On m32r the last system call wired up was fallocate. mn10300 has recvmmsg as the last system call wired up. The rest seem to at least have syncfs wired up which was new in the 2.6.39. v2: Most of the architecture support added by Daniel Lezcano <dlezcano@fr.ibm.com> v3: ported to v2.6.36-rc4 by: Eric W. Biederman <ebiederm@xmission.com> v4: Moved wiring up of the system call to another patch v5: ported to v2.6.39-rc6 v6: rebased onto parisc-next and net-next to avoid syscall conflicts. v7: ported to Linus's latest post 2.6.39 tree. >  arch/blackfin/include/asm/unistd.h     |    3 ++- >  arch/blackfin/mach-common/entry.S      |    1 + Acked-by: Mike Frysinger <vapier@gentoo.org> Oh - ia64 wiring looks good. Acked-by: Tony Luck <tony.luck@intel.com> Signed-off-by: Eric W. Biederman <ebiederm@xmission.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* | | Merge git://git.infradead.org/mtd-2.6Linus Torvalds2011-05-272-8/+0
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * git://git.infradead.org/mtd-2.6: (97 commits) mtd: kill CONFIG_MTD_PARTITIONS mtd: remove add_mtd_partitions, add_mtd_device and friends mtd: convert remaining users to mtd_device_register() mtd: samsung onenand: convert to mtd_device_register() mtd: omap2 onenand: convert to mtd_device_register() mtd: txx9ndfmc: convert to mtd_device_register() mtd: tmio_nand: convert to mtd_device_register() mtd: socrates_nand: convert to mtd_device_register() mtd: sharpsl: convert to mtd_device_register() mtd: s3c2410 nand: convert to mtd_device_register() mtd: ppchameleonevb: convert to mtd_device_register() mtd: orion_nand: convert to mtd_device_register() mtd: omap2: convert to mtd_device_register() mtd: nomadik_nand: convert to mtd_device_register() mtd: ndfc: convert to mtd_device_register() mtd: mxc_nand: convert to mtd_device_register() mtd: mpc5121_nfc: convert to mtd_device_register() mtd: jz4740_nand: convert to mtd_device_register() mtd: h1910: convert to mtd_device_register() mtd: fsmc_nand: convert to mtd_device_register() ... Fixed up trivial conflicts in - drivers/mtd/maps/integrator-flash.c: removed in ARM tree - drivers/mtd/maps/physmap.c: addition of afs partition probe type clashing with removal of CONFIG_MTD_PARTITIONS
OpenPOWER on IntegriCloud