Thread (105 messages) 105 messages, 10 authors, 2020-12-22

Re: [PATCH v1 11/30] drm/tegra: dc: Support OPP and SoC core voltage scaling

From: Dmitry Osipenko <digetx@gmail.com>
Date: 2020-11-12 16:59:43
Also in: dri-devel, linux-media, linux-mmc, linux-pwm, linux-samsung-soc, linux-tegra, linux-usb, lkml

11.11.2020 14:55, Mark Brown пишет:
On Wed, Nov 11, 2020 at 12:23:41AM +0300, Dmitry Osipenko wrote:
quoted
10.11.2020 23:32, Mark Brown пишет:
quoted
quoted
quoted
quoted
+	if (!device_property_present(dc->dev, "core-supply"))
+		return;
quoted
quoted
quoted
This is a potentially heavy operation, so I think we should avoid that
here. How about you use devm_regulator_get_optional() in ->probe()? That
returns -ENODEV if no regulator was specified, in which case you can set
dc->core_reg = NULL and use that as the condition here.
quoted
quoted
Or enumerate the configurable voltages after getting the regulator and
handle that appropriately which would be more robust in case there's
missing or unusual constraints.
quoted
I already changed that code to use regulator_get_optional() for v2.
That doesn't look entirely appropriate given that the core does most
likely require some kind of power to operate.
We will need to do this because older DTBs won't have that regulator and
we want to keep them working.

Also, some device-trees won't have that regulator anyways because board
schematics isn't available, and thus, we can't fix them.
quoted
Regarding the enumerating supported voltage.. I think this should be
done by the OPP core, but regulator core doesn't work well if
regulator_get() is invoked more than one time for the same device, at
least there is a loud debugfs warning about an already existing
I don't understand why this would be an issue - if nothing else the core
could just offer an interface to trigger the check.
It's not an issue, I just described what happens when device driver
tries to get a regulator twice.

There was an issue once that check is added to the regulator core code.
But perhaps not worth to discuss it for now because I don't remember
details.
quoted
directory for a regulator. It's easy to check whether the debug
directory exists before creating it, like thermal framework does it for
example, but then there were some other more difficult issues.. I don't
recall what they were right now. Perhaps will be easier to simply get a
error from regulator_set_voltage() for now because it shouldn't ever
happen in practice, unless device-tree has wrong constraints.
The constraints might not be wrong, there might be some board which has
a constraint somewhere for 
In this case board's DT shouldn't specify unsupportable OPPs.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help