Tony Lindgren had written, on 07/07/2010 07:36 AM, the following:
* Nishanth Menon <nm@xxxxxx> [100625 19:19]:
--- a/arch/arm/mach-omap2/io.c
+++ b/arch/arm/mach-omap2/io.c
@@ -238,7 +238,7 @@ static void __init _omap2_map_common_io(void)
local_flush_tlb_all();
flush_cache_all();
- omap2_check_revision();
+ omap_check_revision();
omap_sram_init();
}
diff --git a/arch/arm/plat-omap/common.c b/arch/arm/plat-omap/common.c
index fca73cd..4a0e333 100644
--- a/arch/arm/plat-omap/common.c
+++ b/arch/arm/plat-omap/common.c
@@ -89,6 +89,12 @@ void __init omap_reserve(void)
omap_vram_reserve_sdram_lmb();
}
+void __init omap_check_revision(void)
+{
+ omap1_check_revision();
+ omap2_check_revision();
+}
+
/*
* 32KHz clocksource ... always available, on pretty most chips except
* OMAP 730 and 1510. Other timers could be used as clocksources, with
diff --git a/arch/arm/plat-omap/include/plat/cpu.h b/arch/arm/plat-omap/include/plat/cpu.h
index 7514174..5f12a0b 100644
--- a/arch/arm/plat-omap/include/plat/cpu.h
+++ b/arch/arm/plat-omap/include/plat/cpu.h
@@ -431,7 +431,18 @@ IS_OMAP_TYPE(3517, 0x3517)
int omap_chip_is(struct omap_chip_id oci);
-void omap2_check_revision(void);
+#ifdef CONFIG_ARCH_OMAP2PLUS
+extern void omap2_check_revision(void);
+#else
+static inline void omap2_check_revision(void) {}
+#endif
+
+#ifdef CONFIG_ARCH_OMAP1
+extern void omap1_check_revision(void);
+#else
+static inline void omap1_check_revision(void) {}
+#endif
+void omap_check_revision(void);
Hmm, to me it seems like we should have static omap_check_revision
in both mach-omap1/id.c and mach-omap2/id.c. Or do we need to call
these anywhere else outside both id.c files?
check_revision is called from mach-omap[12]/io.c - so no chance of the
check_revision to be static..
Then these can set u32 omap_revision flags in plat-omap/common.c,
and then we can have a common omap_get_revision() or something
in plat-omap/common.c?
i think I managed to get rid of it entirely.. ref: attached patch
If we are ok with this, I will repost the series (i squashed
omap1-rename-check_revision into this patch).
There should not be need for cpu_is_omapxxxx tests for getting
the revision after it's initialized.
I am not sure.. if you would like drivers to be modprobabe, there may be
quirks that you'd want to enable based on cpu_is_omapxxx checks. so it
probably does not make sense to __initdata the revision/feature variables.
--
Regards,
Nishanth Menon
>From f72070e575433ad07ed018aef5c43677424003d0 Mon Sep 17 00:00:00 2001
From: Nishanth Menon <nm@xxxxxx>
Date: Fri, 21 May 2010 12:09:33 -0500
Subject: [PATCH 2/7] omap: generic: introduce a single check_revision
Introduce a single omap generic check_revision that routes the
request to the right revision of check_revision.
Note: OMAP1 and OMAP2+ are not built into a single kernel.
Cc: Tony Lindgren <tony@xxxxxxxxxxx>
Cc: Angelo Arrifano <miknix@xxxxxxxxx>
Cc: "Zebediah C. McClure" <zmc@xxxxxxxxxx>
Cc: Alistair Buxton <a.j.buxton@xxxxxxxxx>
Cc: Grazvydas Ignotas <notasas@xxxxxxxxx>
Cc: Paul Walmsley <paul@xxxxxxxxx>
Cc: Sanjeev Premi <premi@xxxxxx>
Cc: Santosh Shilimkar <santosh.shilimkar@xxxxxx>
Cc: Senthilvadivu Gurusamy <svadivu@xxxxxx>
Cc: Kevin Hilman <khilman@xxxxxxxxxxxxxxxxxxx>
Cc: Tarun Kanti DebBarma <tarun.kanti@xxxxxx>
Cc: Tomi Valkeinen <tomi.valkeinen@xxxxxxxxx>
Cc: Aaro Koskinen <aaro.koskinen@xxxxxxxxx>
Cc: Vikram Pandita <vikram.pandita@xxxxxx>
Cc: Vishwanath S <vishwa.s@xxxxxx>
Cc: linux-omap@xxxxxxxxxxxxxxx
Signed-off-by: Nishanth Menon <nm@xxxxxx>
---
arch/arm/mach-omap1/io.c | 1 -
arch/arm/mach-omap2/id.c | 2 +-
arch/arm/mach-omap2/io.c | 2 +-
arch/arm/plat-omap/include/plat/cpu.h | 3 ++-
4 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/arch/arm/mach-omap1/io.c b/arch/arm/mach-omap1/io.c
index 0ce3fec..4f9ee73 100644
--- a/arch/arm/mach-omap1/io.c
+++ b/arch/arm/mach-omap1/io.c
@@ -20,7 +20,6 @@
#include "clock.h"
-extern void omap_check_revision(void);
extern void omap_sram_init(void);
/*
diff --git a/arch/arm/mach-omap2/id.c b/arch/arm/mach-omap2/id.c
index c7bf0e1..80f0950 100644
--- a/arch/arm/mach-omap2/id.c
+++ b/arch/arm/mach-omap2/id.c
@@ -371,7 +371,7 @@ static void __init omap3_cpuinfo(void)
/*
* Try to detect the exact revision of the omap we're running on
*/
-void __init omap2_check_revision(void)
+void __init omap_check_revision(void)
{
/*
* At this point we have an idea about the processor revision set
diff --git a/arch/arm/mach-omap2/io.c b/arch/arm/mach-omap2/io.c
index b9ea70b..75883fe 100644
--- a/arch/arm/mach-omap2/io.c
+++ b/arch/arm/mach-omap2/io.c
@@ -238,7 +238,7 @@ static void __init _omap2_map_common_io(void)
local_flush_tlb_all();
flush_cache_all();
- omap2_check_revision();
+ omap_check_revision();
omap_sram_init();
}
diff --git a/arch/arm/plat-omap/include/plat/cpu.h b/arch/arm/plat-omap/include/plat/cpu.h
index 7514174..d25ba40 100644
--- a/arch/arm/plat-omap/include/plat/cpu.h
+++ b/arch/arm/plat-omap/include/plat/cpu.h
@@ -431,7 +431,8 @@ IS_OMAP_TYPE(3517, 0x3517)
int omap_chip_is(struct omap_chip_id oci);
-void omap2_check_revision(void);
+
+void omap_check_revision(void);
/*
* Runtime detection of OMAP3 features
--
1.6.3.3