2009-10-28 16:30:21

by Linus Walleij

[permalink] [raw]
Subject: [PATCH] Fix some AB3100 regulator issues

This patch will remove surplus register writes on shut down of
LDO D (this magic was not needed), remove an unnecessary (!) error
check and really unregister the regulators when the module is
unloaded.

Signed-off-by: Linus Walleij <[email protected]>
---
drivers/regulator/ab3100.c | 23 ++---------------------
1 files changed, 2 insertions(+), 21 deletions(-)

diff --git a/drivers/regulator/ab3100.c b/drivers/regulator/ab3100.c
index 5da127b..b349db4 100644
--- a/drivers/regulator/ab3100.c
+++ b/drivers/regulator/ab3100.c
@@ -241,24 +241,12 @@ static int ab3100_disable_regulator(struct regulator_dev *reg)
* LDO D is a special regulator. When it is disabled, the entire
* system is shut down. So this is handled specially.
*/
+ pr_info("Called ab3100_disable_regulator\n");
if (abreg->regreg == AB3100_LDO_D) {
- int i;
-
dev_info(&reg->dev, "disabling LDO D - shut down system\n");
- /*
- * Set regulators to default values, ignore any errors,
- * we're going DOWN
- */
- for (i = 0; i < ARRAY_SIZE(ab3100_reg_init_order); i++) {
- (void) ab3100_set_register_interruptible(abreg->ab3100,
- ab3100_reg_init_order[i],
- abreg->plfdata->reg_initvals[i]);
- }
-
/* Setting LDO D to 0x00 cuts the power to the SoC */
return ab3100_set_register_interruptible(abreg->ab3100,
AB3100_LDO_D, 0x00U);
-
}

/*
@@ -607,13 +595,6 @@ static int __init ab3100_regulators_probe(struct platform_device *pdev)
}
}

- if (err) {
- dev_err(&pdev->dev,
- "LDO D regulator initialization failed with error %d\n",
- err);
- return err;
- }
-
/* Register the regulators */
for (i = 0; i < AB3100_NUM_REGULATORS; i++) {
struct ab3100_regulator *reg = &ab3100_regulators[i];
@@ -688,7 +669,7 @@ static __init int ab3100_regulators_init(void)

static __exit void ab3100_regulators_exit(void)
{
- platform_driver_register(&ab3100_regulators_driver);
+ platform_driver_unregister(&ab3100_regulators_driver);
}

subsys_initcall(ab3100_regulators_init);
--
1.6.3.3


2009-10-28 16:37:47

by Mark Brown

[permalink] [raw]
Subject: Re: [PATCH] Fix some AB3100 regulator issues

On Wed, Oct 28, 2009 at 05:30:15PM +0100, Linus Walleij wrote:

> * system is shut down. So this is handled specially.
> */
> + pr_info("Called ab3100_disable_regulator\n");

This looks like debug trace which shouldn't be here. Otherwise the
patch looks OK.

2009-10-28 16:47:47

by Liam Girdwood

[permalink] [raw]
Subject: Re: [PATCH] Fix some AB3100 regulator issues

On Wed, 2009-10-28 at 17:30 +0100, Linus Walleij wrote:
> This patch will remove surplus register writes on shut down of
> LDO D (this magic was not needed), remove an unnecessary (!) error
> check and really unregister the regulators when the module is
> unloaded.
>
> Signed-off-by: Linus Walleij <[email protected]>

Thanks.

Applied.

Liam