linux/drivers/opp
Ulf Hansson 9ec87c5957 OPP: Fix support for required OPPs for multiple PM domains
It has turned out that having _set_required_opps() to recursively call
dev_pm_opp_set_opp() to set the required OPPs, doesn't really work as well
as we expected.

More precisely, at each recursive call to dev_pm_opp_set_opp() we are
changing an OPP for a required_dev that belongs to a required-OPP table.
The problem with this, is that we may have several devices sharing the same
required-OPP table, which leads to an incorrect behaviour in regards to
aggregating the per device votes.

To fix the problem for a required-OPP table belonging to a PM domain, which
is the only existing usecase for now, let's simply replace the call to
dev_pm_opp_set_opp() in _set_required_opps() by a call to _set_opp_level().

Moving forward we may potentially need to add support for other types of
required-OPP tables. In this case, the aggregation needs to be thought of.

Fixes: e37440e7e2 ("OPP: Call dev_pm_opp_set_opp() for required OPPs")
Cc: stable@vger.kernel.org
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
Acked-by: Viresh Kumar <viresh.kumar@linaro.org>
Link: https://lore.kernel.org/r/20240822224547.385095-2-ulf.hansson@linaro.org
2024-08-23 11:57:44 +02:00
..
core.c OPP: Fix support for required OPPs for multiple PM domains 2024-08-23 11:57:44 +02:00
cpu.c OPP: Fix argument name in doc comment 2023-08-18 10:55:49 +05:30
debugfs.c OPP: debugfs: Fix warning around icc_get_name() 2024-03-11 10:39:24 +05:30
Kconfig drivers/opp: Remove "select SRCU" 2023-01-05 11:47:21 +05:30
Makefile treewide: Add SPDX license identifier - Makefile/Kconfig 2019-05-21 10:50:46 +02:00
of.c OPP: Introduce an OF helper function to inform if required-opps is used 2024-06-26 11:17:20 +05:30
opp.h OPP: Rename 'rate_clk_single' 2024-01-05 15:55:41 +05:30
ti-opp-supply.c OPP: ti: Fix ti_opp_supply_probe wrong return values 2024-06-11 10:58:48 +05:30