[PATCH 4/4] drm/msm/dpu: add source split order op for DPU 13.x

From: Mahadevan P

Date: Sat Oct 10 2026 - 09:39:20 EST


DPU 13.x places the SSPP op-mode register in separate REC0 and REC1
banks. Add the source split order operation for this layout, using
the shared helper to update SRC_SPLIT_ORDER in the selected bank.

Assisted-by: LLM
Signed-off-by: Mahadevan P <mahadevan.p@xxxxxxxxxxxxxxxx>
---
drivers/gpu/drm/msm/disp/dpu1/dpu_hw_sspp_v13.c | 14 ++++++++++++++
1 file changed, 14 insertions(+)

diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_sspp_v13.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_sspp_v13.c
index f8f96ad971d7..bdf1201d8134 100644
--- a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_sspp_v13.c
+++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_sspp_v13.c
@@ -149,6 +149,19 @@ static void dpu_hw_sspp_setup_format_v13(struct dpu_sw_pipe *pipe,
unpack_pat_off, format_off, ubwc_ctrl_off, ubwc_err_off);
}

+static void dpu_hw_sspp_setup_src_split_order_v13(struct dpu_sw_pipe *pipe,
+ bool right)
+{
+ struct dpu_hw_sspp *ctx = pipe->sspp;
+ u32 offset;
+
+ if (!ctx)
+ return;
+
+ offset = dpu_hw_sspp_calculate_rect_off(pipe->multirect_index, ctx);
+ dpu_hw_setup_src_split_order_impl(ctx, offset + SSPP_REC_SRC_OP_MODE, right);
+}
+
static void dpu_hw_sspp_setup_pe_config_v13(struct dpu_hw_sspp *ctx,
struct dpu_hw_pixel_ext *pe_ext)
{
@@ -299,6 +312,7 @@ void dpu_hw_sspp_init_v13(struct dpu_hw_sspp *c,
c->ops.setup_sourceaddress = dpu_hw_sspp_setup_sourceaddress_v13;
c->ops.setup_solidfill = dpu_hw_sspp_setup_solidfill_v13;
c->ops.setup_pe = dpu_hw_sspp_setup_pe_config_v13;
+ c->ops.setup_src_split_order = dpu_hw_sspp_setup_src_split_order_v13;

if (test_bit(DPU_SSPP_QOS, &features)) {
c->ops.setup_qos_lut = dpu_hw_sspp_setup_qos_lut_v13;

--
2.34.1