Re: [PATCH] regulator: core: Keep boot_on regulators powered duringinit
From: Ulf Hansson
Date: Mon Apr 23 2012 - 06:52:12 EST
Hi Mark,
Thanks for a quick reply.
On 04/23/2012 12:18 PM, Mark Brown wrote:
On Mon, Apr 23, 2012 at 11:37:53AM +0200, Ulf Hansson wrote:
Regulators which has boot_on constraints set, will now remain
powered after regulator_init_complete is done.
This would be a bug. All boot_on means is that the regulator was turned
on during boot, the regulator is free to vary after that.
The idea is to prevent the late_init_call "regulator_init_complete" from
disabling a regulator that "recently" were enabled due to it's boot_on
constraints.
In this case we leave the enable->disable operation to be
handled by the regulator consumer instead.
Which would be a bug if the consumer wasn't the thing that took the
reference to the regulator in the first place. Remember, regulators can
be shared so the consumer can't disable a regulator it didn't enable in
the first place (unless it used regulator_get_exclusive() but the use
cases for that are a little suspicious so it'd be worth taking a careful
look before using it). A consumer can't tell if the regulator was left
enabled by the firmware on boot or if it has been enabled by another
consumer.
I realize that using boot_on, which has been around for quite some time
could have problems. If not using the existing boot_on constraint, do
you have an idea of how to accomplish what I want? Should I invent a new
constraint option to be used in regulator_init_complete!?
Kind regards
Ulf Hansson
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/