summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid S. Miller <davem@sunset.davemloft.net>2006-06-22 06:07:29 (GMT)
committerDavid S. Miller <davem@sunset.davemloft.net>2006-06-24 06:15:15 (GMT)
commit6d307724cb6a6b8466cad4fdf13d8a409bc2433f (patch)
tree66809731d2a7257f23b8583c69b7bd71a83d634c
parent6760d28bc691bb255c501c9b680f2fc1162258b2 (diff)
downloadlinux-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.c12
-rw-r--r--include/asm-sparc64/prom.h3
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);