Message ID | 20240901093024.18841-1-johan+linaro@kernel.org (mailing list archive) |
---|---|
State | Accepted |
Commit | f903663a8dcd6e1656e52856afbf706cc14cbe6d |
Headers | show |
Series | clk: qcom: videocc-sm8350: use HW_CTRL_TRIGGER for vcodec GDSCs | expand |
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>
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
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,
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, };
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(-)