On 7/4/22 15:09, Viresh Kumar wrote: > On 30-06-22, 15:45, Viresh Kumar wrote: >> On 30-06-22, 12:57, Dmitry Osipenko wrote: >>> The set_freq_table() gets available freqs using >>> dev_pm_opp_find_freq_ceil() iteration. >>> >>> The first dev_pm_opp_find_freq_ceil(freq=0) succeeds and returns ceil >>> freq=1. >> >> I don't see how this can possibly happen. One possibility is that freq >> is set to 0 and one the next loop you do freq++, which can make it 1. >> >>> The second dev_pm_opp_find_freq_ceil(freq=1) fails with -ERANGE. >> >> Even if we send freq = 1, I don't see how we can get ERANGE if the OPP >> table is properly initialized. >> >>> I haven't looked yet at why freq is set to 1. Actually the freq was 0 and it was 1 on the next loop like you suggested. >> Thanks, but I would need some help to get it debugged. > > Hi Dmitry, > > I am looking to send another version of this now and soon merge this > in for 5.20-rc1. Can you please help figure out what's going on here ? Previously, the _read_opp_key() was always reading the opp-hz. Now it skips reading the rates in _read_rate() because opp_table->clk_count=0 for the tegra30-devfreq driver the uses devm_pm_opp_of_add_table_noclk(). -- Best regards, Dmitry