]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
drm/msm/dpu: fix x1e80100 intf_6 underrun/vsync interrupt
authorStephan Gerhold <stephan.gerhold@linaro.org>
Fri, 15 Nov 2024 12:55:13 +0000 (13:55 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 21 Feb 2025 13:01:44 +0000 (14:01 +0100)
commit ce55101e6ba188296dbdb9506665d26f23110292 upstream.

The IRQ indexes for the intf_6 underrun/vsync interrupts are swapped.
DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR, 16) is the actual underrun interrupt and
DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR, 17) is the vsync interrupt.

This causes timeout errors when using the DP2 controller, e.g.
  [dpu error]enc37 frame done timeout
  *ERROR* irq timeout id=37, intf_mode=INTF_MODE_VIDEO intf=6 wb=-1, pp=2, intr=0
  *ERROR* wait disable failed: id:37 intf:6 ret:-110

Correct them to fix these errors and make DP2 work properly.

Cc: stable@vger.kernel.org
Fixes: e3b1f369db5a ("drm/msm/dpu: Add X1E80100 support")
Signed-off-by: Stephan Gerhold <stephan.gerhold@linaro.org>
Tested-by: Johan Hovold <johan+linaro@kernel.org>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Reviewed-by: Abhinav Kumar <quic_abhinavk@quicinc.com>
Patchwork: https://patchwork.freedesktop.org/patch/624681/
Link: https://lore.kernel.org/r/20241115-x1e80100-dp2-fix-v1-1-727b9fe6f390@linaro.org
Signed-off-by: Abhinav Kumar <quic_abhinavk@quicinc.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_9_2_x1e80100.h

index e084406ebb0711ec3e317b657e7328cc2a1d6af9..4f110be6b750d30e158d517aaa507c7b4eda0af4 100644 (file)
@@ -391,8 +391,8 @@ static const struct dpu_intf_cfg x1e80100_intf[] = {
                .type = INTF_DP,
                .controller_id = MSM_DP_CONTROLLER_2,
                .prog_fetch_lines_worst_case = 24,
-               .intr_underrun = DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR, 17),
-               .intr_vsync = DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR, 16),
+               .intr_underrun = DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR, 16),
+               .intr_vsync = DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR, 17),
        }, {
                .name = "intf_7", .id = INTF_7,
                .base = 0x3b000, .len = 0x280,