diff options
Diffstat (limited to 'arch/arm/mach-imx')
-rw-r--r-- | arch/arm/mach-imx/imx50.c | 2 | ||||
-rw-r--r-- | arch/arm/mach-imx/imx53.c | 2 | ||||
-rw-r--r-- | arch/arm/mach-imx/include/mach/vf610.h | 7 |
3 files changed, 10 insertions, 1 deletions
diff --git a/arch/arm/mach-imx/imx50.c b/arch/arm/mach-imx/imx50.c index 20670a7446..e1a743f403 100644 --- a/arch/arm/mach-imx/imx50.c +++ b/arch/arm/mach-imx/imx50.c @@ -21,6 +21,8 @@ static int imx50_silicon_revision(void) u32 rev; u32 mx50_silicon_revision; + OPTIMIZER_HIDE_VAR(rom); + rev = readl(rom + SI_REV); switch (rev) { case 0x10: diff --git a/arch/arm/mach-imx/imx53.c b/arch/arm/mach-imx/imx53.c index 3906a48917..e5da326a7f 100644 --- a/arch/arm/mach-imx/imx53.c +++ b/arch/arm/mach-imx/imx53.c @@ -21,6 +21,8 @@ static int imx53_silicon_revision(void) u32 rev; u32 mx53_silicon_revision; + OPTIMIZER_HIDE_VAR(rom); + rev = readl(rom + SI_REV); switch (rev) { case 0x10: diff --git a/arch/arm/mach-imx/include/mach/vf610.h b/arch/arm/mach-imx/include/mach/vf610.h index 6de300a2a0..505aab0211 100644 --- a/arch/arm/mach-imx/include/mach/vf610.h +++ b/arch/arm/mach-imx/include/mach/vf610.h @@ -15,6 +15,7 @@ #define VF610_CPUTYPE_VF510 0x510 #define VF610_CPUTYPE_VF500 0x500 +#define VF610_ROM_BASE_ADDR 0x0 #define VF610_ROM_VERSION_OFFSET 0x80 static inline int __vf610_cpu_type(void) @@ -39,6 +40,10 @@ static inline int vf610_cpu_type(void) static inline int vf610_cpu_revision(void) { + void __iomem *rom = IOMEM(VF610_ROM_BASE_ADDR); + + OPTIMIZER_HIDE_VAR(rom); + if (!cpu_is_vf610()) return IMX_CHIP_REV_UNKNOWN; @@ -47,7 +52,7 @@ static inline int vf610_cpu_revision(void) * silicon revision on VFxxx cpus, so we just report Mask ROM * version instead */ - return readl(VF610_ROM_VERSION_OFFSET) & 0xff; + return readl(rom + VF610_ROM_VERSION_OFFSET) & 0xff; } u64 vf610_uid(void); |