Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

[POWERPC] Add of_device_is_available function

IEEE 1275 defined a standard "status" property to indicate the operational
status of a device. The property has four possible values: okay, disabled,
fail, fail-xxx. The absence of this property means the operational status
of the device is unknown or okay.

This adds a function called of_device_is_available that checks the state
of the status property of a device. If the property is absent or set to
either "okay" or "ok", it returns 1. Otherwise it returns 0.

Signed-off-by: Josh Boyer <jwboyer@linux.vnet.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>

authored by

Josh Boyer and committed by
Paul Mackerras
834d97d4 6ccf61f9

+27
+26
drivers/of/base.c
··· 117 117 EXPORT_SYMBOL(of_device_is_compatible); 118 118 119 119 /** 120 + * of_device_is_available - check if a device is available for use 121 + * 122 + * @device: Node to check for availability 123 + * 124 + * Returns 1 if the status property is absent or set to "okay" or "ok", 125 + * 0 otherwise 126 + */ 127 + int of_device_is_available(const struct device_node *device) 128 + { 129 + const char *status; 130 + int statlen; 131 + 132 + status = of_get_property(device, "status", &statlen); 133 + if (status == NULL) 134 + return 1; 135 + 136 + if (statlen > 0) { 137 + if (!strcmp(status, "okay") || !strcmp(status, "ok")) 138 + return 1; 139 + } 140 + 141 + return 0; 142 + } 143 + EXPORT_SYMBOL(of_device_is_available); 144 + 145 + /** 120 146 * of_get_parent - Get a node's parent if any 121 147 * @node: Node to get parent 122 148 *
+1
include/linux/of.h
··· 62 62 int *lenp); 63 63 extern int of_device_is_compatible(const struct device_node *device, 64 64 const char *); 65 + extern int of_device_is_available(const struct device_node *device); 65 66 extern const void *of_get_property(const struct device_node *node, 66 67 const char *name, 67 68 int *lenp);