Patchwork [v3,1/2] ARM: Add API to detect SCU base address from CP15

login
register
mail settings
Submitter Hiroshi Doyu
Date Jan. 22, 2013, 5:52 a.m.
Message ID <1358833924-24535-1-git-send-email-hdoyu@nvidia.com>
Download mbox | patch
Permalink /patch/214342/
State Accepted, archived
Headers show

Comments

Hiroshi Doyu - Jan. 22, 2013, 5:52 a.m.
Add API to detect SCU base address from CP15.

Signed-off-by: Hiroshi Doyu <hdoyu@nvidia.com>
---
Update: Use Russell's suggestion,
http://lists.infradead.org/pipermail/linux-arm-kernel/2013-January/143321.html
---
 arch/arm/include/asm/smp_scu.h |   17 +++++++++++++++++
 1 file changed, 17 insertions(+)
Stephen Warren - Jan. 28, 2013, 6:03 p.m.
On 01/21/2013 10:52 PM, Hiroshi Doyu wrote:
> Add API to detect SCU base address from CP15.

I've applied these 2 patches and Santosh's OMAP followup to Tegra's
for-3.9/scu-base-rework branch.
--
To unsubscribe from this list: send the line "unsubscribe linux-tegra" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Patch

diff --git a/arch/arm/include/asm/smp_scu.h b/arch/arm/include/asm/smp_scu.h
index 4eb6d00..006f026 100644
--- a/arch/arm/include/asm/smp_scu.h
+++ b/arch/arm/include/asm/smp_scu.h
@@ -6,6 +6,23 @@ 
 #define SCU_PM_POWEROFF	3
 
 #ifndef __ASSEMBLER__
+
+#include <asm/cputype.h>
+
+static inline bool scu_a9_has_base(void)
+{
+	return read_cpuid_part_number() == ARM_CPU_PART_CORTEX_A9;
+}
+
+static inline unsigned long scu_a9_get_base(void)
+{
+	unsigned long pa;
+
+	asm("mrc p15, 4, %0, c15, c0, 0" : "=r" (pa));
+
+	return pa;
+}
+
 unsigned int scu_get_core_count(void __iomem *);
 void scu_enable(void __iomem *);
 int scu_power_mode(void __iomem *, unsigned int);