drivers/clk/qcom/videocc-sm8350.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
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/ # [1]
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>
Signed-off-by: Johan Hovold <johan+linaro@kernel.org>
---
drivers/clk/qcom/videocc-sm8350.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/clk/qcom/videocc-sm8350.c b/drivers/clk/qcom/videocc-sm8350.c
index 5bd6fe3e1298..874d4da95ff8 100644
--- a/drivers/clk/qcom/videocc-sm8350.c
+++ b/drivers/clk/qcom/videocc-sm8350.c
@@ -452,7 +452,7 @@ static struct gdsc mvs0_gdsc = {
.pd = {
.name = "mvs0_gdsc",
},
- .flags = HW_CTRL | RETAIN_FF_ENABLE,
+ .flags = HW_CTRL_TRIGGER | RETAIN_FF_ENABLE,
.pwrsts = PWRSTS_OFF_ON,
};
@@ -461,7 +461,7 @@ static struct gdsc mvs1_gdsc = {
.pd = {
.name = "mvs1_gdsc",
},
- .flags = HW_CTRL | RETAIN_FF_ENABLE,
+ .flags = HW_CTRL_TRIGGER | RETAIN_FF_ENABLE,
.pwrsts = PWRSTS_OFF_ON,
};
--
2.44.2
On Sun, 01 Sep 2024 11:30:24 +0200, Johan Hovold wrote:
> 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]
>
> [...]
Applied, thanks!
[1/1] clk: qcom: videocc-sm8350: use HW_CTRL_TRIGGER for vcodec GDSCs
commit: f903663a8dcd6e1656e52856afbf706cc14cbe6d
Best regards,
--
Bjorn Andersson <andersson@kernel.org>
On Sun, Sep 01, 2024 at 11:30:24AM +0200, Johan Hovold wrote:
> 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/ # [1]
> 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>
> Signed-off-by: Johan Hovold <johan+linaro@kernel.org>
This one did not make it into 6.11 and should now be backported as well:
Cc: stable@vger.kernel.org # 6.11
Bjorn, can you pick it up for 6.12-rc?
Johan
Hi Johan,
On Sun, Sep 1, 2024 at 4:31 AM Johan Hovold <johan+linaro@kernel.org> wrote:
>
> 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/ # [1]
> 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>
> Signed-off-by: Johan Hovold <johan+linaro@kernel.org>
> ---
> drivers/clk/qcom/videocc-sm8350.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/clk/qcom/videocc-sm8350.c b/drivers/clk/qcom/videocc-sm8350.c
> index 5bd6fe3e1298..874d4da95ff8 100644
> --- a/drivers/clk/qcom/videocc-sm8350.c
> +++ b/drivers/clk/qcom/videocc-sm8350.c
> @@ -452,7 +452,7 @@ static struct gdsc mvs0_gdsc = {
> .pd = {
> .name = "mvs0_gdsc",
> },
> - .flags = HW_CTRL | RETAIN_FF_ENABLE,
> + .flags = HW_CTRL_TRIGGER | RETAIN_FF_ENABLE,
> .pwrsts = PWRSTS_OFF_ON,
> };
>
> @@ -461,7 +461,7 @@ static struct gdsc mvs1_gdsc = {
> .pd = {
> .name = "mvs1_gdsc",
> },
> - .flags = HW_CTRL | RETAIN_FF_ENABLE,
> + .flags = HW_CTRL_TRIGGER | RETAIN_FF_ENABLE,
> .pwrsts = PWRSTS_OFF_ON,
> };
>
> --
> 2.44.2
>
>
Being as I saw this as well locally, I've now tested with this patch
on top of 6.11-rc6 and can confirm that I don't see the splat anymore.
Tested-by: Steev Klimaszewski <steev@kali.org>
© 2016 - 2026 Red Hat, Inc.