clk: qcom: videocc-sm8350: use HW_CTRL_TRIGGER for vcodec GDSCs
authorJohan Hovold <johan+linaro@kernel.org>
Sun, 1 Sep 2024 09:30:24 +0000 (11:30 +0200)
committerBjorn Andersson <andersson@kernel.org>
Thu, 10 Oct 2024 02:26:29 +0000 (21:26 -0500)
commitf903663a8dcd6e1656e52856afbf706cc14cbe6d
tree3c93dfd1ba26f1e41c80f91330fb483b4085c45d
parent9852d85ec9d492ebef56dc5f229416c925758edc
clk: qcom: videocc-sm8350: use HW_CTRL_TRIGGER for vcodec GDSCs

A recent change in the venus driver results in a stuck clock on the
Lenovo ThinkPad X13s, for example, when streaming video in firefox:

video_cc_mvs0_clk status stuck at 'off'
WARNING: CPU: 6 PID: 2885 at drivers/clk/qcom/clk-branch.c:87 clk_branch_wait+0x144/0x15c
...
Call trace:
 clk_branch_wait+0x144/0x15c
 clk_branch2_enable+0x30/0x40
 clk_core_enable+0xd8/0x29c
 clk_enable+0x2c/0x4c
 vcodec_clks_enable.isra.0+0x94/0xd8 [venus_core]
 coreid_power_v4+0x464/0x628 [venus_core]
 vdec_start_streaming+0xc4/0x510 [venus_dec]
 vb2_start_streaming+0x6c/0x180 [videobuf2_common]
 vb2_core_streamon+0x120/0x1dc [videobuf2_common]
 vb2_streamon+0x1c/0x6c [videobuf2_v4l2]
 v4l2_m2m_ioctl_streamon+0x30/0x80 [v4l2_mem2mem]
 v4l_streamon+0x24/0x30 [videodev]

using the out-of-tree sm8350/sc8280xp venus support. [1]

Update also the sm8350/sc8280xp GDSC definitions so that the hw control
mode can be changed at runtime as the venus driver now requires.

Fixes: ec9a652e5149 ("venus: pm_helpers: Use dev_pm_genpd_set_hwmode to switch GDSC mode on V6")
Link: https://lore.kernel.org/lkml/20230731-topic-8280_venus-v1-0-8c8bbe1983a5@linaro.org/
Cc: Jagadeesh Kona <quic_jkona@quicinc.com>
Cc: Taniya Das <quic_tdas@quicinc.com>
Cc: Abel Vesa <abel.vesa@linaro.org>
Cc: Konrad Dybcio <konradybcio@kernel.org>
Cc: stable@vger.kernel.org
Signed-off-by: Johan Hovold <johan+linaro@kernel.org>
Tested-by: Steev Klimaszewski <steev@kali.org>
Link: https://lore.kernel.org/r/20240901093024.18841-1-johan+linaro@kernel.org
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
drivers/clk/qcom/videocc-sm8350.c