Re: Patch "regulator: core: Replace direct ops->enable usage" has been added to the 3.4-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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 <stable@xxxxxxxxxxxxxxx> 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 <mpa@xxxxxxxxxxxxxx>
> Date: Thu, 20 Feb 2014 17:36:03 +0100
> Subject: regulator: core: Replace direct ops->enable usage
> 
> From: Markus Pargmann <mpa@xxxxxxxxxxxxxx>
> 
> 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 <mpa@xxxxxxxxxxxxxx>
> Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
> Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
> 
> 
> ---
>  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 mpa@xxxxxxxxxxxxxx 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 majordomo@xxxxxxxxxxxxxxx
> 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 majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]