05ccf19602cc16fc96401b4f2617d1b8e20e642d |
|
11-Jul-2014 |
Thierry Reding <treding@nvidia.com> |
ARM: tegra: Setup CPU hotplug in a pure initcall CPU hotplug support doesn't have to be set up until fairly late in the boot process, so it can be done in a regular initcall. To make sure that we don't miss any ordering problems in the future, output a warning if any of the functions are called before initialization has completed. This is part of untangling the boot order dependencies on Tegra so that more code can be shared between 32-bit and 64-bit ARM. Signed-off-by: Thierry Reding <treding@nvidia.com>
|
304664eab93f9e95a8d28fbd9702ede88bb10cc5 |
|
11-Jul-2014 |
Thierry Reding <treding@nvidia.com> |
ARM: tegra: Use a function to get the chip ID Instead of using a simple variable access to get at the Tegra chip ID, use a function so that we can run additional code. This can be used to determine where the chip ID is being accessed without being available. That in turn will be handy for resolving boot sequence dependencies in order to convert more code to regular initcalls rather than a sequence fixed by Tegra SoC setup code. Signed-off-by: Thierry Reding <treding@nvidia.com>
|
a0524acc94c91c72c2968a76eddc6f3afe82f9f2 |
|
11-Jul-2014 |
Thierry Reding <treding@nvidia.com> |
ARM: tegra: Sort includes alphabetically If these aren't sorted alphabetically, then the logical choice is to append new ones, however that creates a lot of potential for conflicts because every change will then add new includes in the same location. Signed-off-by: Thierry Reding <treding@nvidia.com>
|
9997e62682e0fe68566c88f70ed320ded4e16529 |
|
11-Oct-2013 |
Joseph Lo <josephl@nvidia.com> |
ARM: tegra: CPU hotplug support for Tegra124 The procedure of CPU hotplug for Tegra124 is same with Tegra114. We re-use the same function with it. Signed-off-by: Joseph Lo <josephl@nvidia.com> Signed-off-by: Stephen Warren <swarren@nvidia.com>
|
ac2527bfc21739b77d687df1bfc4e973103fef7b |
|
03-Jul-2013 |
Joseph Lo <josephl@nvidia.com> |
ARM: tegra: add a flag for tegra_disable_clean_inv_dcache to do LoUIS or ALL Adding a flag for tegra_disable_clean_inv_dcache to flush cache as LoUIS or ALL. After this patch, the v7_flush_dcache_louis is used for CPU hotplug and CPU suspend in CPU power down (e.g. CPU idle power-down mode) case. And the v7_flush_dcache_all is used for CPU cluster power down (e.g. suspend to LP2 mode). Signed-off-by: Joseph Lo <josephl@nvidia.com> Signed-off-by: Stephen Warren <swarren@nvidia.com>
|
a99d34b506f746e607c96767d616553a5cc14758 |
|
19-Jul-2013 |
Joseph Lo <josephl@nvidia.com> |
Revert "ARM: tegra: add cpu_disable for hotplug" This reverts commit 510bb59 "ARM: tegra: add cpu_disable for hotplug". The Tegra114 support CPU0 hotplug function in HW physically, but it needs other software to make it work normally after we add CPU idle power down mode support. So remove them for now. Signed-off-by: Joseph Lo <josephl@nvidia.com> Signed-off-by: Stephen Warren <swarren@nvidia.com>
|
510bb595de26f90e5bb7c4a1e2a584e38398cf00 |
|
21-May-2013 |
Joseph Lo <josephl@nvidia.com> |
ARM: tegra: add cpu_disable for hotplug The Tegra114 could hotplug the CPU0, but the common cpu_disable didn't support that. Adding a Tegra specific cpu_disable function for it. Signed-off-by: Joseph Lo <josephl@nvidia.com> [swarren: adjusted the switch statement to be future-proof] Signed-off-by: Stephen Warren <swarren@nvidia.com>
|
33d5c01915ccca298a5fda7e0cb33199d225e03a |
|
20-May-2013 |
Joseph Lo <josephl@nvidia.com> |
ARM: tegra114: add CPU hotplug support The Tegra114 is a quad cores SoC. Each core can be hotplugged including CPU0. The hotplug sequence can be controlled by setting event trigger in flow controller. Then the flow controller will take care all the power sequence that include CPU up and down. Signed-off-by: Joseph Lo <josephl@nvidia.com> Signed-off-by: Stephen Warren <swarren@nvidia.com>
|
bca7a5a04933700a8bde4ea5798119607a8b0436 |
|
18-Apr-2013 |
Russell King <rmk+kernel@arm.linux.org.uk> |
ARM: cpu hotplug: remove majority of cache flushing from platforms Remove the majority of cache flushing calls from the individual platform files. This is now handled by the core code. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
|
da2265b130f6b5be3b874bb2832335887fe59461 |
|
18-Apr-2013 |
Russell King <rmk+kernel@arm.linux.org.uk> |
ARM: tegra: remove tegra specific cpu_disable() The tegra cpu_disable() function is the same as the generic version in arch/arm/kernel/smp.c. Therefore, it can be removed. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
|
7469688e832e340a84a1f6d4c290d8680c723256 |
|
13-Feb-2013 |
Hiroshi Doyu <hdoyu@nvidia.com> |
ARM: tegra: Unify tegra{20,30,114}_init_early() Refactored tegra{20,30,114}_init_early() so that we have the unified tegra_init_early(). Signed-off-by: Hiroshi Doyu <hdoyu@nvidia.com> Signed-off-by: Stephen Warren <swarren@nvidia.com>
|
89572c77cdffdf24f8fec50d3e38db6a18c04dbe |
|
11-Jan-2013 |
Prashant Gaikwad <pgaikwad@nvidia.com> |
ARM: tegra: move tegra_cpu_car.h to linux/clk/tegra.h tegra_cpu_car_ops struct is going to be accessed from drivers/clk/tegra. Move the tegra_cpu_car_ops to include/linux/clk/tegra.h. Signed-off-by: Prashant Gaikwad <pgaikwad@nvidia.com> Signed-off-by: Stephen Warren <swarren@nvidia.com>
|
b811943160cf3b040341c50d23440cf6d68ae079 |
|
03-Jan-2013 |
Joseph Lo <josephl@nvidia.com> |
ARM: tegra: moving the clock gating procedure to tegra_cpu_kill The tegra_cpu_die was be executed by the CPU itslf. So the clock gating procedure won't be executed after the CPU hardware shutdown code. Moving the clock gating procedure to tegra_cpu_kill that will be run by another CPU after the CPU died. Signed-off-by: Joseph Lo <josephl@nvidia.com> Acked-by: Peter De Schrijver <pdeschrijver@nvidia.com> Signed-off-by: Stephen Warren <swarren@nvidia.com>
|
57886616ca7bff844a6427436d0c8faf74653f73 |
|
03-Jan-2013 |
Joseph Lo <josephl@nvidia.com> |
ARM: tegra: update the cache maintenance order for CPU shutdown Updating the cache maintenance order before CPU shutdown when doing CPU hotplug. The old order: * clean L1 by flush_cache_all * exit SMP * CPU shutdown Adapt to: * disable L1 data cache by clear C bit * clean L1 by v7_flush_dcache_louis * exit SMP * CPU shutdown For CPU hotplug case, it's no need to do "flush_cache_all". And we should disable L1 data cache before clean L1 data cache. Then leaving the SMP coherency. Signed-off-by: Joseph Lo <josephl@nvidia.com> Acked-by: Peter De Schrijver <pdeschrijver@nvidia.com> Signed-off-by: Stephen Warren <swarren@nvidia.com>
|
453689e407f2b7c0a72a2e6fb2ef84c20475773b |
|
16-Aug-2012 |
Joseph Lo <josephl@nvidia.com> |
ARM: tegra20: add CPU hotplug support Hotplug function put CPU in offline or online mode at runtime. When the CPU been put into offline, it was been clock gated. The offline CPU can be power gated, when the remaining CPU goes into LP2. Based on the worked by: Colin Cross <ccross@android.com> Gary King <gking@nvidia.com> Signed-off-by: Joseph Lo <josephl@nvidia.com> Signed-off-by: Stephen Warren <swarren@nvidia.com>
|
59b0f6825c15d24859e22b1024440ae2a094983e |
|
16-Aug-2012 |
Joseph Lo <josephl@nvidia.com> |
ARM: tegra30: add CPU hotplug support Hotplug function put CPUs in offline or online state at runtime. When the CPU been put in the offline state, it was been clock and power gated. Except primary CPU other CPUs can be hotplugged. Based on the work by: Scott Williams <scwilliams@nvidia.com> Colin Cross <ccross@android.com> Gary King <gking@nvidia.com> Signed-off-by: Joseph Lo <josephl@nvidia.com> Signed-off-by: Stephen Warren <swarren@nvidia.com>
|
a17257322f5e6ca376c15908b55423369274fcad |
|
08-Sep-2011 |
Marc Zyngier <marc.zyngier@arm.com> |
ARM: SoC: convert Tegra to SMP operations Convert Tegra to use struct smp_operations to provide its SMP and CPU hotplug operations. Tested on Harmony. Signed-off-by: Marc Zyngier <marc.zyngier@arm.com> Acked-by: Stephen Warren <swarren@nvidia.com> Acked-by: Olof Johansson <olof@lixom.net> Acked-by: Nicolas Pitre <nico@linaro.org> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
|
15d07dc9c59eae51219c40253bdf920f62bb10f2 |
|
28-Mar-2012 |
Russell King <rmk+kernel@arm.linux.org.uk> |
ARM: move CP15 definitions to separate header file Avoid namespace conflicts with drivers over the CP15 definitions by moving CP15 related prototypes and definitions to a private header file. Acked-by: Stephen Warren <swarren@nvidia.com> Tested-by: Stephen Warren <swarren@nvidia.com> [Tegra] Acked-by: H Hartley Sweeten <hsweeten@visionengravers.com> Tested-by: H Hartley Sweeten <hsweeten@visionengravers.com> [EP93xx] Acked-by: Nicolas Pitre <nico@linaro.org> Acked-by: Kukjin Kim <kgene.kim@samsung.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk> Signed-off-by: David Howells <dhowells@redhat.com>
|
195864cf3d6f5b6b743793bda3aaa2ff65d322ae |
|
19-Jan-2012 |
Russell King <rmk+kernel@arm.linux.org.uk> |
ARM: move CP15 definitions to separate header file Avoid namespace conflicts with drivers over the CP15 definitions by moving CP15 related prototypes and definitions to a private header file. Acked-by: Stephen Warren <swarren@nvidia.com> Tested-by: Stephen Warren <swarren@nvidia.com> [Tegra] Acked-by: H Hartley Sweeten <hsweeten@visionengravers.com> Tested-by: H Hartley Sweeten <hsweeten@visionengravers.com> [EP93xx] Acked-by: Nicolas Pitre <nico@linaro.org> Acked-by: Kukjin Kim <kgene.kim@samsung.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
|
30b99d07b7e08d0e6bcc2f0b924828c03e67f881 |
|
14-Jan-2011 |
Russell King <rmk+kernel@arm.linux.org.uk> |
ARM: fix wrongly patched constants e3d9c625 (ARM: CPU hotplug: fix hard-coded control register constants) changed the wrong constants in the hotplug assembly code. Fix this. Reported-by: viresh kumar <viresh.kumar@st.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
|
e3d9c625f5e4158014e041f492b46e38ad10987e |
|
19-Dec-2010 |
Russell King <rmk+kernel@arm.linux.org.uk> |
ARM: CPU hotplug: fix hard-coded control register constants Use the definition we've provided in asm/system.h rather than numeric constants. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
|
d4450261e546953c4a1ce8b48e29164a57c6ed33 |
|
19-Dec-2010 |
Russell King <rmk+kernel@arm.linux.org.uk> |
ARM: CPU hotplug: fix reporting of spurious wakeups The original scheme for reporting spurious wakeups was broken - it tried to use printk() from a context which wasn't coherent with the other CPUs, which risks corrupting the printk() data. Fix this by noting the number spurious wakeups, and only report them when we are properly woken - when we will be coherent with the rest of the system. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
|
bbc81fd4327f9ed4480b05981e38acd48b1d184a |
|
30-Nov-2010 |
Russell King <rmk+kernel@arm.linux.org.uk> |
ARM: CPU hotplug: remove bug checks in platform_cpu_die() platform_cpu_die() is entered from the CPU's own idle thread, which can not be migrated to other CPUs. Moreover, the 'cpu' argument comes from the thread info, which will always be the 'current' CPU. So remove this useless bug check. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
|
3c030beabf937b1d3b4ecaedfd1fb2f1e2aa0c70 |
|
30-Nov-2010 |
Russell King <rmk+kernel@arm.linux.org.uk> |
ARM: CPU hotplug: move cpu_killed completion to core code We always need to wait for the dying CPU to reach a safe state before taking it down, irrespective of the requirements of the platform. Move the completion code into the ARM SMP hotplug code rather than having each platform re-implement this. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
|
1cea7326b3fff97d17d33fb8f33163409a84431b |
|
22-Feb-2010 |
Colin Cross <ccross@android.com> |
[ARM] tegra: SMP support Signed-off-by: Colin Cross <ccross@android.com> Signed-off-by: Erik Gilling <konkers@android.com>
|