aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/base/class.c17
-rw-r--r--drivers/base/core.c17
-rw-r--r--include/linux/device.h2
3 files changed, 17 insertions, 19 deletions
diff --git a/drivers/base/class.c b/drivers/base/class.c
index 0ff267a248db..2e705f6abb4c 100644
--- a/drivers/base/class.c
+++ b/drivers/base/class.c
@@ -893,23 +893,6 @@ void class_interface_unregister(struct class_interface *class_intf)
893 class_put(parent); 893 class_put(parent);
894} 894}
895 895
896int virtual_device_parent(struct device *dev)
897{
898 if (!dev->class)
899 return -ENODEV;
900
901 if (!dev->class->virtual_dir) {
902 static struct kobject *virtual_dir = NULL;
903
904 if (!virtual_dir)
905 virtual_dir = kobject_add_dir(&devices_subsys.kset.kobj, "virtual");
906 dev->class->virtual_dir = kobject_add_dir(virtual_dir, dev->class->name);
907 }
908
909 dev->kobj.parent = dev->class->virtual_dir;
910 return 0;
911}
912
913int __init classes_init(void) 896int __init classes_init(void)
914{ 897{
915 int retval; 898 int retval;
diff --git a/drivers/base/core.c b/drivers/base/core.c
index d4f35d8902a2..dbcd40b987d2 100644
--- a/drivers/base/core.c
+++ b/drivers/base/core.c
@@ -384,6 +384,23 @@ void device_initialize(struct device *dev)
384 device_init_wakeup(dev, 0); 384 device_init_wakeup(dev, 0);
385} 385}
386 386
387static int virtual_device_parent(struct device *dev)
388{
389 if (!dev->class)
390 return -ENODEV;
391
392 if (!dev->class->virtual_dir) {
393 static struct kobject *virtual_dir = NULL;
394
395 if (!virtual_dir)
396 virtual_dir = kobject_add_dir(&devices_subsys.kset.kobj, "virtual");
397 dev->class->virtual_dir = kobject_add_dir(virtual_dir, dev->class->name);
398 }
399
400 dev->kobj.parent = dev->class->virtual_dir;
401 return 0;
402}
403
387/** 404/**
388 * device_add - add device to device hierarchy. 405 * device_add - add device to device hierarchy.
389 * @dev: device. 406 * @dev: device.
diff --git a/include/linux/device.h b/include/linux/device.h
index b00e02711393..00b29e0c5ce0 100644
--- a/include/linux/device.h
+++ b/include/linux/device.h
@@ -440,8 +440,6 @@ extern struct device *device_create(struct class *cls, struct device *parent,
440 __attribute__((format(printf,4,5))); 440 __attribute__((format(printf,4,5)));
441extern void device_destroy(struct class *cls, dev_t devt); 441extern void device_destroy(struct class *cls, dev_t devt);
442 442
443extern int virtual_device_parent(struct device *dev);
444
445/* 443/*
446 * Platform "fixup" functions - allow the platform to have their say 444 * Platform "fixup" functions - allow the platform to have their say
447 * about devices and actions that the general device layer doesn't 445 * about devices and actions that the general device layer doesn't