Commit 72a8c24b authored by Viresh Kumar's avatar Viresh Kumar Committed by Greg Kroah-Hartman

greybus: arche-platform: Put APB in reset if of_platform_populate() fails

The current implementation around of_platform_populate() is not so
great. On error, we first print an error message, followed by a success
message and finally we return an error.

And over that we don't undo what we did initially.

This patch puts the APB back into reset and create a separate error
path to make things clear.
Signed-off-by: default avatarViresh Kumar <viresh.kumar@linaro.org>
Reviewed-by: default avatarVaibhav Hiremath <vaibhav.hiremath@linaro.org>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@google.com>
parent 8adf71d1
...@@ -156,13 +156,16 @@ static int arche_platform_probe(struct platform_device *pdev) ...@@ -156,13 +156,16 @@ static int arche_platform_probe(struct platform_device *pdev)
/* probe all childs here */ /* probe all childs here */
ret = of_platform_populate(np, NULL, NULL, dev); ret = of_platform_populate(np, NULL, NULL, dev);
if (ret) if (ret) {
arche_platform_cleanup(arche_pdata);
dev_err(dev, "no child node found\n"); dev_err(dev, "no child node found\n");
return ret;
}
export_gpios(arche_pdata); export_gpios(arche_pdata);
dev_info(dev, "Device registered successfully\n"); dev_info(dev, "Device registered successfully\n");
return ret; return 0;
} }
static int arche_remove_child(struct device *dev, void *unused) static int arche_remove_child(struct device *dev, void *unused)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment