From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jon Hunter Subject: Re: [PATCH v2 17/17] ARM: dts: tegra30: cardhu-a04: Add CPU Operating Performance Points Date: Fri, 15 Nov 2019 12:52:07 +0000 Message-ID: References: <20191024221416.14197-1-digetx@gmail.com> <20191024221416.14197-18-digetx@gmail.com> <8974f1a8-72bb-4413-d2b5-057853696fb4@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Return-path: In-Reply-To: <8974f1a8-72bb-4413-d2b5-057853696fb4@gmail.com> Content-Language: en-US Sender: linux-kernel-owner@vger.kernel.org To: Dmitry Osipenko , Thierry Reding , Peter De Schrijver , Prashant Gaikwad , "Rafael J. Wysocki" , Viresh Kumar , Rob Herring , Michael Turquette , Stephen Boyd , Peter Geis , Nicolas Chauvet , Marcel Ziswiler Cc: linux-pm@vger.kernel.org, linux-tegra@vger.kernel.org, devicetree@vger.kernel.org, linux-clk@vger.kernel.org, linux-kernel@vger.kernel.org List-Id: linux-tegra@vger.kernel.org On 13/11/2019 13:57, Dmitry Osipenko wrote: > Hello Jon, >=20 > 13.11.2019 09:52, Jon Hunter =D0=BF=D0=B8=D1=88=D0=B5=D1=82: >> >> On 24/10/2019 23:14, Dmitry Osipenko wrote: >>> Utilize common Tegra30 CPU OPP table. CPU DVFS is available now on >>> cardhu-a04. >>> >>> Signed-off-by: Dmitry Osipenko >>> --- >>> arch/arm/boot/dts/tegra30-cardhu-a04.dts | 24 ++++++++++++++++++++++++ >>> 1 file changed, 24 insertions(+) >>> >>> diff --git a/arch/arm/boot/dts/tegra30-cardhu-a04.dts b/arch/arm/boot/d= ts/tegra30-cardhu-a04.dts >>> index 0d71925d4f0b..9234988624ec 100644 >>> --- a/arch/arm/boot/dts/tegra30-cardhu-a04.dts >>> +++ b/arch/arm/boot/dts/tegra30-cardhu-a04.dts >>> @@ -2,6 +2,8 @@ >>> /dts-v1/; >>> =20 >>> #include "tegra30-cardhu.dtsi" >>> +#include "tegra30-cpu-opp.dtsi" >>> +#include "tegra30-cpu-opp-microvolt.dtsi" >>> =20 >>> /* This dts file support the cardhu A04 and later versions of board */ >>> =20 >>> @@ -127,4 +129,26 @@ >>> nvidia,tegra-core-regulator; >>> }; >>> }; >>> + >>> + cpus { >>> + cpu0: cpu@0 { >>> + cpu-supply =3D <&vddctrl_reg>; >>> + operating-points-v2 =3D <&cpu0_opp_table>; >>> + }; >>> + >>> + cpu@1 { >>> + cpu-supply =3D <&vddctrl_reg>; >>> + operating-points-v2 =3D <&cpu0_opp_table>; >>> + }; >>> + >>> + cpu@2 { >>> + cpu-supply =3D <&vddctrl_reg>; >>> + operating-points-v2 =3D <&cpu0_opp_table>; >>> + }; >>> + >>> + cpu@3 { >>> + cpu-supply =3D <&vddctrl_reg>; >>> + operating-points-v2 =3D <&cpu0_opp_table>; >>> + }; >>> + }; >>> }; >> >> Sorry for not testing this sooner, but this is generating the >> following WARNING on boot ... >> >> [ 2.916019] ------------[ cut here ]------------ >> [ 2.920669] WARNING: CPU: 2 PID: 1 at /dvs/git/dirty/git-master_l4t-u= pstream/kernel/drivers/opp/of.c:688 _of_add_opp_table_v2.part.2+0x45c/0x4d4 >> [ 2.933713] Modules linked in: >> [ 2.936785] CPU: 2 PID: 1 Comm: swapper/0 Not tainted 5.4.0-rc7-next-= 20191112-gfc6d6db1df2c #1 >> [ 2.945403] Hardware name: NVIDIA Tegra SoC (Flattened Device Tree) >> [ 2.951706] [] (unwind_backtrace) from [] (show_s= tack+0x10/0x14) >> [ 2.959467] [] (show_stack) from [] (dump_stack+0= xc0/0xd4) >> [ 2.966707] [] (dump_stack) from [] (__warn+0xe0/= 0xf8) >> [ 2.973593] [] (__warn) from [] (warn_slowpath_fm= t+0xb0/0xb8) >> [ 2.981090] [] (warn_slowpath_fmt) from [] (_of_a= dd_opp_table_v2.part.2+0x45c/0x4d4) >> [ 2.990583] [] (_of_add_opp_table_v2.part.2) from [] (dev_pm_opp_of_add_table+0x40/0x15c) >> [ 3.000508] [] (dev_pm_opp_of_add_table) from [] = (dev_pm_opp_of_cpumask_add_table+0x34/0xb4) >> [ 3.010704] [] (dev_pm_opp_of_cpumask_add_table) from [] (cpufreq_init+0xf8/0x2cc) >> [ 3.020024] [] (cpufreq_init) from [] (cpufreq_on= line+0x260/0x824) >> [ 3.027953] [] (cpufreq_online) from [] (cpufreq_= add_dev+0x6c/0x78) >> [ 3.035976] [] (cpufreq_add_dev) from [] (subsys_= interface_register+0xa0/0xec) >> [ 3.044951] [] (subsys_interface_register) from [= ] (cpufreq_register_driver+0x14c/0x20c) >> [ 3.054792] [] (cpufreq_register_driver) from [] = (dt_cpufreq_probe+0x94/0x114) >> [ 3.063771] [] (dt_cpufreq_probe) from [] (platfo= rm_drv_probe+0x48/0x98) >> [ 3.072225] [] (platform_drv_probe) from [] (real= ly_probe+0x234/0x34c) >> [ 3.080502] [] (really_probe) from [] (driver_pro= be_device+0x60/0x168) >> [ 3.088780] [] (driver_probe_device) from [] (dev= ice_driver_attach+0x58/0x60) >> [ 3.097664] [] (device_driver_attach) from [] (__= driver_attach+0x80/0xbc) >> [ 3.106200] [] (__driver_attach) from [] (bus_for= _each_dev+0x74/0xb4) >> [ 3.114389] [] (bus_for_each_dev) from [] (bus_ad= d_driver+0x164/0x1e8) >> [ 3.122666] [] (bus_add_driver) from [] (driver_r= egister+0x7c/0x114) >> [ 3.130774] [] (driver_register) from [] (do_one_= initcall+0x54/0x2a8) >> [ 3.138974] [] (do_one_initcall) from [] (kernel_= init_freeable+0x14c/0x1e8) >> [ 3.147695] [] (kernel_init_freeable) from [] (ke= rnel_init+0x8/0x10c) >> [ 3.155887] [] (kernel_init) from [] (ret_from_fo= rk+0x14/0x2c) >> [ 3.163462] Exception stack(0xef0c9fb0 to 0xef0c9ff8) >> [ 3.168519] 9fa0: 00000000 000000= 00 00000000 00000000 >> [ 3.176706] 9fc0: 00000000 00000000 00000000 00000000 00000000 000000= 00 00000000 00000000 >> [ 3.184893] 9fe0: 00000000 00000000 00000000 00000000 00000013 000000= 00 >> [ 3.191695] ---[ end trace a7dc36f7a4ddbdb2 ]--- >> [ 3.197855] ------------[ cut here ]------------ >> >> Let me know if you can take a look at this. >=20 > The warning happens because Cardhu now has CPU OPPs in the device-tree, > but supported_hw isn't set for the OPPs and thus the count of available > OPPs is 0. >=20 > This is expected to happen because patch "cpufreq: tegra20: Use generic > cpufreq-dt driver (Tegra30 supported now)" isn't applied yet. >=20 > It is possible to factor out the blacklisting of Tegra SoCs in > cpufreq_dt_platdev_init() into a separate patch and request backporting > of that change in order to avoid the warning noise for older kernel > versions + newer device-tree. Please let me know if you think that it's > worth to do the separation. Unfortunately, I think we are going to need to drop this patch. Booting Tegra30-cardhu-a04 with Thierry's for-5.5/arm/dt branch does not even boot. There is no crash log but it hangs on boot. This patch appears to be the culprit. What is odd is that Tegra30-cardhu-a04 boots fine with Thierry's for-next branch which includes this. However, this is causing lots of bisect problems. Updating the DT shouldn't break the boot. Jon --=20 nvpublic