[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <1f9d1b45-9267-4633-94ef-33f6f1c51401@oss.qualcomm.com>
Date: Mon, 18 Aug 2025 14:34:42 +0530
From: Krishna Chaitanya Chundru <krishna.chundru@....qualcomm.com>
To: Viresh Kumar <viresh.kumar@...aro.org>
Cc: Viresh Kumar <vireshk@...nel.org>, Nishanth Menon <nm@...com>,
Stephen Boyd <sboyd@...nel.org>,
"Rafael J. Wysocki" <rafael@...nel.org>,
Manivannan Sadhasivam <mani@...nel.org>,
Lorenzo Pieralisi <lpieralisi@...nel.org>,
Krzysztof WilczyĆski <kwilczynski@...nel.org>,
Rob Herring <robh@...nel.org>, Bjorn Helgaas <bhelgaas@...gle.com>,
Bjorn Andersson <andersson@...nel.org>,
Konrad Dybcio <konradybcio@...nel.org>,
Krzysztof Kozlowski <krzk+dt@...nel.org>,
Conor Dooley
<conor+dt@...nel.org>, linux-pm@...r.kernel.org,
linux-kernel@...r.kernel.org, linux-pci@...r.kernel.org,
linux-arm-msm@...r.kernel.org, devicetree@...r.kernel.org
Subject: Re: [PATCH v2 1/3] PM/OPP: Support to match OPP based on both
frequency and level.
On 8/18/2025 2:25 PM, Viresh Kumar wrote:
> On 18-08-25, 13:52, Krishna Chaitanya Chundru wrote:
>> +static bool _compare_opp_key_exact(struct dev_pm_opp **opp, struct dev_pm_opp *temp_opp,
>> + struct dev_pm_opp_key opp_key, struct dev_pm_opp_key key)
>> +{
>> + bool freq_match = (opp_key.freq == 0 || key.freq == 0 || opp_key.freq == key.freq);
>
> Why !opp_key.freq is okay ? If the user has provided a freq value,
> then it must match. Isn't it ?
>
ok I will fix this in next patch.
>> + bool level_match = (opp_key.level == OPP_LEVEL_UNSET ||
>> + key.level == OPP_LEVEL_UNSET || opp_key.level == key.level);
>
> We should compare bw too I guess in the same routine.
ok I will add bw similar to level,
>
>> + if (freq_match && level_match) {
>> + *opp = temp_opp;
>> + return true;
>> + }
>> +
>> + return false;
>> +}
>> +/**
>> + * dev_pm_opp_find_freq_level_exact() - Search for an exact frequency and level
>
> Instead dev_pm_opp_find_key_exact() and let the user pass the key
> struct itself.
>
ack
>> +struct dev_pm_opp *dev_pm_opp_find_freq_level_exact(struct device *dev,
>> + unsigned long freq,
>> + unsigned int level,
>> + bool available)
>> +{
>> + struct opp_table *opp_table __free(put_opp_table);
>
> The constructor here must be real, i.e. initialize opp_table here
> itself. This is well documented in cleanup.h. Yes there are examples
> like this in the OPP core which are required to be fixed too.
ack.
- Krishna Chaitanya.
>
Powered by blists - more mailing lists