From: xypron.glpk@gmx.de Date: Sat, 15 Apr 2017 14:11:12 +0000 (+0200) Subject: omap3: incorrect logical check in do_emif4_init X-Git-Tag: v2017.09-rc2~38 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=b730ff3fd65c8d1c33f1c05ca3fbab579a86abb4;p=u-boot omap3: incorrect logical check in do_emif4_init ((readl(&emif4_base->sdram_iodft_tlgc) & (1<<10)) == 0x01) is always false. This does not match the comment /*Wait till that bit clears*/ The problem was indicated by cppcheck. I do not have the hardware to test if the code change below leads to a correct system behavior. Signed-off-by: Heinrich Schuchardt Reviewed-by: Simon Glass --- diff --git a/arch/arm/mach-omap2/omap3/emif4.c b/arch/arm/mach-omap2/omap3/emif4.c index d540cf08d2..8197e7b032 100644 --- a/arch/arm/mach-omap2/omap3/emif4.c +++ b/arch/arm/mach-omap2/omap3/emif4.c @@ -76,7 +76,7 @@ static void do_emif4_init(void) regval |= (1<<10); writel(regval, &emif4_base->sdram_iodft_tlgc); /*Wait till that bit clears*/ - while ((readl(&emif4_base->sdram_iodft_tlgc) & (1<<10)) == 0x1); + while ((readl(&emif4_base->sdram_iodft_tlgc) & (1<<10)) != 0x0); /*Re-verify the DDR PHY status*/ while ((readl(&emif4_base->sdram_sts) & (1<<2)) == 0x0);