On Thu, Nov 12, 2020 at 10:16:14PM +0300, Dmitry Osipenko wrote:
12.11.2020 20:16, Mark Brown пишет:
quoted
On Thu, Nov 12, 2020 at 07:59:36PM +0300, Dmitry Osipenko wrote:
quoted
quoted
Also, some device-trees won't have that regulator anyways because board
schematics isn't available, and thus, we can't fix them.
quoted
This is what dummy supplies are for?
But it's not allowed to change voltage of a dummy regulator, is it
intentional?
Of course not, we can't know if the requested new voltage is valid - the
driver would have to have explict support for handling situations where
it's not possible to change the voltage (which it can detect through
enumerating the values it wants to set at startup).
[Requesting the same supply multiple times]
quoted
So there's no known obstacle to putting enumeration of supported
voltages into the OPP core then? I'm a bit confused here.
It's an obstacle if both OPP and device driver need to get the same
regulator. Like in the case of this DRM driver, which need to control
the voltage instead of allowing OPP core to do it.
It wasn't entirely deliberate but the warnings have proven useful in
catching bugs (eg, leaked regulator requests). The general thought is
that if two things both claim to control the same supply on a consumer
then they really ought to be coordinating with each other.
Please notice that devm_tegra_dc_opp_table_init() of this patch doesn't
use dev_pm_opp_set_regulators(), which would allow OPP core to filter
out unsupported OPPs. But then OPP core will need need to get an already
requested regulator and this doesn't work well.
There is nothing stopping us adding a variant of that call which passes
in the regulators that were acquired by the caller rather than having
the OPP core do the requesting, or equally the OPP core could provide a
mechanism for the caller to get the regulators that were requested.
quoted
Ah, so each board duplicates the OPP tables then, or there's an
expectation that if there's some limit then they'll copy and modify the
table? If that's the case then it's a bit redundant to do filtering
indeed.
I think this is not strictly defined. Either way will work, although
perhaps it should be more preferred that unsupported OPPs aren't present
in a device-tree.
OTOH that does mean that if there's an updated information on OPPs (new
ones added, old ones determined to be unstable) then you can't just
update a central place. It depends if the OPPs are thought of as
describing the SoC or the system as a whole I guess.