Merge tag 'ipsec-2023-10-17' of git://git.kernel.org/pub/scm/linux/kernel/git/klasser...
[platform/kernel/linux-starfive.git] / drivers / regulator / core.c
index 698ab7f..3137e40 100644 (file)
@@ -1911,19 +1911,17 @@ static struct regulator *create_regulator(struct regulator_dev *rdev,
 
        if (err != -EEXIST)
                regulator->debugfs = debugfs_create_dir(supply_name, rdev->debugfs);
-       if (!regulator->debugfs) {
+       if (IS_ERR(regulator->debugfs))
                rdev_dbg(rdev, "Failed to create debugfs directory\n");
-       } else {
-               debugfs_create_u32("uA_load", 0444, regulator->debugfs,
-                                  &regulator->uA_load);
-               debugfs_create_u32("min_uV", 0444, regulator->debugfs,
-                                  &regulator->voltage[PM_SUSPEND_ON].min_uV);
-               debugfs_create_u32("max_uV", 0444, regulator->debugfs,
-                                  &regulator->voltage[PM_SUSPEND_ON].max_uV);
-               debugfs_create_file("constraint_flags", 0444,
-                                   regulator->debugfs, regulator,
-                                   &constraint_flags_fops);
-       }
+
+       debugfs_create_u32("uA_load", 0444, regulator->debugfs,
+                          &regulator->uA_load);
+       debugfs_create_u32("min_uV", 0444, regulator->debugfs,
+                          &regulator->voltage[PM_SUSPEND_ON].min_uV);
+       debugfs_create_u32("max_uV", 0444, regulator->debugfs,
+                          &regulator->voltage[PM_SUSPEND_ON].max_uV);
+       debugfs_create_file("constraint_flags", 0444, regulator->debugfs,
+                           regulator, &constraint_flags_fops);
 
        /*
         * Check now if the regulator is an always on regulator - if
@@ -5256,10 +5254,8 @@ static void rdev_init_debugfs(struct regulator_dev *rdev)
        }
 
        rdev->debugfs = debugfs_create_dir(rname, debugfs_root);
-       if (IS_ERR(rdev->debugfs)) {
-               rdev_warn(rdev, "Failed to create debugfs directory\n");
-               return;
-       }
+       if (IS_ERR(rdev->debugfs))
+               rdev_dbg(rdev, "Failed to create debugfs directory\n");
 
        debugfs_create_u32("use_count", 0444, rdev->debugfs,
                           &rdev->use_count);
@@ -5546,6 +5542,8 @@ regulator_register(struct device *dev,
                goto rinse;
        }
        device_initialize(&rdev->dev);
+       dev_set_drvdata(&rdev->dev, rdev);
+       rdev->dev.class = &regulator_class;
        spin_lock_init(&rdev->err_lock);
 
        /*
@@ -5607,11 +5605,9 @@ regulator_register(struct device *dev,
                rdev->supply_name = regulator_desc->supply_name;
 
        /* register with sysfs */
-       rdev->dev.class = &regulator_class;
        rdev->dev.parent = config->dev;
        dev_set_name(&rdev->dev, "regulator.%lu",
                    (unsigned long) atomic_inc_return(&regulator_no));
-       dev_set_drvdata(&rdev->dev, rdev);
 
        /* set regulator constraints */
        if (init_data)
@@ -5728,15 +5724,11 @@ wash:
        mutex_lock(&regulator_list_mutex);
        regulator_ena_gpio_free(rdev);
        mutex_unlock(&regulator_list_mutex);
-       put_device(&rdev->dev);
-       rdev = NULL;
 clean:
        if (dangling_of_gpiod)
                gpiod_put(config->ena_gpiod);
-       if (rdev && rdev->dev.of_node)
-               of_node_put(rdev->dev.of_node);
-       kfree(rdev);
        kfree(config);
+       put_device(&rdev->dev);
 rinse:
        if (dangling_cfg_gpiod)
                gpiod_put(cfg->ena_gpiod);
@@ -6179,7 +6171,7 @@ static int __init regulator_init(void)
 
        debugfs_root = debugfs_create_dir("regulator", NULL);
        if (IS_ERR(debugfs_root))
-               pr_warn("regulator: Failed to create debugfs directory\n");
+               pr_debug("regulator: Failed to create debugfs directory\n");
 
 #ifdef CONFIG_DEBUG_FS
        debugfs_create_file("supply_map", 0444, debugfs_root, NULL,