|
@@ -82,52 +82,3 @@ struct of_device *of_device_alloc(struct device_node *np,
|
|
|
return dev;
|
|
|
}
|
|
|
EXPORT_SYMBOL(of_device_alloc);
|
|
|
-
|
|
|
-int of_device_uevent(struct device *dev, struct kobj_uevent_env *env)
|
|
|
-{
|
|
|
- struct of_device *ofdev;
|
|
|
- const char *compat;
|
|
|
- int seen = 0, cplen, sl;
|
|
|
-
|
|
|
- if (!dev)
|
|
|
- return -ENODEV;
|
|
|
-
|
|
|
- ofdev = to_of_device(dev);
|
|
|
-
|
|
|
- if (add_uevent_var(env, "OF_NAME=%s", ofdev->dev.of_node->name))
|
|
|
- return -ENOMEM;
|
|
|
-
|
|
|
- if (add_uevent_var(env, "OF_TYPE=%s", ofdev->dev.of_node->type))
|
|
|
- return -ENOMEM;
|
|
|
-
|
|
|
- /* 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(ofdev->dev.of_node, "compatible", &cplen);
|
|
|
- while (compat && *compat && cplen > 0) {
|
|
|
- if (add_uevent_var(env, "OF_COMPATIBLE_%d=%s", seen, compat))
|
|
|
- return -ENOMEM;
|
|
|
-
|
|
|
- sl = strlen (compat) + 1;
|
|
|
- compat += sl;
|
|
|
- cplen -= sl;
|
|
|
- seen++;
|
|
|
- }
|
|
|
-
|
|
|
- if (add_uevent_var(env, "OF_COMPATIBLE_N=%d", seen))
|
|
|
- return -ENOMEM;
|
|
|
-
|
|
|
- /* modalias is trickier, we add it in 2 steps */
|
|
|
- if (add_uevent_var(env, "MODALIAS="))
|
|
|
- return -ENOMEM;
|
|
|
- sl = of_device_get_modalias(ofdev, &env->buf[env->buflen-1],
|
|
|
- sizeof(env->buf) - env->buflen);
|
|
|
- if (sl >= (sizeof(env->buf) - env->buflen))
|
|
|
- return -ENOMEM;
|
|
|
- env->buflen += sl;
|
|
|
-
|
|
|
- return 0;
|
|
|
-}
|
|
|
-EXPORT_SYMBOL(of_device_uevent);
|
|
|
-EXPORT_SYMBOL(of_device_get_modalias);
|