This adds a new function class_kobject_create_and_add() that creates a directory in the /sys/class/<class>. This function is required to create the /sys/class/leds/triggers directory that contains all available LED triggers. Cc: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> Cc: "Rafael J. Wysocki" <rafael@xxxxxxxxxx> Cc: Jacek Anaszewski <jacek.anaszewski@xxxxxxxxx> Cc: Pavel Machek <pavel@xxxxxx> Cc: Dan Murphy <dmurphy@xxxxxx> Signed-off-by: Akinobu Mita <akinobu.mita@xxxxxxxxx> --- drivers/base/class.c | 7 +++++++ include/linux/device.h | 3 +++ 2 files changed, 10 insertions(+) diff --git a/drivers/base/class.c b/drivers/base/class.c index d8a6a58..f4c53e7 100644 --- a/drivers/base/class.c +++ b/drivers/base/class.c @@ -104,6 +104,13 @@ void class_remove_file_ns(struct class *cls, const struct class_attribute *attr, sysfs_remove_file_ns(&cls->p->subsys.kobj, &attr->attr, ns); } +struct kobject *class_kobject_create_and_add(const char *name, + struct class *cls) +{ + return kobject_create_and_add(name, &cls->p->subsys.kobj); +} +EXPORT_SYMBOL_GPL(class_kobject_create_and_add); + static struct class *class_get(struct class *cls) { if (cls) diff --git a/include/linux/device.h b/include/linux/device.h index 6717ade..335e901 100644 --- a/include/linux/device.h +++ b/include/linux/device.h @@ -505,6 +505,9 @@ static inline void class_remove_file(struct class *class, return class_remove_file_ns(class, attr, NULL); } +struct kobject * __must_check class_kobject_create_and_add(const char *name, + struct class *cls); + /* Simple class attribute that is just a static string */ struct class_attribute_string { struct class_attribute attr; -- 2.7.4