Hi, 2012/7/6 Albert ARIBAUD <albert.u.b...@aribaud.net>: > Hi Nobuhiro, > > On Fri, 6 Jul 2012 09:07:30 +0900, Nobuhiro Iwamatsu > <nobuhiro.iwamatsu...@renesas.com> wrote: >> cmp_loop function was used from the structure of register. >> And for the member of this structure, volatile is defined. >> Since a volatile declaration of cmp_loop function is not made >> by argument, made warning by compiler. This fixes this problem. >> >> Signed-off-by: Nobuhiro Iwamatsu <nobuhiro.iwamatsu...@renesas.com> >> --- >> board/kmc/kzm9g/kzm9g.c | 2 +- >> 1 file changed, 1 insertion(+), 1 deletion(-) >> >> diff --git a/board/kmc/kzm9g/kzm9g.c b/board/kmc/kzm9g/kzm9g.c >> index ad72c8d..8d7c61a 100644 >> --- a/board/kmc/kzm9g/kzm9g.c >> +++ b/board/kmc/kzm9g/kzm9g.c >> @@ -48,7 +48,7 @@ DECLARE_GLOBAL_DATA_PTR; >> #define PORT34CR (0xE6051022) >> #define PORT35CR (0xE6051023) >> >> -static int cmp_loop(u32 *addr, u32 data, u32 cmp) >> +static int cmp_loop(volatile u32 *addr, u32 data, u32 cmp) >> { >> int err = -1; >> int timeout = 100; > > I doubt cmp_loop needs this change. Volatile qualifiers do not make > much sense in anything other than actual read or write instructions; > if cmp_loop needs any volatile, it's as casts in its body, not as > qualifiers in its signature. Fix the compiler warning by casting the > actual argument in the *call* to cmp_loop to non-volatile instead. > > (incidentally, you should ask yourself why is the structure, or > structure member, is qualified volatile in the first place; usually > this is the sign that some code should instead use readl or writel > and/or have isb() barriers at strategic places.) >
Thank you for your comment. You are right. I will fix structure member. Best regards, Nobuhiro -- Nobuhiro Iwamatsu iwamatsu at {nigauri.org / debian.org} GPG ID: 40AD1FA6 _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot