|
@@ -384,6 +384,23 @@ void device_initialize(struct device *dev)
|
|
|
device_init_wakeup(dev, 0);
|
|
|
}
|
|
|
|
|
|
+static int virtual_device_parent(struct device *dev)
|
|
|
+{
|
|
|
+ if (!dev->class)
|
|
|
+ return -ENODEV;
|
|
|
+
|
|
|
+ if (!dev->class->virtual_dir) {
|
|
|
+ static struct kobject *virtual_dir = NULL;
|
|
|
+
|
|
|
+ if (!virtual_dir)
|
|
|
+ virtual_dir = kobject_add_dir(&devices_subsys.kset.kobj, "virtual");
|
|
|
+ dev->class->virtual_dir = kobject_add_dir(virtual_dir, dev->class->name);
|
|
|
+ }
|
|
|
+
|
|
|
+ dev->kobj.parent = dev->class->virtual_dir;
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+
|
|
|
/**
|
|
|
* device_add - add device to device hierarchy.
|
|
|
* @dev: device.
|