[U-Boot] [PATCH v3] linux/compat.h: port lower_32_bits and upper_32_bits from Linux

Wolfgang Denk wd at denx.de
Fri Jun 13 23:36:19 CEST 2014


Dear Lijun Pan,

In message <1402690280-8848-1-git-send-email-Lijun.Pan at freescale.com> you wrote:
> [backport from linux commit 204b885e and 218e180e7]
> 64 bit processors are becomming more and more popular.
> lower_32_bits and upper_32_bits save our labor doing
> shifts/manipulations like (u32)(n) and (u32)((n) >> 32).
> They are good helpers in both little and big endian cases.
> Port these two functions here from Linux:include/linux/kernel.h,
> cater the comment message to little/big endian cases,
> also remove the definition in drivers/usb/host/xhci.h.
> Later on, developers could include linux/compat.h if they want to
> use these two functions.
> 
> Signed-off-by: Lijun Pan <Lijun.Pan at freescale.com>
> ---
> v3: change the comment message for lower_32_bits() and upper_32_bits()
>     change the commit message to argue the necessity of this patch.
> v2: add git SHA of linux kernel tree.

I think it would be better to split this commit into two separate
patches.

One, which in my opinion should be part of a patch series that adds
more users of these functions, would add the new functions.  The other
would then convert the only existing user (drivers/usb/host/xhci.h) to
use these.

But before we convert drivers/usb/host/xhci.h, we should fix the FIXME
there - this looks very much like a bug to me:

1119 static inline void xhci_writeq(__le64 volatile *regs, const u64 val)
1120 {
1121         __u32 *ptr = (__u32 *)regs;
1122         u32 val_lo = lower_32_bits(val);
1123         /* FIXME */
1124         u32 val_hi = 0;

I think this should rather be

	u32 val_hi = upper_32_bits(val);

and I cannot think of any good reason why it is not...

Best regards,

Wolfgang Denk

-- 
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
Der Irrtum wiederholt sich immerfort in der Tat.  Deshalb muß man das
Wahre unermüdlich in Worten wiederholen.                     - Goethe


More information about the U-Boot mailing list