On Thu, Jul 30, 2020 at 9:38 AM Viresh Kumar <viresh.kumar@xxxxxxxxxx> wrote: > > It is not possible for cached_resolved_idx to be invalid here as the > cpufreq core always sets index to a positive value. > > Change its type to unsigned int and fix qcom usage a bit. Shouldn't you fix up idx in cpufreq_driver_resolve_freq() to be unsigned int too? > Signed-off-by: Viresh Kumar <viresh.kumar@xxxxxxxxxx> > --- > drivers/cpufreq/qcom-cpufreq-hw.c | 5 +---- > include/linux/cpufreq.h | 2 +- > 2 files changed, 2 insertions(+), 5 deletions(-) > > diff --git a/drivers/cpufreq/qcom-cpufreq-hw.c b/drivers/cpufreq/qcom-cpufreq-hw.c > index 0a04b6f03b9a..8c0842bd6c5a 100644 > --- a/drivers/cpufreq/qcom-cpufreq-hw.c > +++ b/drivers/cpufreq/qcom-cpufreq-hw.c > @@ -66,13 +66,10 @@ static unsigned int qcom_cpufreq_hw_fast_switch(struct cpufreq_policy *policy, > unsigned int target_freq) > { > void __iomem *perf_state_reg = policy->driver_data; > - int index; > + unsigned int index; > unsigned long freq; > > index = policy->cached_resolved_idx; > - if (index < 0) > - return 0; > - > writel_relaxed(index, perf_state_reg); > > freq = policy->freq_table[index].frequency; > diff --git a/include/linux/cpufreq.h b/include/linux/cpufreq.h > index e62b022cb07e..58687a5bf9c8 100644 > --- a/include/linux/cpufreq.h > +++ b/include/linux/cpufreq.h > @@ -127,7 +127,7 @@ struct cpufreq_policy { > > /* Cached frequency lookup from cpufreq_driver_resolve_freq. */ > unsigned int cached_target_freq; > - int cached_resolved_idx; > + unsigned int cached_resolved_idx; > > /* Synchronization for frequency transitions */ > bool transition_ongoing; /* Tracks transition status */ > -- > 2.14.1 >