Thread (119 messages) 119 messages, 7 authors, 2021-08-26

Re: [PATCH v8 01/34] opp: Add dev_pm_opp_sync() helper

From: Ulf Hansson <hidden>
Date: 2021-08-18 09:42:10
Also in: dri-devel, linux-clk, linux-devicetree, linux-media, linux-mmc, linux-pwm, linux-spi, linux-staging, linux-tegra, linux-usb, lkml

On Wed, 18 Aug 2021 at 11:14, Viresh Kumar [off-list ref] wrote:
On 18-08-21, 10:29, Ulf Hansson wrote:
quoted
Me and Dmitry discussed adding a new genpd callback for this. I agreed
that it seems like a reasonable thing to add, if he insists.

The intent was to invoke the new callback from __genpd_dev_pm_attach()
when the device has been attached to its genpd. This allows the
callback, to invoke clk_get_rate() and then dev_pm_opp_set_rate(), to
update the vote according to the current state of the HW.
I wouldn't call dev_pm_opp_set_rate() from there, since it means
configure and enable (both) for different resources, clk, regulator,
genpd, etc..
Right, good point!

dev_pm_opp_set_rate() is best called from consumer drivers, as they
need to be in control.
What we need here is just configure. So something like this then:

- genpd->get_performance_state()
  -> dev_pm_opp_get_current_opp() //New API
  -> dev_pm_genpd_set_performance_state(dev, current_opp->pstate);

This can be done just once from probe() then.
How would dev_pm_opp_get_current_opp() work? Do you have a suggestion?
quoted
I am not sure if/why that approach seemed insufficient?

Another option to solve the problem, I think, is simply to patch
drivers to let them call dev_pm_opp_set_rate() during ->probe(), this
should synchronize the HW state too.
Dmitry already mentioned that this will make the device start
consuming power, and he doesn't want that, else we need an explicit
disble call as well.
I am sure I understand the problem. When a device is getting probed,
it needs to consume power, how else can the corresponding driver
successfully probe it?
--
viresh
Kind regards
Uffe
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help