|
Revision tags: v6.15, v6.15-rc7, v6.15-rc6, v6.15-rc5, v6.15-rc4, v6.15-rc3, v6.15-rc2, v6.15-rc1, v6.14, v6.14-rc7, v6.14-rc6, v6.14-rc5, v6.14-rc4, v6.14-rc3, v6.14-rc2, v6.14-rc1, v6.13, v6.13-rc7, v6.13-rc6, v6.13-rc5, v6.13-rc4, v6.13-rc3, v6.13-rc2, v6.13-rc1, v6.12, v6.12-rc7, v6.12-rc6, v6.12-rc5, v6.12-rc4, v6.12-rc3, v6.12-rc2, v6.12-rc1, v6.11, v6.11-rc7, v6.11-rc6, v6.11-rc5, v6.11-rc4, v6.11-rc3, v6.11-rc2, v6.11-rc1, v6.10, v6.10-rc7, v6.10-rc6, v6.10-rc5, v6.10-rc4, v6.10-rc3, v6.10-rc2, v6.10-rc1, v6.9, v6.9-rc7, v6.9-rc6, v6.9-rc5, v6.9-rc4, v6.9-rc3, v6.9-rc2, v6.9-rc1, v6.8, v6.8-rc7, v6.8-rc6, v6.8-rc5, v6.8-rc4, v6.8-rc3, v6.8-rc2, v6.8-rc1 |
|
| #
b489e794 |
| 09-Jan-2024 |
Viresh Kumar <[email protected]> |
PM / OPP: Add reference counting helpers for Rust implementation
To ensure that resources such as OPP tables or OPP nodes are not freed while in use by the Rust implementation, it is necessary to in
PM / OPP: Add reference counting helpers for Rust implementation
To ensure that resources such as OPP tables or OPP nodes are not freed while in use by the Rust implementation, it is necessary to increment their reference count from Rust code.
This commit introduces a new helper function, dev_pm_opp_get_opp_table_ref(), to increment the reference count of an OPP table and declares the existing helper dev_pm_opp_get() in pm_opp.h.
Signed-off-by: Viresh Kumar <[email protected]>
show more ...
|
| #
b89c0ed0 |
| 19-Nov-2024 |
Neil Armstrong <[email protected]> |
opp: core: implement dev_pm_opp_get_bw
Add and implement dev_pm_opp_get_bw() to retrieve the OPP's bandwidth in the same way as the dev_pm_opp_get_voltage() helper.
Retrieving bandwidth is required
opp: core: implement dev_pm_opp_get_bw
Add and implement dev_pm_opp_get_bw() to retrieve the OPP's bandwidth in the same way as the dev_pm_opp_get_voltage() helper.
Retrieving bandwidth is required in the case of the Adreno GPU where the GPU Management Unit can handle the Bandwidth scaling.
The helper can get the peak or average bandwidth for any of the interconnect path.
Signed-off-by: Neil Armstrong <[email protected]> [ Viresh: Fixed commit log and a comment in code ] Signed-off-by: Viresh Kumar <[email protected]>
show more ...
|
| #
d6caca30 |
| 02-Oct-2024 |
Ulf Hansson <[email protected]> |
OPP: Drop redundant *_opp_attach|detach_genpd()
All users of *_opp_attach|detach_genpd(), have been converted to use dev|devm_pm_domain_attach|detach_list(), hence let's drop it along with its corre
OPP: Drop redundant *_opp_attach|detach_genpd()
All users of *_opp_attach|detach_genpd(), have been converted to use dev|devm_pm_domain_attach|detach_list(), hence let's drop it along with its corresponding exported functions.
Acked-by: Viresh Kumar <[email protected]> Signed-off-by: Ulf Hansson <[email protected]> Link: https://lore.kernel.org/r/[email protected]
show more ...
|
| #
0e8158b4 |
| 02-Oct-2024 |
Ulf Hansson <[email protected]> |
OPP: Rework _set_required_devs() to manage a single device per call
At this point there are no consumer drivers that makes use of _set_required_devs(), hence it should be straightforward to rework t
OPP: Rework _set_required_devs() to manage a single device per call
At this point there are no consumer drivers that makes use of _set_required_devs(), hence it should be straightforward to rework the code to enable it to better integrate with the PM domain attach procedure.
During attach, one device at the time is being hooked up to its corresponding PM domain. Therefore, let's update the _set_required_devs() to align to this behaviour, allowing callers to fill out one required_dev per call. Subsequent changes starts making use of this.
Signed-off-by: Ulf Hansson <[email protected]> Acked-by: Viresh Kumar <[email protected]> Link: https://lore.kernel.org/r/[email protected]
show more ...
|
| #
e3943f00 |
| 19-Jun-2024 |
Ulf Hansson <[email protected]> |
OPP: Introduce an OF helper function to inform if required-opps is used
As being shown from a subsequent change to genpd, it's useful to understand if a device's OF node has an OPP-table described a
OPP: Introduce an OF helper function to inform if required-opps is used
As being shown from a subsequent change to genpd, it's useful to understand if a device's OF node has an OPP-table described and whether it contains OPP nodes that makes use of the required-opps DT property.
For this reason, let's introduce an OPP OF helper function called dev_pm_opp_of_has_required_opp().
Signed-off-by: Ulf Hansson <[email protected]> Signed-off-by: Viresh Kumar <[email protected]>
show more ...
|
| #
e3ac0f36 |
| 03-Apr-2024 |
Lukasz Luba <[email protected]> |
OPP: OF: Export dev_opp_pm_calc_power() for usage from EM
There are device drivers which can modify voltage values for OPPs. It could be due to the chip binning and those drivers have specific chip
OPP: OF: Export dev_opp_pm_calc_power() for usage from EM
There are device drivers which can modify voltage values for OPPs. It could be due to the chip binning and those drivers have specific chip knowledge about it. This adjustment can happen after Energy Model is registered, thus EM can have stale data about power.
Export dev_opp_pm_calc_power() which can be used by Energy Model to calculate new power with the new voltage for OPPs.
Acked-by: Viresh Kumar <[email protected]> Reviewed-by: Dietmar Eggemann <[email protected]> Signed-off-by: Lukasz Luba <[email protected]> Signed-off-by: Rafael J. Wysocki <[email protected]>
show more ...
|
| #
abb3f971 |
| 27-Feb-2024 |
Sibi Sankar <[email protected]> |
OPP: Extend dev_pm_opp_data with turbo support
Let's extend the dev_pm_opp_data with a turbo variable, to allow users to specify if it's a boost frequency for a dynamically added OPP.
Signed-off-by
OPP: Extend dev_pm_opp_data with turbo support
Let's extend the dev_pm_opp_data with a turbo variable, to allow users to specify if it's a boost frequency for a dynamically added OPP.
Signed-off-by: Sibi Sankar <[email protected]> Signed-off-by: Viresh Kumar <[email protected]>
show more ...
|
| #
838a4772 |
| 18-Jan-2024 |
Viresh Kumar <[email protected]> |
cpufreq: Move dev_pm_opp_{init|free}_cpufreq_table() to pm_opp.h
Move the declaration of functions defined in the OPP core to pm_opp.h. These were added to cpufreq.h as it was the only user of the A
cpufreq: Move dev_pm_opp_{init|free}_cpufreq_table() to pm_opp.h
Move the declaration of functions defined in the OPP core to pm_opp.h. These were added to cpufreq.h as it was the only user of the APIs, but that was a mistake perhaps. Fix it.
Signed-off-by: Viresh Kumar <[email protected]>
show more ...
|
|
Revision tags: v6.7, v6.7-rc8 |
|
| #
3b82024c |
| 28-Dec-2023 |
Viresh Kumar <[email protected]> |
OPP: Move dev_pm_opp_icc_bw to internal opp.h
It isn't used by any driver or API, privatize it.
Signed-off-by: Viresh Kumar <[email protected]>
|
|
Revision tags: v6.7-rc7 |
|
| #
ba367479 |
| 19-Dec-2023 |
Viresh Kumar <[email protected]> |
OPP: The level field is always of unsigned int type
By mistake, dev_pm_opp_find_level_floor() used the level parameter as unsigned long instead of unsigned int. Fix it.
Signed-off-by: Viresh Kumar
OPP: The level field is always of unsigned int type
By mistake, dev_pm_opp_find_level_floor() used the level parameter as unsigned long instead of unsigned int. Fix it.
Signed-off-by: Viresh Kumar <[email protected]>
show more ...
|
|
Revision tags: v6.7-rc6, v6.7-rc5, v6.7-rc4, v6.7-rc3, v6.7-rc2, v6.7-rc1, v6.6 |
|
| #
e37440e7 |
| 27-Oct-2023 |
Viresh Kumar <[email protected]> |
OPP: Call dev_pm_opp_set_opp() for required OPPs
Configuring the required OPP was never properly implemented, we just took an exception for genpds and configured them directly, while leaving out all
OPP: Call dev_pm_opp_set_opp() for required OPPs
Configuring the required OPP was never properly implemented, we just took an exception for genpds and configured them directly, while leaving out all other required OPP types.
Now that a standard call to dev_pm_opp_set_opp() takes care of configuring the opp->level too, the special handling for genpds can be avoided by simply calling dev_pm_opp_set_opp() for the required OPPs, which shall eventually configure the corresponding level for genpds.
This also makes it possible for us to configure other type of required OPPs (no concrete users yet though), via the same path. This is how other frameworks take care of parent nodes, like clock, regulators, etc, where we recursively call the same helper.
In order to call dev_pm_opp_set_opp() for the virtual genpd devices, they must share the OPP table of the genpd. Call _add_opp_dev() for them to get that done.
This commit also extends the struct dev_pm_opp_config to pass required devices, for non-genpd cases, which can be used to call dev_pm_opp_set_opp() for the non-genpd required devices.
Reviewed-by: Ulf Hansson <[email protected]> Tested-by: Stephan Gerhold <[email protected]> Signed-off-by: Viresh Kumar <[email protected]>
show more ...
|
| #
073d3d2c |
| 27-Oct-2023 |
Viresh Kumar <[email protected]> |
OPP: Level zero is valid
The level zero can be used by some OPPs to drop performance state vote for the device. It is perfectly fine to allow the same.
_set_opp_level() considers it as an invalid v
OPP: Level zero is valid
The level zero can be used by some OPPs to drop performance state vote for the device. It is perfectly fine to allow the same.
_set_opp_level() considers it as an invalid value currently and returns early.
In order to support this properly, initialize the level field with U32_MAX, which denotes unused level field.
Reported-by: Stephan Gerhold <[email protected]> Reviewed-by: Ulf Hansson <[email protected]> Tested-by: Stephan Gerhold <[email protected]> Signed-off-by: Viresh Kumar <[email protected]>
show more ...
|
|
Revision tags: v6.6-rc7, v6.6-rc6, v6.6-rc5, v6.6-rc4 |
|
| #
3166383d |
| 25-Sep-2023 |
Ulf Hansson <[email protected]> |
OPP: Extend dev_pm_opp_data with a level
Let's extend the dev_pm_opp_data with a level variable, to allow users to specify a corresponding level (performance state) for a dynamically added OPP.
Sig
OPP: Extend dev_pm_opp_data with a level
Let's extend the dev_pm_opp_data with a level variable, to allow users to specify a corresponding level (performance state) for a dynamically added OPP.
Signed-off-by: Ulf Hansson <[email protected]> Signed-off-by: Viresh Kumar <[email protected]>
show more ...
|
|
Revision tags: v6.6-rc3, v6.6-rc2, v6.6-rc1 |
|
| #
a0242c81 |
| 07-Sep-2023 |
Krishna chaitanya chundru <[email protected]> |
OPP: Add dev_pm_opp_find_level_floor()
Add dev_pm_opp_find_level_floor(), as is done for frequency and bandwidth.
Signed-off-by: Krishna chaitanya chundru <[email protected]> [ Viresh: Updat
OPP: Add dev_pm_opp_find_level_floor()
Add dev_pm_opp_find_level_floor(), as is done for frequency and bandwidth.
Signed-off-by: Krishna chaitanya chundru <[email protected]> [ Viresh: Updated commit log and rearranged code ] Signed-off-by: Viresh Kumar <[email protected]>
show more ...
|
| #
248a38d5 |
| 25-Sep-2023 |
Ulf Hansson <[email protected]> |
OPP: Add dev_pm_opp_add_dynamic() to allow more flexibility
The dev_pm_opp_add() API is limited to add dynamic OPPs with a frequency and a voltage level. To enable more flexibility, let's add a new
OPP: Add dev_pm_opp_add_dynamic() to allow more flexibility
The dev_pm_opp_add() API is limited to add dynamic OPPs with a frequency and a voltage level. To enable more flexibility, let's add a new API, dev_pm_opp_add_dynamic() that's takes a struct dev_pm_opp_data* instead of a list of in-parameters.
Signed-off-by: Ulf Hansson <[email protected]> Signed-off-by: Viresh Kumar <[email protected]>
show more ...
|
|
Revision tags: v6.5, v6.5-rc7, v6.5-rc6, v6.5-rc5, v6.5-rc4, v6.5-rc3 |
|
| #
746de825 |
| 21-Jul-2023 |
Viresh Kumar <[email protected]> |
OPP: Reuse dev_pm_opp_get_freq_indexed()
Reuse dev_pm_opp_get_freq_indexed() from dev_pm_opp_get_freq().
Signed-off-by: Viresh Kumar <[email protected]> Acked-by: Manivannan Sadhasivam <maniv
OPP: Reuse dev_pm_opp_get_freq_indexed()
Reuse dev_pm_opp_get_freq_indexed() from dev_pm_opp_get_freq().
Signed-off-by: Viresh Kumar <[email protected]> Acked-by: Manivannan Sadhasivam <[email protected]>
show more ...
|
| #
a5893928 |
| 21-Jul-2023 |
Viresh Kumar <[email protected]> |
OPP: Add dev_pm_opp_find_freq_exact_indexed()
The indexed version of the API is added for other floor and ceil, add the same for exact as well for completeness.
Signed-off-by: Viresh Kumar <viresh.
OPP: Add dev_pm_opp_find_freq_exact_indexed()
The indexed version of the API is added for other floor and ceil, add the same for exact as well for completeness.
Signed-off-by: Viresh Kumar <[email protected]>
show more ...
|
| #
5f756d03 |
| 20-Jul-2023 |
Manivannan Sadhasivam <[email protected]> |
OPP: Introduce dev_pm_opp_get_freq_indexed() API
In the case of devices with multiple clocks, drivers need to specify the frequency index for the OPP framework to get the specific frequency within t
OPP: Introduce dev_pm_opp_get_freq_indexed() API
In the case of devices with multiple clocks, drivers need to specify the frequency index for the OPP framework to get the specific frequency within the required OPP. So let's introduce the dev_pm_opp_get_freq_indexed() API accepting the frequency index as an argument.
Signed-off-by: Manivannan Sadhasivam <[email protected]> [ Viresh: Fixed potential access to NULL opp pointer ] Signed-off-by: Viresh Kumar <[email protected]>
show more ...
|
| #
142e17c1 |
| 20-Jul-2023 |
Manivannan Sadhasivam <[email protected]> |
OPP: Introduce dev_pm_opp_find_freq_{ceil/floor}_indexed() APIs
In the case of devices with multiple clocks, drivers need to specify the clock index for the OPP framework to find the OPP correspondi
OPP: Introduce dev_pm_opp_find_freq_{ceil/floor}_indexed() APIs
In the case of devices with multiple clocks, drivers need to specify the clock index for the OPP framework to find the OPP corresponding to the floor/ceil of the supplied frequency. So let's introduce the two new APIs accepting the clock index as an argument.
These APIs use the exising _find_key_ceil() helper by supplying the clock index to it.
Signed-off-by: Manivannan Sadhasivam <[email protected]> [ Viresh: Rearranged definitions in pm_opp.h ] Signed-off-by: Viresh Kumar <[email protected]>
show more ...
|
| #
754833b3 |
| 21-Jul-2023 |
Viresh Kumar <[email protected]> |
OPP: Rearrange entries in pm_opp.h
Rearrange the helper function declarations / definitions to keep them in order of freq, level and then bw.
Signed-off-by: Viresh Kumar <[email protected]>
|
|
Revision tags: v6.5-rc2, v6.5-rc1, v6.4, v6.4-rc7, v6.4-rc6, v6.4-rc5, v6.4-rc4, v6.4-rc3, v6.4-rc2, v6.4-rc1, v6.3, v6.3-rc7, v6.3-rc6, v6.3-rc5, v6.3-rc4, v6.3-rc3, v6.3-rc2, v6.3-rc1, v6.2, v6.2-rc8, v6.2-rc7, v6.2-rc6, v6.2-rc5, v6.2-rc4, v6.2-rc3, v6.2-rc2, v6.2-rc1, v6.1, v6.1-rc8, v6.1-rc7, v6.1-rc6, v6.1-rc5, v6.1-rc4, v6.1-rc3, v6.1-rc2, v6.1-rc1, v6.0, v6.0-rc7, v6.0-rc6, v6.0-rc5, v6.0-rc4, v6.0-rc3, v6.0-rc2, v6.0-rc1, v5.19, v5.19-rc8, v5.19-rc7, v5.19-rc6 |
|
| #
1e5fb384 |
| 05-Jul-2022 |
Viresh Kumar <[email protected]> |
OPP: Remove dev{m}_pm_opp_of_add_table_noclk()
Remove the now unused variants and the now unnecessary "getclk" parameter from few routines.
Signed-off-by: Viresh Kumar <[email protected]>
|
|
Revision tags: v5.19-rc5, v5.19-rc4, v5.19-rc3, v5.19-rc2 |
|
| #
8174a3a6 |
| 10-Jun-2022 |
Viresh Kumar <[email protected]> |
OPP: Provide a simple implementation to configure multiple clocks
This provides a simple implementation to configure multiple clocks for a device.
Tested-by: Dmitry Osipenko <dmitry.osipenko@collab
OPP: Provide a simple implementation to configure multiple clocks
This provides a simple implementation to configure multiple clocks for a device.
Tested-by: Dmitry Osipenko <[email protected]> Signed-off-by: Viresh Kumar <[email protected]>
show more ...
|
| #
2083da24 |
| 10-Jun-2022 |
Viresh Kumar <[email protected]> |
OPP: Allow multiple clocks for a device
This patch adds support to allow multiple clocks for a device.
The design is pretty much similar to how this is done for regulators, and platforms can supply
OPP: Allow multiple clocks for a device
This patch adds support to allow multiple clocks for a device.
The design is pretty much similar to how this is done for regulators, and platforms can supply their own version of the config_clks() callback if they have multiple clocks for their device. The core manages the calls via opp_table->config_clks() eventually.
We have kept both "clk" and "clks" fields in the OPP table structure and the reason is provided as a comment in _opp_set_clknames(). The same isn't done for "rates" though and we use rates[0] at most of the places now.
Co-developed-by: Krzysztof Kozlowski <[email protected]> Signed-off-by: Krzysztof Kozlowski <[email protected]> Tested-by: Jon Hunter <[email protected]> Tested-by: Dmitry Osipenko <[email protected]> Tested-by: Manivannan Sadhasivam <[email protected]> Signed-off-by: Viresh Kumar <[email protected]>
show more ...
|
|
Revision tags: v5.19-rc1 |
|
| #
9fbb6260 |
| 02-Jun-2022 |
Viresh Kumar <[email protected]> |
OPP: Remove dev_pm_opp_find_freq_ceil_by_volt()
This was added few years back, but the code that was supposed to use it never got merged. Remove the unused helper.
Tested-by: Dmitry Osipenko <dmitr
OPP: Remove dev_pm_opp_find_freq_ceil_by_volt()
This was added few years back, but the code that was supposed to use it never got merged. Remove the unused helper.
Tested-by: Dmitry Osipenko <[email protected]> Signed-off-by: Viresh Kumar <[email protected]>
show more ...
|
| #
1f378c6e |
| 04-Jul-2022 |
Viresh Kumar <[email protected]> |
OPP: Remove custom OPP helper support
The only user of the custom helper is migrated to use dev_pm_opp_set_config_regulators() interface. Remove the now unused custom OPP helper support.
This clean
OPP: Remove custom OPP helper support
The only user of the custom helper is migrated to use dev_pm_opp_set_config_regulators() interface. Remove the now unused custom OPP helper support.
This cleans up _set_opp() and leaves a single code path to be used by all users.
Tested-by: Dmitry Osipenko <[email protected]> Signed-off-by: Viresh Kumar <[email protected]>
show more ...
|