summaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-omap2
diff options
context:
space:
mode:
authorTero Kristo <t-kristo@ti.com>2015-02-09 15:17:38 +0100
committerTero Kristo <t-kristo@ti.com>2015-03-31 20:26:55 +0200
commit23d240d661f42214bd372c0e5b21afaf71b9329c (patch)
tree8cc47acbe8552433cd93c9dc0e7ff5e19abc08bd /arch/arm/mach-omap2
parentARM: OMAP2+: control: remove API for getting control module base address (diff)
downloadlinux-23d240d661f42214bd372c0e5b21afaf71b9329c.tar.xz
linux-23d240d661f42214bd372c0e5b21afaf71b9329c.zip
ARM: OMAP2+: id: cache omap_type value
There is no need to read the register with every invocation of the function, as the value is constant. Thus, cache the value in a static variable. Signed-off-by: Tero Kristo <t-kristo@ti.com>
Diffstat (limited to 'arch/arm/mach-omap2')
-rw-r--r--arch/arm/mach-omap2/id.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/arch/arm/mach-omap2/id.c b/arch/arm/mach-omap2/id.c
index 2a2f4d56e4c8..f8121dbc9d48 100644
--- a/arch/arm/mach-omap2/id.c
+++ b/arch/arm/mach-omap2/id.c
@@ -52,7 +52,10 @@ EXPORT_SYMBOL(omap_rev);
int omap_type(void)
{
- u32 val = 0;
+ static u32 val = OMAP2_DEVICETYPE_MASK;
+
+ if (val < OMAP2_DEVICETYPE_MASK)
+ return val;
if (cpu_is_omap24xx()) {
val = omap_ctrl_readl(OMAP24XX_CONTROL_STATUS);