On Wed, Mar 05, 2014 at 10:22:52AM +0100, Krzysztof Kozlowski wrote:

> +     ret = regmap_read(rdev->regmap, rdev->desc->enable_reg, &data);
> +     if (ret < 0)
> +             return ret;
> +
> +     /*
> +      * Don't enable suspend mode if regulator is already disabled because
> +      * this would effectively for a short time turn on the regulator after
> +      * resuming.
> +      */
> +     if (!(data & rdev->desc->enable_mask))
> +             return 0;
> +
> +     return regmap_update_bits(rdev->regmap, rdev->desc->enable_reg,
> +                     rdev->desc->enable_mask, S2MPS14_ENABLE_SUSPEND);
> +}

What happens if the regulator gets enabled between this being called
and the device suspending?  I'd expect this to be storing the state and
then changing what gets written during enable and disable operations (if
the hardware does what I think it does).

Attachment: signature.asc
Description: Digital signature

Reply via email to