• Stanimir Varbanov's avatar
    venus: pm_helpers: Fix warning in OPP during probe · 1d95af02
    Stanimir Varbanov authored
    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: default avatarLinux Kernel Functional Testing <lkft@linaro.org>
    Suggested-by: default avatarViresh Kumar <viresh.kumar@linaro.org>
    Signed-off-by: default avatarStanimir Varbanov <stanimir.varbanov@linaro.org>
    Signed-off-by: default avatarViresh Kumar <viresh.kumar@linaro.org>
    1d95af02
pm_helpers.c 25.4 KB