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
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