2010-01-04 15:31:00

by Mark Brown

[permalink] [raw]
Subject: [PATCH 2.6.33] regulator: Specify REGULATOR_CHANGE_STATUS for WM835x LED constraints

The WM8350 LED driver needs to be able to enable and disable the
regulators it is using. Previously the core wasn't properly enforcing
status change constraints so the driver was able to function but this
has always been intended to be required.

Signed-off-by: Mark Brown <[email protected]>
Cc: [email protected]
---
drivers/regulator/wm8350-regulator.c | 4 +++-
1 files changed, 3 insertions(+), 1 deletions(-)

diff --git a/drivers/regulator/wm8350-regulator.c b/drivers/regulator/wm8350-regulator.c
index 1bbff09..e7b89e7 100644
--- a/drivers/regulator/wm8350-regulator.c
+++ b/drivers/regulator/wm8350-regulator.c
@@ -1504,7 +1504,8 @@ int wm8350_register_led(struct wm8350 *wm8350, int lednum, int dcdc, int isink,
led->isink_init.consumer_supplies = &led->isink_consumer;
led->isink_init.constraints.min_uA = 0;
led->isink_init.constraints.max_uA = pdata->max_uA;
- led->isink_init.constraints.valid_ops_mask = REGULATOR_CHANGE_CURRENT;
+ led->isink_init.constraints.valid_ops_mask
+ = REGULATOR_CHANGE_CURRENT | REGULATOR_CHANGE_STATUS;
led->isink_init.constraints.valid_modes_mask = REGULATOR_MODE_NORMAL;
ret = wm8350_register_regulator(wm8350, isink, &led->isink_init);
if (ret != 0) {
@@ -1517,6 +1518,7 @@ int wm8350_register_led(struct wm8350 *wm8350, int lednum, int dcdc, int isink,
led->dcdc_init.num_consumer_supplies = 1;
led->dcdc_init.consumer_supplies = &led->dcdc_consumer;
led->dcdc_init.constraints.valid_modes_mask = REGULATOR_MODE_NORMAL;
+ led->dcdc_init.constraints.valid_ops_mask = REGULATOR_CHANGE_STATUS;
ret = wm8350_register_regulator(wm8350, dcdc, &led->dcdc_init);
if (ret != 0) {
platform_device_put(pdev);
--
1.6.5.7


2010-01-04 17:34:13

by Liam Girdwood

[permalink] [raw]
Subject: Re: [PATCH 2.6.33] regulator: Specify REGULATOR_CHANGE_STATUS for WM835x LED constraints

On Mon, 2010-01-04 at 15:30 +0000, Mark Brown wrote:
> The WM8350 LED driver needs to be able to enable and disable the
> regulators it is using. Previously the core wasn't properly enforcing
> status change constraints so the driver was able to function but this
> has always been intended to be required.
>
> Signed-off-by: Mark Brown <[email protected]>
> Cc: [email protected]
> ---
> drivers/regulator/wm8350-regulator.c | 4 +++-
> 1 files changed, 3 insertions(+), 1 deletions(-)
>
> diff --git a/drivers/regulator/wm8350-regulator.c b/drivers/regulator/wm8350-regulator.c
> index 1bbff09..e7b89e7 100644
> --- a/drivers/regulator/wm8350-regulator.c
> +++ b/drivers/regulator/wm8350-regulator.c
> @@ -1504,7 +1504,8 @@ int wm8350_register_led(struct wm8350 *wm8350, int lednum, int dcdc, int isink,
> led->isink_init.consumer_supplies = &led->isink_consumer;
> led->isink_init.constraints.min_uA = 0;
> led->isink_init.constraints.max_uA = pdata->max_uA;
> - led->isink_init.constraints.valid_ops_mask = REGULATOR_CHANGE_CURRENT;
> + led->isink_init.constraints.valid_ops_mask
> + = REGULATOR_CHANGE_CURRENT | REGULATOR_CHANGE_STATUS;
> led->isink_init.constraints.valid_modes_mask = REGULATOR_MODE_NORMAL;
> ret = wm8350_register_regulator(wm8350, isink, &led->isink_init);
> if (ret != 0) {
> @@ -1517,6 +1518,7 @@ int wm8350_register_led(struct wm8350 *wm8350, int lednum, int dcdc, int isink,
> led->dcdc_init.num_consumer_supplies = 1;
> led->dcdc_init.consumer_supplies = &led->dcdc_consumer;
> led->dcdc_init.constraints.valid_modes_mask = REGULATOR_MODE_NORMAL;
> + led->dcdc_init.constraints.valid_ops_mask = REGULATOR_CHANGE_STATUS;
> ret = wm8350_register_regulator(wm8350, dcdc, &led->dcdc_init);
> if (ret != 0) {
> platform_device_put(pdev);

Applied.

Thanks

Liam