summaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-tegra/include/mach/lowlevel.h
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/mach-tegra/include/mach/lowlevel.h')
-rw-r--r--arch/arm/mach-tegra/include/mach/lowlevel.h19
1 files changed, 11 insertions, 8 deletions
diff --git a/arch/arm/mach-tegra/include/mach/lowlevel.h b/arch/arm/mach-tegra/include/mach/lowlevel.h
index f1fea86cf6..0c76b8883c 100644
--- a/arch/arm/mach-tegra/include/mach/lowlevel.h
+++ b/arch/arm/mach-tegra/include/mach/lowlevel.h
@@ -111,9 +111,9 @@ u32 tegra_get_odmdata(void)
return 0;
}
- bctptr = cpu_readl(TEGRA_IRAM_BASE + bctptr_offset);
+ bctptr = __raw_readl(TEGRA_IRAM_BASE + bctptr_offset);
- return cpu_readl(bctptr + odmdata_offset);
+ return __raw_readl(bctptr + odmdata_offset);
}
static __always_inline
@@ -243,11 +243,20 @@ void tegra_ll_delay_usec(int delay)
while ((int)readl(TEGRA_TMRUS_BASE + TIMER_CNTR_1US) - timeout < 0);
}
+/* reset vector for the AVP, to be called from board reset vector */
+void tegra_avp_reset_vector(uint32_t boarddata);
+
+/* reset vector for the main CPU complex */
+void tegra_maincomplex_entry(void);
+
static __always_inline
void tegra_cpu_lowlevel_setup(void)
{
uint32_t r;
+ if (tegra_cpu_is_maincomplex())
+ tegra_maincomplex_entry();
+
/* set the cpu to SVC32 mode */
__asm__ __volatile__("mrs %0, cpsr":"=r"(r));
r &= ~0x1f;
@@ -258,10 +267,4 @@ void tegra_cpu_lowlevel_setup(void)
tegra_ll_delay_setup();
}
-/* reset vector for the AVP, to be called from board reset vector */
-void tegra_avp_reset_vector(uint32_t boarddata);
-
-/* reset vector for the main CPU complex */
-void tegra_maincomplex_entry(void);
-
#endif /* __TEGRA_LOWLEVEL_H */