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 10:09:44
Also in: dri-devel, linux-clk, linux-devicetree, linux-media, linux-mmc, linux-pm, linux-pwm, linux-spi, linux-staging, linux-tegra, lkml

On Wed, 18 Aug 2021 at 11:50, Viresh Kumar [off-list ref] wrote:
On 18-08-21, 11:41, Ulf Hansson wrote:
quoted
On Wed, 18 Aug 2021 at 11:14, Viresh Kumar [off-list ref] wrote:
quoted
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?
The opp core already has a way of finding current OPP, that's what
Dmitry is trying to use here. It finds it using clk_get_rate(), if
that is zero, it picks the lowest freq possible.
quoted
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?
Dmitry can answer that better, but a device doesn't necessarily need
to consume energy in probe. It can consume bus clock, like APB we
have, but the more energy consuming stuff can be left disabled until
the time a user comes up. Probe will just end up registering the
driver and initializing it.
That's perfectly fine, as then it's likely that it won't vote for an
OPP, but can postpone that as well.

Perhaps the problem is rather that the HW may already carry a non-zero
vote made from a bootloader. If the consumer driver tries to clear
that vote (calling dev_pm_opp_set_rate(dev, 0), for example), it would
still not lead to any updates of the performance state in genpd,
because genpd internally has initialized the performance-state to
zero.

Dmitry?
--
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