ARM: imx: Fix bmode detection from grp10
authorClaudius Heine <ch@denx.de>
Tue, 29 Oct 2019 12:08:43 +0000 (13:08 +0100)
committerStefano Babic <sbabic@denx.de>
Sun, 3 Nov 2019 16:04:16 +0000 (17:04 +0100)
imx6_is_bmode_from_gpr9 always returns false, because
IMX6_SRC_GPR10_BMODE is 1<<28 and gets casted to u8 on return.

This moves the function body into imx6_src_get_boot_mode, since that is the
only one using it and it is on the same abstraction level (accessing
registers directly).

Signed-off-by: Claudius Heine <ch@denx.de>
arch/arm/include/asm/mach-imx/sys_proto.h
arch/arm/mach-imx/init.c

index aa66fdc..58134c0 100644 (file)
@@ -99,11 +99,6 @@ enum imx6_bmode {
        IMX6_BMODE_NAND_MAX = 0xf,
 };
 
-static inline u8 imx6_is_bmode_from_gpr9(void)
-{
-       return readl(&src_base->gpr10) & IMX6_SRC_GPR10_BMODE;
-}
-
 u32 imx6_src_get_boot_mode(void);
 void gpr_init(void);
 
index b8d8d12..d18e3c7 100644 (file)
@@ -118,7 +118,7 @@ void boot_mode_apply(unsigned cfg_val)
 #if defined(CONFIG_MX6)
 u32 imx6_src_get_boot_mode(void)
 {
-       if (imx6_is_bmode_from_gpr9())
+       if (readl(&src_base->gpr10) & IMX6_SRC_GPR10_BMODE)
                return readl(&src_base->gpr9);
        else
                return readl(&src_base->sbmr1);