|
@@ -128,39 +128,41 @@ ssize_t of_device_get_modalias(struct device *dev, char *str, ssize_t len)
|
|
|
/**
|
|
|
* of_device_uevent - Display OF related uevent information
|
|
|
*/
|
|
|
-int of_device_uevent(struct device *dev, struct kobj_uevent_env *env)
|
|
|
+void of_device_uevent(struct device *dev, struct kobj_uevent_env *env)
|
|
|
{
|
|
|
const char *compat;
|
|
|
int seen = 0, cplen, sl;
|
|
|
|
|
|
if ((!dev) || (!dev->of_node))
|
|
|
- return -ENODEV;
|
|
|
-
|
|
|
- if (add_uevent_var(env, "OF_NAME=%s", dev->of_node->name))
|
|
|
- return -ENOMEM;
|
|
|
+ return;
|
|
|
|
|
|
- if (add_uevent_var(env, "OF_TYPE=%s", dev->of_node->type))
|
|
|
- return -ENOMEM;
|
|
|
+ add_uevent_var(env, "OF_NAME=%s", dev->of_node->name);
|
|
|
+ add_uevent_var(env, "OF_FULLNAME=%s", dev->of_node->full_name);
|
|
|
+ if (dev->of_node->type && strcmp("<NULL>", dev->of_node->type) != 0)
|
|
|
+ add_uevent_var(env, "OF_TYPE=%s", dev->of_node->type);
|
|
|
|
|
|
/* Since the compatible field can contain pretty much anything
|
|
|
* it's not really legal to split it out with commas. We split it
|
|
|
* up using a number of environment variables instead. */
|
|
|
-
|
|
|
compat = of_get_property(dev->of_node, "compatible", &cplen);
|
|
|
while (compat && *compat && cplen > 0) {
|
|
|
- if (add_uevent_var(env, "OF_COMPATIBLE_%d=%s", seen, compat))
|
|
|
- return -ENOMEM;
|
|
|
-
|
|
|
+ add_uevent_var(env, "OF_COMPATIBLE_%d=%s", seen, compat);
|
|
|
sl = strlen(compat) + 1;
|
|
|
compat += sl;
|
|
|
cplen -= sl;
|
|
|
seen++;
|
|
|
}
|
|
|
+ add_uevent_var(env, "OF_COMPATIBLE_N=%d", seen);
|
|
|
+}
|
|
|
|
|
|
- if (add_uevent_var(env, "OF_COMPATIBLE_N=%d", seen))
|
|
|
- return -ENOMEM;
|
|
|
+int of_device_uevent_modalias(struct device *dev, struct kobj_uevent_env *env)
|
|
|
+{
|
|
|
+ int sl;
|
|
|
+
|
|
|
+ if ((!dev) || (!dev->of_node))
|
|
|
+ return -ENODEV;
|
|
|
|
|
|
- /* modalias is trickier, we add it in 2 steps */
|
|
|
+ /* Devicetree modalias is tricky, we add it in 2 steps */
|
|
|
if (add_uevent_var(env, "MODALIAS="))
|
|
|
return -ENOMEM;
|
|
|
|