[PATCH] drivers/of: use __be32 types for big-endian device tree data

Jeremy Kerr jeremy.kerr at canonical.com
Tue Sep 14 13:29:52 EST 2010


Hi Timur,

> Does this mean that I should be using be32_to_cpu() whenever I
> dereference a pointer to a u32 in the device tree?  Currently, I do
> this:
> 
> const u32 *iprop;
> const u32 num;
> iprop = of_get_property(np, ...)
> num = *iprop;
> 
> Should I be doing this instead?
> 
> const __be32 *iprop;
> const u32 num;
> iprop = of_get_property(np, ...)
> num = be32_to_cpu(*iprop);

 
If your code will be run on little-endian platforms, you'll need to do
this, yes. It may also be prudent to do this on BE platforms too, as
we'll undoubtedly have someone copy code from one to another. But I
don't think anyone is suggesting that we modify existing BE-only code.

Also, in the example you have given, I think be32_to_cpup(iprop) is
preferred.

Cheers,


Jeremy





More information about the devicetree-discuss mailing list