From 2bec52a4b9edf7e57ea0b6d117f1d0702f413ccb Mon Sep 17 00:00:00 2001 From: Tirupathi Reddy Date: Thu, 30 Nov 2017 15:23:31 +0530 Subject: [PATCH] regulator: core: fix debugfs file creation Fix debugfs file creation for the regulators that are being registered before their supplies. CRs-Fixed: 2155219 Change-Id: I7ce85b8c3706601f33d1e25fd5b16f11a6f05ad2 Signed-off-by: Tirupathi Reddy --- drivers/regulator/core.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/drivers/regulator/core.c b/drivers/regulator/core.c index e4631170e1ca..1f6063560e59 100644 --- a/drivers/regulator/core.c +++ b/drivers/regulator/core.c @@ -4184,6 +4184,7 @@ static void rdev_deinit_debugfs(struct regulator_dev *rdev) debugfs_remove_recursive(rdev->debugfs); if (rdev->debug_consumer) rdev->debug_consumer->debugfs = NULL; + rdev->debugfs = NULL; regulator_put(rdev->debug_consumer); } } @@ -4225,9 +4226,10 @@ static void rdev_init_debugfs(struct regulator_dev *rdev) regulator = regulator_get(NULL, rdev_get_name(rdev)); if (IS_ERR(regulator)) { - debugfs_remove_recursive(rdev->debugfs); - rdev_err(rdev, "regulator get failed, ret=%ld\n", - PTR_ERR(regulator)); + rdev_deinit_debugfs(rdev); + if (PTR_ERR(regulator) != -EPROBE_DEFER) + rdev_err(rdev, "regulator get failed, ret=%ld\n", + PTR_ERR(regulator)); return; } rdev->debug_consumer = regulator;