[POWERPC] Define of_read_ulong helper
There are various places where we want to extract an unsigned long value from a device-tree property that can be 1 or 2 cells in length. This replaces some open-coded calculations, and one place where we assumed without checking that properties were the length we wanted, with a little of_read_ulong() helper. Signed-off-by: Paul Mackerras <paulus@samba.org>
This commit is contained in:
@@ -757,24 +757,9 @@ static int __init early_init_dt_scan_root(unsigned long node,
|
||||
static unsigned long __init dt_mem_next_cell(int s, cell_t **cellp)
|
||||
{
|
||||
cell_t *p = *cellp;
|
||||
unsigned long r;
|
||||
|
||||
/* Ignore more than 2 cells */
|
||||
while (s > sizeof(unsigned long) / 4) {
|
||||
p++;
|
||||
s--;
|
||||
}
|
||||
r = *p++;
|
||||
#ifdef CONFIG_PPC64
|
||||
if (s > 1) {
|
||||
r <<= 32;
|
||||
r |= *(p++);
|
||||
s--;
|
||||
}
|
||||
#endif
|
||||
|
||||
*cellp = p;
|
||||
return r;
|
||||
*cellp = p + s;
|
||||
return of_read_ulong(p, s);
|
||||
}
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user