On 30-10-20, 19:19, Frank Lee wrote:
GPU is also a relatively large number of opp consumers.
I was talking about the number of files or locations from which this routine (the devm_* variant) is going to get called. And it is one right now. And I don't see if any of the other callers are going to use it for now.
Most of the time, the dev_pm_opp_set_* functions will only be set once.
Right.
If don't need the driver to dynamically manage and release the opp, it may be OK?
Every call to dev_pm_opp_set_supported_hw() increases the ref count of the OPP table and if it isn't balanced with a call to dev_pm_opp_put_supported_hw(), then the OPP table will never get freed. So if the driver is a module and ends up creating an OPP table every time, then this will lead to leakage.
The best way to fix this is by calling dev_pm_opp_put_supported_hw() from the right place and then we are good.