[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