All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] venus: pm_helpers: Fix warning in OPP during probe
@ 2022-08-01 15:16 Stanimir Varbanov
  2022-08-02  4:16 ` Viresh Kumar
  0 siblings, 1 reply; 2+ messages in thread
From: Stanimir Varbanov @ 2022-08-01 15:16 UTC (permalink / raw)
  To: linux-media, linux-arm-msm, linux-kernel
  Cc: Viresh Kumar, Andy Gross, Bjorn Andersson, Konrad Dybcio,
	Mauro Carvalho Chehab, Stanimir Varbanov,
	Linux Kernel Functional Testing

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@linaro.org>
Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: Stanimir Varbanov <stanimir.varbanov@linaro.org>
---
 drivers/media/platform/qcom/venus/pm_helpers.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/drivers/media/platform/qcom/venus/pm_helpers.c b/drivers/media/platform/qcom/venus/pm_helpers.c
index cb48c5ff3dee..c93d2906e4c7 100644
--- a/drivers/media/platform/qcom/venus/pm_helpers.c
+++ b/drivers/media/platform/qcom/venus/pm_helpers.c
@@ -875,7 +875,7 @@ static int vcodec_domains_get(struct venus_core *core)
 	}
 
 skip_pmdomains:
-	if (!core->has_opp_table)
+	if (!core->res->opp_pmdomain)
 		return 0;
 
 	/* Attach the power domain for setting performance state */
@@ -1007,6 +1007,10 @@ static int core_get_v4(struct venus_core *core)
 	if (ret)
 		return ret;
 
+	ret = vcodec_domains_get(core);
+	if (ret)
+		return ret;
+
 	if (core->res->opp_pmdomain) {
 		ret = devm_pm_opp_of_add_table(dev);
 		if (!ret) {
@@ -1017,10 +1021,6 @@ static int core_get_v4(struct venus_core *core)
 		}
 	}
 
-	ret = vcodec_domains_get(core);
-	if (ret)
-		return ret;
-
 	return 0;
 }
 
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [PATCH] venus: pm_helpers: Fix warning in OPP during probe
  2022-08-01 15:16 [PATCH] venus: pm_helpers: Fix warning in OPP during probe Stanimir Varbanov
@ 2022-08-02  4:16 ` Viresh Kumar
  0 siblings, 0 replies; 2+ messages in thread
From: Viresh Kumar @ 2022-08-02  4:16 UTC (permalink / raw)
  To: Stanimir Varbanov
  Cc: linux-media, linux-arm-msm, linux-kernel, Andy Gross,
	Bjorn Andersson, Konrad Dybcio, Mauro Carvalho Chehab,
	Linux Kernel Functional Testing

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@linaro.org>
> Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>

Changed this to Suggested-by.

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

Applied. Thanks.

-- 
viresh

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2022-08-02  4:16 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-08-01 15:16 [PATCH] venus: pm_helpers: Fix warning in OPP during probe Stanimir Varbanov
2022-08-02  4:16 ` Viresh Kumar

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.