]> Pileus Git - ~andy/linux/blobdiff - drivers/of/device.c
Merge branch 'akpm' (Andrew's patch-bomb)
[~andy/linux] / drivers / of / device.c
index 62b4b32ac8878eb13ca06ab57cc014a4ba843dfe..4c74e4fc5a5190857be5eaa749b82284ee8a2fb1 100644 (file)
@@ -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;