Re: [PATCH] venus: pm_helpers: Fix warning in OPP during probe

From: Viresh Kumar
Date: Tue Aug 02 2022 - 00:16:36 EST


On 01-08-22, 18:16, Stanimir Varbanov wrote:
> Fix the following WARN triggered during Venus driver probe on
> 5.19.0-rc8-next-20220728:
>
> WARNING: CPU: 7 PID: 339 at drivers/opp/core.c:2471 dev_pm_opp_set_config+0x49c/0x610
> Modules linked in: qcom_spmi_adc5 rtc_pm8xxx qcom_spmi_adc_tm5 leds_qcom_lpg led_class_multicolor
> qcom_pon qcom_vadc_common venus_core(+) qcom_spmi_temp_alarm v4l2_mem2mem videobuf2_v4l2 msm(+)
> videobuf2_common crct10dif_ce spi_geni_qcom snd_soc_sm8250 i2c_qcom_geni gpu_sched
> snd_soc_qcom_common videodev qcom_q6v5_pas soundwire_qcom drm_dp_aux_bus qcom_stats
> drm_display_helper qcom_pil_info soundwire_bus snd_soc_lpass_va_macro mc qcom_q6v5
> phy_qcom_snps_femto_v2 qcom_rng snd_soc_lpass_macro_common snd_soc_lpass_wsa_macro
> lpass_gfm_sm8250 slimbus qcom_sysmon qcom_common qcom_glink_smem qmi_helpers
> qcom_wdt mdt_loader socinfo icc_osm_l3 display_connector
> drm_kms_helper qnoc_sm8250 drm fuse ip_tables x_tables ipv6
> CPU: 7 PID: 339 Comm: systemd-udevd Not tainted 5.19.0-rc8-next-20220728 #4
> Hardware name: Qualcomm Technologies, Inc. Robotics RB5 (DT)
> pstate: 80400005 (Nzcv daif +PAN -UAO -TCO -DIT -SSBS BTYPE=--)
> pc : dev_pm_opp_set_config+0x49c/0x610
> lr : dev_pm_opp_set_config+0x58/0x610
> sp : ffff8000093c3710
> x29: ffff8000093c3710 x28: ffffbca3959d82b8 x27: ffff8000093c3d00
> x26: ffffbca3959d8e08 x25: ffff4396cac98118 x24: ffff4396c0e24810
> x23: ffff4396c4272c40 x22: ffff4396c0e24810 x21: ffff8000093c3810
> x20: ffff4396cac36800 x19: ffff4396cac96800 x18: 0000000000000000
> x17: 0000000000000003 x16: ffffbca3f4edf198 x15: 0000001cba64a858
> x14: 0000000000000180 x13: 000000000000017e x12: 0000000000000000
> x11: 0000000000000002 x10: 0000000000000a60 x9 : ffff8000093c35c0
> x8 : ffff4396c4273700 x7 : ffff43983efca6c0 x6 : ffff43983efca640
> x5 : 00000000410fd0d0 x4 : ffff4396c4272c40 x3 : ffffbca3f5d1e008
> x2 : 0000000000000000 x1 : ffff4396c2421600 x0 : ffff4396cac96860
> Call trace:
> dev_pm_opp_set_config+0x49c/0x610
> devm_pm_opp_set_config+0x18/0x70
> vcodec_domains_get+0xb8/0x1638 [venus_core]
> core_get_v4+0x1d8/0x218 [venus_core]
> venus_probe+0xf4/0x468 [venus_core]
> platform_probe+0x68/0xd8
> really_probe+0xbc/0x2a8
> __driver_probe_device+0x78/0xe0
> driver_probe_device+0x3c/0xf0
> __driver_attach+0x70/0x120
> bus_for_each_dev+0x70/0xc0
> driver_attach+0x24/0x30
> bus_add_driver+0x150/0x200
> driver_register+0x64/0x120
> __platform_driver_register+0x28/0x38
> qcom_venus_driver_init+0x24/0x1000 [venus_core]
> do_one_initcall+0x54/0x1c8
> do_init_module+0x44/0x1d0
> load_module+0x16c8/0x1aa0
> __do_sys_finit_module+0xbc/0x110
> __arm64_sys_finit_module+0x20/0x30
> invoke_syscall+0x44/0x108
> el0_svc_common.constprop.0+0xcc/0xf0
> do_el0_svc+0x2c/0xb8
> el0_svc+0x2c/0x88
> el0t_64_sync_handler+0xb8/0xc0
> el0t_64_sync+0x18c/0x190
> qcom-venus: probe of aa00000.video-codec failed with error -16
>
> The fix is re-ordering the code related to OPP core. The OPP core
> expects all configuration options to be provided before the OPP
> table is added.
>
> Reported-by: Linux Kernel Functional Testing <lkft@xxxxxxxxxx>
> Signed-off-by: Viresh Kumar <viresh.kumar@xxxxxxxxxx>

Changed this to Suggested-by.

> Signed-off-by: Stanimir Varbanov <stanimir.varbanov@xxxxxxxxxx>
> ---
> drivers/media/platform/qcom/venus/pm_helpers.c | 10 +++++-----
> 1 file changed, 5 insertions(+), 5 deletions(-)

Applied. Thanks.

--
viresh