diff options
author | David S. Miller <davem@sunset.davemloft.net> | 2006-06-22 06:07:29 (GMT) |
---|---|---|
committer | David S. Miller <davem@sunset.davemloft.net> | 2006-06-24 06:15:15 (GMT) |
commit | 6d307724cb6a6b8466cad4fdf13d8a409bc2433f (patch) | |
tree | 66809731d2a7257f23b8583c69b7bd71a83d634c | |
parent | 6760d28bc691bb255c501c9b680f2fc1162258b2 (diff) | |
download | linux-6d307724cb6a6b8466cad4fdf13d8a409bc2433f.tar.xz |
[SPARC64]: Add of_getintprop_default().
This encodes a common idiomatic coding pattern used when
dealing with integer properties.
Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r-- | arch/sparc64/kernel/prom.c | 12 | ||||
-rw-r--r-- | include/asm-sparc64/prom.h | 3 |
2 files changed, 15 insertions, 0 deletions
diff --git a/arch/sparc64/kernel/prom.c b/arch/sparc64/kernel/prom.c index fd46e94..0a32b10 100644 --- a/arch/sparc64/kernel/prom.c +++ b/arch/sparc64/kernel/prom.c @@ -104,6 +104,18 @@ struct property *of_find_property(struct device_node *np, const char *name, return pp; } +int of_getintprop_default(struct device_node *np, const char *name, int def) +{ + struct property *prop; + int len; + + prop = of_find_property(np, name, &len); + if (!prop || len != 4) + return def; + + return *(int *) prop->value; +} + static unsigned int prom_early_allocated; static void * __init prom_early_alloc(unsigned long size) diff --git a/include/asm-sparc64/prom.h b/include/asm-sparc64/prom.h index eb75d3c..d0187b3 100644 --- a/include/asm-sparc64/prom.h +++ b/include/asm-sparc64/prom.h @@ -82,6 +82,9 @@ extern struct device_node *of_get_next_child(const struct device_node *node, extern struct property *of_find_property(struct device_node *np, const char *name, int *lenp); +extern int of_getintprop_default(struct device_node *np, + const char *name, + int def); extern void prom_build_devicetree(void); |