Re: [Patch 2/2] cpufreq: tegra194: Fix unlisted boot freq warning

From: Sumit Gupta
Date: Mon Oct 05 2020 - 14:54:17 EST



Warning coming during boot because the boot freq set by bootloader
gets filtered out due to big freq steps while creating freq_table.
Fixing this by setting closest ndiv value from freq_table.
Warning:
cpufreq: cpufreq_online: CPU0: Running at unlisted freq
cpufreq: cpufreq_online: CPU0: Unlisted initial frequency changed

Also, added change in init to wait till current frequency becomes
equal or near to the previously requested frequency. This is done
because it takes some time to restore the previous frequency while
turning-on non-boot cores during exit from SC7(Suspend-to-RAM).

So you are trying to figure if the frequency is listed in freq-table or not,
otherwise setting the frequency to a value you think is appropriate. Right ?
During boot, want to set the frequency from freq_table which is closest to the one set by bootloader.
During resume from suspend-to-idle, want to restore the frequency which was set on non-boot cores before they were hotplug powered off.


This is what the cpufreq core already does when it printed these boot time
messages. Do we really need to add this much code in here ?
We want to avoid the warning messages.


If you really don't want to see the warning, how about fixing it the way cpufreq
core does ? i.e. with this call:

ret = __cpufreq_driver_target(policy, policy->cur - 1, CPUFREQ_RELATION_L);

The cpufreq core change will help in bootup case but not during the case of resume.
In this change, reading the previously stored value and restoring it will also fix the warning message during resume.


--
viresh