]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - drivers/base/core.c
ARM: dts: imx6qdl: add more pinctrls for pwm
[karo-tx-linux.git] / drivers / base / core.c
index 34abf4d8a45ff4f3f6d25787887a8bc787779133..67b180d855b2c7baf365e5174802581b3c766745 100644 (file)
@@ -455,64 +455,6 @@ static ssize_t online_store(struct device *dev, struct device_attribute *attr,
 }
 static DEVICE_ATTR_RW(online);
 
-static int device_add_attributes(struct device *dev,
-                                struct device_attribute *attrs)
-{
-       int error = 0;
-       int i;
-
-       if (attrs) {
-               for (i = 0; attrs[i].attr.name; i++) {
-                       error = device_create_file(dev, &attrs[i]);
-                       if (error)
-                               break;
-               }
-               if (error)
-                       while (--i >= 0)
-                               device_remove_file(dev, &attrs[i]);
-       }
-       return error;
-}
-
-static void device_remove_attributes(struct device *dev,
-                                    struct device_attribute *attrs)
-{
-       int i;
-
-       if (attrs)
-               for (i = 0; attrs[i].attr.name; i++)
-                       device_remove_file(dev, &attrs[i]);
-}
-
-static int device_add_bin_attributes(struct device *dev,
-                                    struct bin_attribute *attrs)
-{
-       int error = 0;
-       int i;
-
-       if (attrs) {
-               for (i = 0; attrs[i].attr.name; i++) {
-                       error = device_create_bin_file(dev, &attrs[i]);
-                       if (error)
-                               break;
-               }
-               if (error)
-                       while (--i >= 0)
-                               device_remove_bin_file(dev, &attrs[i]);
-       }
-       return error;
-}
-
-static void device_remove_bin_attributes(struct device *dev,
-                                        struct bin_attribute *attrs)
-{
-       int i;
-
-       if (attrs)
-               for (i = 0; attrs[i].attr.name; i++)
-                       device_remove_bin_file(dev, &attrs[i]);
-}
-
 int device_add_groups(struct device *dev, const struct attribute_group **groups)
 {
        return sysfs_create_groups(&dev->kobj, groups);
@@ -534,18 +476,12 @@ static int device_add_attrs(struct device *dev)
                error = device_add_groups(dev, class->dev_groups);
                if (error)
                        return error;
-               error = device_add_attributes(dev, class->dev_attrs);
-               if (error)
-                       goto err_remove_class_groups;
-               error = device_add_bin_attributes(dev, class->dev_bin_attrs);
-               if (error)
-                       goto err_remove_class_attrs;
        }
 
        if (type) {
                error = device_add_groups(dev, type->groups);
                if (error)
-                       goto err_remove_class_bin_attrs;
+                       goto err_remove_class_groups;
        }
 
        error = device_add_groups(dev, dev->groups);
@@ -563,12 +499,6 @@ static int device_add_attrs(struct device *dev)
  err_remove_type_groups:
        if (type)
                device_remove_groups(dev, type->groups);
- err_remove_class_bin_attrs:
-       if (class)
-               device_remove_bin_attributes(dev, class->dev_bin_attrs);
- err_remove_class_attrs:
-       if (class)
-               device_remove_attributes(dev, class->dev_attrs);
  err_remove_class_groups:
        if (class)
                device_remove_groups(dev, class->dev_groups);
@@ -587,11 +517,8 @@ static void device_remove_attrs(struct device *dev)
        if (type)
                device_remove_groups(dev, type->groups);
 
-       if (class) {
-               device_remove_attributes(dev, class->dev_attrs);
-               device_remove_bin_attributes(dev, class->dev_bin_attrs);
+       if (class)
                device_remove_groups(dev, class->dev_groups);
-       }
 }
 
 static ssize_t dev_show(struct device *dev, struct device_attribute *attr,
@@ -1881,6 +1808,7 @@ EXPORT_SYMBOL_GPL(device_destroy);
  */
 int device_rename(struct device *dev, const char *new_name)
 {
+       struct kobject *kobj = &dev->kobj;
        char *old_device_name = NULL;
        int error;
 
@@ -1888,8 +1816,7 @@ int device_rename(struct device *dev, const char *new_name)
        if (!dev)
                return -EINVAL;
 
-       pr_debug("device: '%s': %s: renaming to '%s'\n", dev_name(dev),
-                __func__, new_name);
+       dev_dbg(dev, "renaming to %s\n", new_name);
 
        old_device_name = kstrdup(dev_name(dev), GFP_KERNEL);
        if (!old_device_name) {
@@ -1898,13 +1825,14 @@ int device_rename(struct device *dev, const char *new_name)
        }
 
        if (dev->class) {
-               error = sysfs_rename_link(&dev->class->p->subsys.kobj,
-                       &dev->kobj, old_device_name, new_name);
+               error = sysfs_rename_link_ns(&dev->class->p->subsys.kobj,
+                                            kobj, old_device_name,
+                                            new_name, kobject_namespace(kobj));
                if (error)
                        goto out;
        }
 
-       error = kobject_rename(&dev->kobj, new_name);
+       error = kobject_rename(kobj, new_name);
        if (error)
                goto out;