24.12.2020 09:51, Viresh Kumar пишет:
On 23-12-20, 23:37, Dmitry Osipenko wrote:
23.12.2020 08:57, Viresh Kumar пишет:
What's wrong with getting the regulator in the driver as well ? Apart from the OPP core ?
The voltage syncing should be done for each consumer regulator individually [1].
Secondly, regulator core doesn't work well today if the same regulator is requested more than one time for the same device.
Hmm...
will return the OPP table regulator in order to allow driver to use the regulator directly. But I'm not sure whether this is a much better option than the opp_sync_regulators() and opp_set_voltage() APIs.
set_voltage() is still fine as there is some data that the OPP core has, but sync_regulator() has nothing to do with OPP core.
And this may lead to more wrapper helpers in the OPP core, which I am afraid of. And so even if it is not the best, I would like the OPP core to provide the data and not get into this. Ofcourse there is an exception to this, opp_set_rate.
The regulator_sync_voltage() should be invoked only if voltage was changed previously [1].
The OPP core already has the info about whether voltage was changed and it provides the necessary locking for both set_voltage() and sync_regulator(). Perhaps I'll need to duplicate that functionality in the PD driver, instead of making it all generic and re-usable by other drivers.
[1] https://elixir.bootlin.com/linux/v5.10.2/source/drivers/regulator/core.c#L41...
Lets do it in the OPP core and see where we go.
Alright, thank you.