summaryrefslogtreecommitdiffstats
path: root/arch/arm
AgeCommit message (Collapse)Author
2013-04-09Merge tag 'bcm2835-for-3.10-multiplatform' of ↵Arnd Bergmann
git://git.kernel.org/pub/scm/linux/kernel/git/swarren/linux-rpi into next/multiplatform From Stephen Warren <swarren@wwwdotorg.org>: ARM: bcm2835: convert to multi-platform This branch (patch) converts BCM2835 to support being built into a multi-platform single zImage. This mostly entails a few small Kconfig tweaks, move the earlyprintk implementation to the standard multi- platform location, and deleting some unnecessary files. * tag 'bcm2835-for-3.10-multiplatform' of git://git.kernel.org/pub/scm/linux/kernel/git/swarren/linux-rpi: ARM: bcm2835: convert to multi-platform Conflicts: arch/arm/Kconfig arch/arm/Kconfig.debug Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2013-04-02arm: vt8500: Add wm8850 config options to multi_v7_defconfigTony Prisk
This patch finally adds the WM8850 SoC to the multi_v7_defconfig. We don't have a seperate defconfig for this SoC as it is only available as a multiplatform option. Signed-off-by: Tony Prisk <linux@prisktech.co.nz> Signed-off-by: Olof Johansson <olof@lixom.net>
2013-03-28Merge branch 'prima2/multiplatform' into next/multiplatformArnd Bergmann
This series enables multiplatform support on the SIRF prima2/marco/atlas6 platform. The code was already quite tidy, so this is a relatively simple change, and it follows similar changes we made to other ARMv7 based platforms recently. * prima2/multiplatform: ARM: sirf: enable support in multi_v7_defconfig ARM: sirf: enable multiplatform support ARM: sirf: use clocksource_of infrastructure ARM: sirf: move debug-macro.S to include/debug/sirf.S ARM: sirf: enable sparse IRQ ARM: sirf: move irq driver to drivers/irqchip ARM: sirf: fix prima2 interrupt lookup pinctrl: sirf: convert to linear irq domain clocksource: make CLOCKSOURCE_OF_DECLARE type safe ARM/dts: prima2: add .dtsi for atlas6 and .dts for atla6-evb board arm: prima2: add new SiRFatlas6 machine in common board ARM: smp_twd: convert to use CLKSRC_OF init clocksource: tegra20: use the device_node pointer passed to init clocksource: pass DT node pointer to init functions clocksource: add empty version of clocksource_of_init Conflicts: arch/arm/configs/multi_v7_defconfig arch/arm/mach-spear/spear13xx.c Tested-by: Barry Song <Barry.Song@csr.com> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2013-03-25ARM: sirf: enable support in multi_v7_defconfigArnd Bergmann
This enables all sirf specific drivers in the defconfig. Signed-off-by: Arnd Bergmann <arnd@arndb.de> Reviewed-by: Barry Song <Baohua.Song@csr.com>
2013-03-25ARM: sirf: enable multiplatform supportArnd Bergmann
All the prerequisites are there now, so we can move sirf into multiplatform. Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2013-03-25ARM: sirf: use clocksource_of infrastructureArnd Bergmann
This moves the two sirf clocksource drivers to drivers/clocksource and integrates them into the framework for locating the clock sources automatically. Signed-off-by: Arnd Bergmann <arnd@arndb.de> Tested-by: Barry Song <Baohua.Song@csr.com> Cc: John Stultz <john.stultz@linaro.org> Cc: Thomas Gleixner <tglx@linutronix.de>
2013-03-25ARM: sirf: move debug-macro.S to include/debug/sirf.SArnd Bergmann
The new style ll_debug implementation for multiplatform requires the platform glue to be in include/debug, so let's move it there to separate the debugging logic from the platform code. Signed-off-by: Arnd Bergmann <arnd@arndb.de> Tested-by: Barry Song <Baohua.Song@csr.com>
2013-03-25ARM: sirf: enable sparse IRQArnd Bergmann
Now that both irqchips for sirf are converted to not rely on legacy domains, let's move all of the platform over to sparse IRQ. Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2013-03-25ARM: sirf: move irq driver to drivers/irqchipArnd Bergmann
This updates the irqchip drier for prima2 to the current practices by moving it into drivers/irqchip and integrating it into the irqchip_init infrastructure. We also now use a linear irq domain as a preparation for sparse IRQ suport. Signed-off-by: Arnd Bergmann <arnd@arndb.de> Cc: Thomas Gleixner <tglx@linutronix.de>
2013-03-25ARM: sirf: fix prima2 interrupt lookupArnd Bergmann
We must not read the interrupts property manually but instead use irq_of_parse_and_map() to guarantee that we get the correct interrupt number once we stop using the legacy IRQ domain. Signed-off-by: Arnd Bergmann <arnd@arndb.de> Tested-by: Barry Song <Baohua.Song@csr.com>
2013-03-19Merge branches 'prima2/soc' and 'clksrc/cleanup' into prima2/multiplatformArnd Bergmann
2013-03-19ARM: spear: build hotplug.o for armv7-aArnd Bergmann
The hotplug.c file uses assembly instructions that are only available on ARMv7 but not on ARMv6. This is ok because we know that code will only run on arm ARMv7 SPEARr13xx, but it produces build errors when we also enable one of the ARMv6 targets in a multiplatform configuration. Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2013-03-19ARM: nomadik: hide MACH_NOMADIK_8815NHK in KconfigArnd Bergmann
The nomadik multiplatform support made it possible to select MACH_NOMADIK_8815NHK without selecting ARCH_NOMADIK, which leads to build errors when we also select ARMv6/v7 targets. Adding the ifdef here restores the intended behavior. Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2013-03-18ARM/dts: prima2: add .dtsi for atlas6 and .dts for atla6-evb boardBarry Song
atlas6.dtsi is basically a copy of prima2.dtsi as most components are compatible with prima2 except that: 1. node of l2 cache is deleted 2. node multimedia engine is deleted 3. node of sata is deleted 4. node of sdmmc4 is deleted 5. powervr is moved to "powervr,sgx510" 6. pinctrl is moved to atlas6 as pinmux layout has big changes in atlas6 7. clock is moved to atlas6 as clock layout has changes in atlas6 Signed-off-by: Barry Song <Baohua.Song@csr.com> Signed-off-by: Jiansong Chen <Jiansong.Chen@csr.com>
2013-03-18arm: prima2: add new SiRFatlas6 machine in common boardBarry Song
SiRFatlas6's machine definition is almost seem with SiRFprimaII except that prima2 has a 256MB DMA zone. This patch adds SiRFatlas6 machine in common board files, and also adds atlas6 arch node in Kconfig. Signed-off-by: Barry Song <Baohua.Song@csr.com> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2013-03-15Merge branch 'spear/multiplatform' into next/multiplatformArnd Bergmann
The spear platform has been cleaned up a lot by Viresh Kumar, and is relatively easy to convert to multiplatform, getting us one more step closer to having all ARMv7 platforms included. I originally did this before 3.8 but merging it never worked out so far, mostly because of conflicts against patches in the DMA tree, but also because I did not push very hard for these. * spear/multiplatform: ARM: spear: enable spear13xx in multi_v7_defconfig ARM: spear: fix build error in restart.c ARM: spear: use multiplatform configuration options. ARM: spear: rename duplicate pl080_plat_data ARM: spear: make clock driver independent of headers ARM: spear: move generic.h and pl080.h into private dir ARM: spear: move all files to mach-spear ARM: spear: move spear.h and misc_regs.h into plat-spear ARM: spear: merge Kconfig files ARM: spear: make spear3xx/6xx mach/spear.h files identical ARM: spear: move identical headers to plat-spear/include/mach ARM: spear: unify mach/generic.h and mach/irqs.h ARM: spear13xx: make mach/dma.h local Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2013-03-15Merge branch 'cns3xxx/multiplatform' into next/multiplatformArnd Bergmann
I've looked at all the platforms recently to see what their state is. cns3xxx seems quite clean but not very actively maintained. Since it is really easy to convert to multiplatform, that's what I did here. * cns3xxx/multiplatform: ARM: cns3xxx: initial DT support ARM: cns3xxx: enable multiplatform support ARM: cns3xxx: move debug_ll code to include/debug/ ARM: cns3xxx: enable sparse IRQ support ARM: cns3xxx: make mach header files local Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2013-03-15Merge tag 'nomadik-multiplatform' of ↵Arnd Bergmann
git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-nomadik into next/multiplatform From Linus Walleij <linus.walleij@linaro.org>: Multiplatform support for the Nomadik - Get rid of the last header files in the <mach/*> namespace - Move the debug macro to the common place - Make the necessary Kconfig fixes and move the platform Kconfig fragment down to the mach directory. - Include necessary defconfig update to get the platform going. * tag 'nomadik-multiplatform' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-nomadik: ARM: nomadik: delete remnant include files ARM: nomadik: convert to multiplatform ARM: nomadik: move debugmacro to debug includes ARM: nomadik: delete IRQ header Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2013-03-14ARM: cns3xxx: initial DT supportArnd Bergmann
This adds very minimal support for booting cns3xxx using a device tree. It should support the same devices that cns3420vb provides but gets them from the DT. All devices that don't have their own binding are probed through auxdata. This is completely untested and likely incomplete. Booting through ATAGS is made optional, so it can be turned off by anybody who has a DTB file. Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2013-03-14ARM: cns3xxx: enable multiplatform supportArnd Bergmann
This moves the cns3xxx configuration option inside of ARCH_MULTIPLATFORM, since there is no reason for not doing it now. We can then also remove the three header files that become obsolete. Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2013-03-14ARM: cns3xxx: move debug_ll code to include/debug/Arnd Bergmann
This is needed in order to keep debug_ll functionality on cns3xxx working when we enable ARCH_MULTIPLATFORM. Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2013-03-14ARM: cns3xxx: enable sparse IRQ supportArnd Bergmann
This trivially enables sparse IRQ on cns3xxx by moving the nr_irqs definition from mach/irqs.h into the machine descriptor. These interrupts will still get statically assigned, so nothing changes here. Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2013-03-14ARM: cns3xxx: make mach header files localArnd Bergmann
The mach/cns3xxx.h and mach/pm.h header files are used only in the platform code itself, so there is no need to make them globally visible. This gets us closer to multiplatform configuration for cns3xxx. Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2013-03-12ARM: bcm2835: convert to multi-platformStephen Warren
This allows BCM2835 be included in a kernel build that supports multiple SoCs at once, which is useful for distro kernels. This change: * Moves bcm2835's debug-macro.S into ARM's include/debug/, and hooks it into the relevant menu. * Moves bcm2835's Kconfig into its own directory, as seems typical for multi-platform conversions. * Removes bcm2835_soc.h, and moves the content to the files where it was used; just one usage per define. * Deletes some headers and Makefile.boot that aren't needed now that we support multi-platform. Signed-off-by: Stephen Warren <swarren@wwwdotorg.org> Acked-by: Arnd Bergmann <arnd@arndb.de>
2013-03-12ARM: spear: enable spear13xx in multi_v7_defconfigArnd Bergmann
SPEAr13xx can now be part of the regular multiplatform defconfig, so let's enable it there. Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2013-03-12ARM: spear: fix build error in restart.cArnd Bergmann
We can now enable mach-spear without selecting any of the machines in a multiplatform configuration. Doing so causes a build error that is trivial to fix by making both the spear13xx and the spear3xx/6xx portion of this file conditional rather than alternatives. Signed-off-by: Arnd Bergmann <arnd@arndb.de> Acked-by: Viresh Kumar <viresh.kumar@linaro.org>
2013-03-12ARM: spear: use multiplatform configuration options.Arnd Bergmann
The spear platform is now multiplatform capable in principle, and everything still builds when enabled. This slightly rearranges the Kconfig options for spear to enable both single- and multiplatform support. As a side-effect, even building the single spear kernel can now enable spear3xx and spear6xx simultaneously, although not together with spear13xx, because they are a different archicture version (v7 instead of v5). Signed-off-by: Arnd Bergmann <arnd@arndb.de> Acked-by: Viresh Kumar <viresh.kumar@linaro.org>
2013-03-12ARM: spear: rename duplicate pl080_plat_dataArnd Bergmann
Both spear3xx and spear6xx have a global symbol named pl080_plat_data. Eventually, both should be removed, but for now, we can rename one to pl080_plat_data and declare it static, since that one does not actually need to be visible outside of spear6xx.c. Signed-off-by: Arnd Bergmann <arnd@arndb.de> Acked-by: Viresh Kumar <viresh.kumar@linaro.org>
2013-03-12ARM: spear: make clock driver independent of headersArnd Bergmann
Device drivers should not access MMIO registers through hardcoded platform specific address constants. Instead, we can pass the MMIO token to the spear clock driver in the initialization routine to contain that knowledge in the platform code itself. Ideally, the clock driver would use of_iomap() or similar to get the address, and that can be used later, but for now, this is the minimal change. Signed-off-by: Arnd Bergmann <arnd@arndb.de> Acked-by: Viresh Kumar <viresh.kumar@linaro.org>
2013-03-12ARM: spear: move generic.h and pl080.h into private dirArnd Bergmann
No file outside of mach-spear includes these files any more, so they don't have to be globally visible now. Signed-off-by: Arnd Bergmann <arnd@arndb.de> Acked-by: Viresh Kumar <viresh.kumar@linaro.org>
2013-03-12ARM: spear: move all files to mach-spearArnd Bergmann
There are no conflicting files between the three mach-spear* directories and plat-spear any more, so we can now move all file to a common mach-spear directory. Signed-off-by: Arnd Bergmann <arnd@arndb.de> Acked-by: Viresh Kumar <viresh.kumar@linaro.org>
2013-03-12ARM: spear: move spear.h and misc_regs.h into plat-spearArnd Bergmann
The spear13xx version of spear.h is completely different from the newly combined spear3xx/spear6xx version, but we can never build ARMv5 and ARMv7 platforms together, so there is no harm in putting all the contents into a single file and adding appropriate ifdefs. Signed-off-by: Arnd Bergmann <arnd@arndb.de> Acked-by: Viresh Kumar <viresh.kumar@linaro.org>
2013-03-12ARM: spear: merge Kconfig filesArnd Bergmann
As a preparation to merging the spear platforms into one directory, this merges the four Kconfig files into one. Signed-off-by: Arnd Bergmann <arnd@arndb.de> Acked-by: Viresh Kumar <viresh.kumar@linaro.org>
2013-03-12ARM: spear: make spear3xx/6xx mach/spear.h files identicalArnd Bergmann
The two files are almost identical already basically just differ in the identifier names. By changing the identifiers to be the same, we are able to merge the two as a preparation to building a combined kernel. Signed-off-by: Arnd Bergmann <arnd@arndb.de> Acked-by: Viresh Kumar <viresh.kumar@linaro.org>
2013-03-12ARM: spear: move identical headers to plat-spear/include/machArnd Bergmann
As an intermediate step towards unification of the three spear platforms, this gets rid of the mach/* header files that are obviously not platform specific. Signed-off-by: Arnd Bergmann <arnd@arndb.de> Acked-by: Viresh Kumar <viresh.kumar@linaro.org>
2013-03-12ARM: spear: unify mach/generic.h and mach/irqs.hArnd Bergmann
These are indeed easy to combine, as there are no conflicting definitions in generic.h, and irqs.h will be obsolete once we enable SPARSE_IRQ. Signed-off-by: Arnd Bergmann <arnd@arndb.de> Acked-by: Viresh Kumar <viresh.kumar@linaro.org>
2013-03-12ARM: spear13xx: make mach/dma.h localArnd Bergmann
There is no reason for this header file to be globally visible, so let's just move it into the mach directory. Signed-off-by: Arnd Bergmann <arnd@arndb.de> Acked-by: Viresh Kumar <viresh.kumar@linaro.org>
2013-03-11ARM: smp_twd: convert to use CLKSRC_OF initRob Herring
Now that we have OF based init with CLKSRC_OF, convert smp_twd init function to use it and covert all callers of twd_local_timer_of_register. Signed-off-by: Rob Herring <rob.herring@calxeda.com> Cc: Shawn Guo <shawn.guo@linaro.org> Cc: Sascha Hauer <kernel@pengutronix.de> Cc: Russell King <linux@arm.linux.org.uk> Cc: Viresh Kumar <viresh.linux@gmail.com> Cc: Shiraz Hashim <shiraz.hashim@st.com> Cc: Srinidhi Kasagar <srinidhi.kasagar@stericsson.com> Cc: John Stultz <johnstul@us.ibm.com> Cc: Thomas Gleixner <tglx@linutronix.de> Cc: linux-omap@vger.kernel.org Cc: spear-devel@list.st.com Reviewed-by: Stephen Warren <swarren@nvidia.com> Acked-by: Santosh Shilimkar <santosh.shilimkar@ti.com> Acked-by: Tony Lindgren <tony@atomide.com> Acked-by: Linus Walleij <linus.walleij@linaro.org>
2013-03-07ARM: 7668/1: fix memset-related crashes caused by recent GCC (4.7.2) ↵Ivan Djelic
optimizations Recent GCC versions (e.g. GCC-4.7.2) perform optimizations based on assumptions about the implementation of memset and similar functions. The current ARM optimized memset code does not return the value of its first argument, as is usually expected from standard implementations. For instance in the following function: void debug_mutex_lock_common(struct mutex *lock, struct mutex_waiter *waiter) { memset(waiter, MUTEX_DEBUG_INIT, sizeof(*waiter)); waiter->magic = waiter; INIT_LIST_HEAD(&waiter->list); } compiled as: 800554d0 <debug_mutex_lock_common>: 800554d0: e92d4008 push {r3, lr} 800554d4: e1a00001 mov r0, r1 800554d8: e3a02010 mov r2, #16 ; 0x10 800554dc: e3a01011 mov r1, #17 ; 0x11 800554e0: eb04426e bl 80165ea0 <memset> 800554e4: e1a03000 mov r3, r0 800554e8: e583000c str r0, [r3, #12] 800554ec: e5830000 str r0, [r3] 800554f0: e5830004 str r0, [r3, #4] 800554f4: e8bd8008 pop {r3, pc} GCC assumes memset returns the value of pointer 'waiter' in register r0; causing register/memory corruptions. This patch fixes the return value of the assembly version of memset. It adds a 'mov' instruction and merges an additional load+store into existing load/store instructions. For ease of review, here is a breakdown of the patch into 4 simple steps: Step 1 ====== Perform the following substitutions: ip -> r8, then r0 -> ip, and insert 'mov ip, r0' as the first statement of the function. At this point, we have a memset() implementation returning the proper result, but corrupting r8 on some paths (the ones that were using ip). Step 2 ====== Make sure r8 is saved and restored when (! CALGN(1)+0) == 1: save r8: - str lr, [sp, #-4]! + stmfd sp!, {r8, lr} and restore r8 on both exit paths: - ldmeqfd sp!, {pc} @ Now <64 bytes to go. + ldmeqfd sp!, {r8, pc} @ Now <64 bytes to go. (...) tst r2, #16 stmneia ip!, {r1, r3, r8, lr} - ldr lr, [sp], #4 + ldmfd sp!, {r8, lr} Step 3 ====== Make sure r8 is saved and restored when (! CALGN(1)+0) == 0: save r8: - stmfd sp!, {r4-r7, lr} + stmfd sp!, {r4-r8, lr} and restore r8 on both exit paths: bgt 3b - ldmeqfd sp!, {r4-r7, pc} + ldmeqfd sp!, {r4-r8, pc} (...) tst r2, #16 stmneia ip!, {r4-r7} - ldmfd sp!, {r4-r7, lr} + ldmfd sp!, {r4-r8, lr} Step 4 ====== Rewrite register list "r4-r7, r8" as "r4-r8". Signed-off-by: Ivan Djelic <ivan.djelic@parrot.com> Reviewed-by: Nicolas Pitre <nico@linaro.org> Signed-off-by: Dirk Behme <dirk.behme@gmail.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2013-03-07ARM: nomadik: delete remnant include filesLinus Walleij
This deletes the leftover <mach/timex.h> and <mach/uncompress.h> and Makefile.boot that have no role in a multiplatform environment. Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2013-03-07ARM: nomadik: convert to multiplatformLinus Walleij
This converts the Nomadik to run in multiplatform mode, including the defconfig change. After this the "uImage" target in the kernel tree will no longer work, but we do not care about this. Instead we generate the uImage from the zImage using mkimage or update the bootloader to accept bootz. Some minor updates to the defconfig are done as part of this. Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2013-03-07ARM: nomadik: move debugmacro to debug includesLinus Walleij
This moves the Nomadik debug macro to the debug headers to make way for multiplatform support. Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2013-03-07ARM: nomadik: delete IRQ headerLinus Walleij
This header is not used any more after the platform was switched to obtain resources from the device tree. Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2013-03-06ARM: 7667/1: perf: Fix section mismatch on armpmu_init()Stephen Boyd
WARNING: vmlinux.o(.text+0xfb80): Section mismatch in reference from the function armpmu_register() to the function .init.text:armpmu_init() The function armpmu_register() references the function __init armpmu_init(). This is often because armpmu_register lacks a __init annotation or the annotation of armpmu_init is wrong. Just drop the __init marking on armpmu_init() because armpmu_register() no longer has an __init marking. Acked-by: Will Deacon <will.deacon@arm.com> Signed-off-by: Stephen Boyd <sboyd@codeaurora.org> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2013-03-06ARM: 7666/1: decompressor: add -mno-single-pic-base for building the ↵Jonathan Austin
decompressor Before jumping to (position independent) C-code from the decompressor's assembler world we set-up the C environment. This setup currently does not set r9, which for arm-none-uclinux-uclibceabi toolchains is by default expected to be the PIC offset base register (IE should point to the beginning of the GOT). Currently, therefore, in order to build working kernels that use the decompressor it is necessary to use an arm-linux-gnueabi toolchain, or similar. uClinux toolchains cause a prefetch abort to occur at the beginning of the decompress_kernel function. This patch allows uClinux toolchains to build bootable zImages by forcing the -mno-single-pic-base option, which ensures that the location of the GOT is re-derived each time it is required, and r9 becomes free for use as a general purpose register. This has a small (4% in instruction terms) advantage over the alternative of setting r9 to point to the GOT before calling into the C-world. Signed-off-by: Jonathan Austin <jonathan.austin@arm.com> Acked-by: Nicolas Pitre <nico@linaro.org> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2013-03-03ARM: 7665/1: Wire up kcmp syscallCyrill Gorcunov
Wire up kcmp syscall for ability to proceed checkpoint/restore procedure on ARM platform. Signed-off-by: Alexander Kartashov <alekskartashov@parallels.com> Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org> Acked-by: Arnd Bergmann <arnd@arndb.de> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2013-03-03ARM: 7664/1: perf: remove erroneous semicolon from event initialisationChen Gang
Commit 9dcbf466559f ("ARM: perf: simplify __hw_perf_event_init err handling") tidied up the error handling code for perf event initialisation on ARM, but a copy-and-paste error left a dangling semicolon at the end of an if statement. This patch removes the broken semicolon, restoring the old group validation semantics. Cc: Mark Rutland <mark.rutland@arm.com> Acked-by: Dirk Behme <dirk.behme@gmail.com> Signed-off-by: Chen Gang <gang.chen@asianux.com> Signed-off-by: Will Deacon <will.deacon@arm.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2013-03-03ARM: 7663/1: perf: fix ARMv7 EVTYPE_MASK to include NSH bitWill Deacon
Masked out PMXEVTYPER.NSH means that we can't enable profiling at PL2, regardless of the settings in the HDCR. This patch fixes the broken mask. Cc: <stable@vger.kernel.org> Reported-by: Christoffer Dall <cdall@cs.columbia.edu> Signed-off-by: Will Deacon <will.deacon@arm.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2013-03-03ARM: 7662/1: hw_breakpoint: reset debug logic on secondary CPUs in s2ram resumeDietmar Eggemann
We must mask out the CPU_TASKS_FROZEN bit so that reset_ctrl_regs is also called on a secondary CPU during s2ram resume, where only the boot CPU will receive the PM_EXIT notification. Signed-off-by: Dietmar Eggemann <dietmar.eggemann@arm.com> Signed-off-by: Will Deacon <will.deacon@arm.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2013-03-03ARM: 7661/1: mm: perform explicit branch predictor maintenance when requiredWill Deacon
The ARM ARM requires branch predictor maintenance if, for a given ASID, the instructions at a specific virtual address appear to change. From the kernel's point of view, that means: - Changing the kernel's view of memory (e.g. switching to the identity map) - ASID rollover (since ASIDs will be re-allocated to new tasks) This patch adds explicit branch predictor maintenance when either of the two conditions above are met. Reviewed-by: Catalin Marinas <catalin.marinas@arm.com> Signed-off-by: Will Deacon <will.deacon@arm.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>