On Thu, Mar 20, 2014 at 01:45:08AM +0000, Greg Kroah-Hartman wrote:
> 
> This is a note to let you know that I've just added the patch titled
> 
>     regulator: core: Replace direct ops->enable usage
> 
> to the 3.4-stable tree which can be found at:
>     
> http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
> 
> The filename of the patch is:
>      regulator-core-replace-direct-ops-enable-usage.patch
> and it can be found in the queue-3.4 subdirectory.
> 
> If you, or anyone else, feels it should not be added to the stable tree,
> please let <[email protected]> know about it.
> 

I'm not sure this patch is appropriate for the 3.4 kernel as it is tagged
for 3.10+ kernels.

Cheers,
--
Luís

> 
> From 30c219710358c5cca2f8bd2e9e547c6aadf7cf8b Mon Sep 17 00:00:00 2001
> From: Markus Pargmann <[email protected]>
> Date: Thu, 20 Feb 2014 17:36:03 +0100
> Subject: regulator: core: Replace direct ops->enable usage
> 
> From: Markus Pargmann <[email protected]>
> 
> commit 30c219710358c5cca2f8bd2e9e547c6aadf7cf8b upstream.
> 
> There are some direct ops->enable in the regulator core driver. This is
> a potential issue as the function _regulator_do_enable() handles gpio
> regulators and the normal ops->enable calls. These gpio regulators are
> simply ignored when ops->enable is called directly.
> 
> One possible bug is that boot-on and always-on gpio regulators are not
> enabled on registration.
> 
> This patch replaces all ops->enable calls by _regulator_do_enable.
> 
> [Handle missing enable operations -- broonie]
> 
> Signed-off-by: Markus Pargmann <[email protected]>
> Signed-off-by: Mark Brown <[email protected]>
> Signed-off-by: Greg Kroah-Hartman <[email protected]>
> 
> 
> ---
>  drivers/regulator/core.c |   14 +++++++-------
>  1 file changed, 7 insertions(+), 7 deletions(-)
> 
> --- a/drivers/regulator/core.c
> +++ b/drivers/regulator/core.c
> @@ -894,6 +894,8 @@ static int machine_constraints_voltage(s
>       return 0;
>  }
>  
> +static int _regulator_do_enable(struct regulator_dev *rdev);
> +
>  /**
>   * set_machine_constraints - sets regulator constraints
>   * @rdev: regulator source
> @@ -950,10 +952,9 @@ static int set_machine_constraints(struc
>       /* If the constraints say the regulator should be on at this point
>        * and we have control then make sure it is enabled.
>        */
> -     if ((rdev->constraints->always_on || rdev->constraints->boot_on) &&
> -         ops->enable) {
> -             ret = ops->enable(rdev);
> -             if (ret < 0) {
> +     if (rdev->constraints->always_on || rdev->constraints->boot_on) {
> +             ret = _regulator_do_enable(rdev);
> +             if (ret < 0 && ret != -EINVAL) {
>                       rdev_err(rdev, "failed to enable\n");
>                       goto out;
>               }
> @@ -3061,9 +3062,8 @@ int regulator_suspend_finish(void)
>               struct regulator_ops *ops = rdev->desc->ops;
>  
>               mutex_lock(&rdev->mutex);
> -             if ((rdev->use_count > 0  || rdev->constraints->always_on) &&
> -                             ops->enable) {
> -                     error = ops->enable(rdev);
> +             if (rdev->use_count > 0  || rdev->constraints->always_on) {
> +                     error = _regulator_do_enable(rdev);
>                       if (error)
>                               ret = error;
>               } else {
> 
> 
> Patches currently in stable-queue which might be from [email protected] are
> 
> queue-3.4/regulator-core-replace-direct-ops-enable-usage.patch
> --
> To unsubscribe from this list: send the line "unsubscribe stable" in
> the body of a message to [email protected]
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line "unsubscribe stable" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to