On 14-10-20, 18:40, Geert Uytterhoeven wrote: > On this platform (r8a7791-koelsch.dts), there is no opp table in DT. > > Before: I assume this means before this patchset came in.. > boot: > cpufreq-dt cpufreq-dt: dt_cpufreq_probe:362 > cpu cpu0: resources_available:95 > cpu cpu0: resources_available:102: clk_get() returned z > cpu cpu0: resources_available:120: > dev_pm_opp_of_find_icc_paths() returned 0 > cpu cpu0: resources_available:125: find_supply_name() returned cpu0 > cpu cpu0: resources_available:132: regulator_get_optional() > returned -EPROBE_DEFER > cpu cpu0: cpu0 regulator not ready, retry > cpufreq-dt cpufreq-dt: dt_cpufreq_probe:371: > resources_available() returned -517 we deferred probe once. > ... > cpufreq-dt cpufreq-dt: dt_cpufreq_probe:362 > cpu cpu0: resources_available:95 > cpu cpu0: resources_available:102: clk_get() returned z > cpu cpu0: resources_available:120: > dev_pm_opp_of_find_icc_paths() returned 0 > cpu cpu0: resources_available:125: find_supply_name() returned cpu0 > cpu cpu0: resources_available:132: regulator_get_optional() > returned (ptrval) found regulator next time. > cpufreq-dt cpufreq-dt: dt_cpufreq_probe:371: > resources_available() returned 0 > cpufreq-dt cpufreq-dt: dt_cpufreq_probe:375 > cpufreq_dt: cpufreq_init:162 > cpu cpu0: cpufreq_init:170: clk_get() returned z > cpu cpu0: cpufreq_init:179: dev_pm_opp_of_get_sharing_cpus() returned -2 > cpu cpu0: cpufreq_init:198: find_supply_name() returned cpu0 > <i2c comm> > cpu cpu0: cpufreq_init:201: dev_pm_opp_set_regulators() returned (ptrval) > <i2c comm> > cpu cpu0: cpufreq_init:230: dev_pm_opp_of_cpumask_add_table() returned 0 > cpu cpu0: cpufreq_init:239: dev_pm_opp_get_opp_count() returned 0 > cpu cpu0: OPP table is not ready, deferring probe This failed, as we couldn't have deferred probe from cpufreq_init. Which means that cpufreq didn't work here. > cpufreq_dt: cpufreq_init:162 > cpu cpu1: cpufreq_init:170: clk_get() returned z > cpu cpu1: cpufreq_init:179: dev_pm_opp_of_get_sharing_cpus() returned -2 > cpu cpu1: no regulator for cpu1 > cpu cpu1: cpufreq_init:198: find_supply_name() returned (null) > cpu cpu1: cpufreq_init:230: dev_pm_opp_of_cpumask_add_table() returned 0 > cpu cpu1: cpufreq_init:239: dev_pm_opp_get_opp_count() returned 0 > cpu cpu1: OPP table is not ready, deferring probe Same for CPU1. > > s2ram: > cpufreq_dt: cpufreq_init:162 > cpu cpu1: cpufreq_init:170: clk_get() returned z > cpu cpu1: cpufreq_init:179: dev_pm_opp_of_get_sharing_cpus() returned -2 > cpu cpu1: no regulator for cpu1 > cpu cpu1: cpufreq_init:198: find_supply_name() returned (null) > cpu cpu1: cpufreq_init:230: dev_pm_opp_of_cpumask_add_table() returned 0 > cpu cpu1: cpufreq_init:239: dev_pm_opp_get_opp_count() returned 0 > cpu cpu1: OPP table is not ready, deferring probe And same here. > CPU1 is up > > After: > boot: > cpufreq-dt cpufreq-dt: dt_cpufreq_probe:356 > cpufreq_dt: dt_cpufreq_early_init:251 > cpu cpu0: dt_cpufreq_early_init:256 > cpu cpu0: dt_cpufreq_early_init:271: dev_pm_opp_get_opp_table() > returned (ptrval) > cpu cpu0: dt_cpufreq_early_init:284: find_supply_name() returned cpu0 > cpu cpu0: dt_cpufreq_early_init:288: dev_pm_opp_set_regulators() > returned -EPROBE_DEFER > cpufreq-dt cpufreq-dt: dt_cpufreq_probe:360: > dt_cpufreq_early_init() returned -517 > ... > cpufreq-dt cpufreq-dt: dt_cpufreq_probe:356 > cpufreq_dt: dt_cpufreq_early_init:251 > cpu cpu0: dt_cpufreq_early_init:256 > cpu cpu0: dt_cpufreq_early_init:271: dev_pm_opp_get_opp_table() > returned (ptrval) > cpu cpu0: dt_cpufreq_early_init:284: find_supply_name() returned cpu0 > cpu cpu0: dt_cpufreq_early_init:288: dev_pm_opp_set_regulators() > returned (ptrval) > cpu cpu0: dt_cpufreq_early_init:301: > dev_pm_opp_of_get_sharing_cpus() returned -2 > cpufreq-dt cpufreq-dt: dt_cpufreq_probe:360: > dt_cpufreq_early_init() returned 0 > cpufreq_dt: dt_cpufreq_early_init:251 > cpufreq-dt cpufreq-dt: dt_cpufreq_probe:360: > dt_cpufreq_early_init() returned 0 > cpufreq-dt cpufreq-dt: dt_cpufreq_probe:365 > cpufreq_dt: cpufreq_init:114 > cpu cpu0: cpufreq_init:124: clk_get() returned z > cpu cpu0: cpufreq_init:142: dev_pm_opp_of_cpumask_add_table() returned 0 > cpu cpu0: cpufreq_init:151: dev_pm_opp_get_opp_count() returned 0 > cpu cpu0: OPP table can't be empty Same issue here. > cpufreq_dt: cpufreq_init:114 > cpu cpu0: cpufreq_init:124: clk_get() returned z > <i2c comm> > cpu cpu0: cpufreq_init:142: dev_pm_opp_of_cpumask_add_table() returned 0 > cpu cpu0: cpufreq_init:151: dev_pm_opp_get_opp_count() returned 0 > > s2ram: > > cpufreq_dt: cpufreq_init:114 > cpu cpu0: cpufreq_init:124: clk_get() returned z > WARNING: CPU: 1 PID: 14 at drivers/i2c/i2c-core.h:54 > __i2c_transfer+0x2d8/0x310 > i2c i2c-6: Transfer while suspended > cpu cpu0: cpufreq_init:142: dev_pm_opp_of_cpumask_add_table() returned 0 > cpu cpu0: cpufreq_init:151: dev_pm_opp_get_opp_count() returned 0 > cpu cpu0: OPP table can't be empty > CPU1 is up > > I hope this helps. Unfortunately it raised more questions than what it answered :( -- viresh