Re: [PATCH v2 11/48] opp: Add dev_pm_opp_find_level_ceil()
From: Dmitry Osipenko <digetx@gmail.com>
Date: 2020-12-24 13:01:50
Also in:
dri-devel, linux-clk, linux-media, linux-tegra, lkml
24.12.2020 09:43, Viresh Kumar пишет:
On 23-12-20, 23:37, Dmitry Osipenko wrote:quoted
23.12.2020 07:19, Viresh Kumar пишет:quoted
On 22-12-20, 22:15, Dmitry Osipenko wrote:quoted
22.12.2020 09:42, Viresh Kumar пишет:quoted
On 17-12-20, 21:06, Dmitry Osipenko wrote:quoted
Add a ceil version of the dev_pm_opp_find_level(). It's handy to have if levels don't start from 0 in OPP table and zero usually means a minimal level. Signed-off-by: Dmitry Osipenko <digetx@gmail.com>Why doesn't the exact version work for you here ?The exact version won't find OPP for level=0 if levels don't start with 0, where 0 means that minimal level is desired.Right, but why do you need to send 0 for your platform ?To put power domain into the lowest performance state when device is idling.I see. So you really want to set it to the lowest state or just take the vote out ? Which may end up powering off the domain in the worst case ?
In a device driver I want to set PD to the lowest performance state by removing the performance vote when dev_pm_opp_set_rate(dev, 0) is invoked by the driver. The OPP core already does this, but if OPP levels don't start from 0 in a device-tree for PD, then it currently doesn't work since there is a need to get a rounded-up performance state because dev_pm_opp_set_voltage() takes OPP entry for the argument (patches 9 and 28). The PD powering off and performance-changes are separate from each other in the GENPD core. The GENPD core automatically turns off domain when all devices within the domain are suspended by system-suspend or RPM. The performance state of a power domain is controlled solely by a device driver. GENPD core only aggregates the performance requests, it doesn't change the performance state of a domain by itself when device is suspended or resumed, IIUC this is intentional. And I want to put domain into lowest performance state when device is suspended.