The function am33xx_get_cpu_rev may be called before barebox_arm_entry(),
so we need to avoid switch statements. One example is the BeagleBone,
where we use this function to differenciate between the white and black
variants.

Signed-off-by: Jan Luebbe <[email protected]>
---
 arch/arm/mach-omap/am33xx_generic.c |   31 +++++++++++--------------------
 1 file changed, 11 insertions(+), 20 deletions(-)

diff --git a/arch/arm/mach-omap/am33xx_generic.c 
b/arch/arm/mach-omap/am33xx_generic.c
index 3690ce1..251c8d4 100644
--- a/arch/arm/mach-omap/am33xx_generic.c
+++ b/arch/arm/mach-omap/am33xx_generic.c
@@ -43,30 +43,21 @@ void __noreturn reset_cpu(unsigned long addr)
  * The significance of the CPU revision depends upon the cpu type.
  * Latest known revision is considered default.
  *
+ * This function is called before barebox_arm_entry(), so avoid switch
+ * statements.
+ *
  * @return silicon version
  */
 u32 am33xx_get_cpu_rev(void)
 {
-       u32 version, retval;
-
-       version = (readl(AM33XX_IDCODE_REG) >> 28) & 0xF;
-
-       switch (version) {
-       case 0:
-               retval = AM335X_ES1_0;
-               break;
-       case 1:
-               retval = AM335X_ES2_0;
-               break;
-       case 2:
-               /*
-                * Fall through the default case.
-                */
-       default:
-               retval = AM335X_ES2_1;
-       }
-
-       return retval;
+       u32 version = (readl(AM33XX_IDCODE_REG) >> 28) & 0xF;
+
+       if (version == 0)
+               return AM335X_ES1_0;
+       else if (version == 1)
+               return AM335X_ES2_0;
+       else
+               return AM335X_ES2_1;
 }
 
 /**
-- 
1.7.10.4


_______________________________________________
barebox mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/barebox

Reply via email to