]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
drm/msm/dpu: Add Kaanapali WB support
authorYuanjie Yang <yuanjie.yang@oss.qualcomm.com>
Thu, 15 Jan 2026 09:27:48 +0000 (17:27 +0800)
committerDmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Wed, 21 Jan 2026 00:07:23 +0000 (02:07 +0200)
Add support for Kaanapali WB, which introduce register
relocations, use the updated registeri definition to ensure
compatibility.

Co-developed-by: Yongxing Mou <yongxing.mou@oss.qualcomm.com>
Signed-off-by: Yongxing Mou <yongxing.mou@oss.qualcomm.com>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Signed-off-by: Yuanjie Yang <yuanjie.yang@oss.qualcomm.com>
Patchwork: https://patchwork.freedesktop.org/patch/698715/
Link: https://lore.kernel.org/r/20260115092749.533-12-yuanjie.yang@oss.qualcomm.com
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
drivers/gpu/drm/msm/disp/dpu1/dpu_hw_wb.c

index 478a091aeccfc7cf298798e1c119df56737e3dc4..4da4bd6a997c53bf96839bb81b17b20a463ea25b 100644 (file)
@@ -148,6 +148,15 @@ static void dpu_hw_wb_setup_qos_lut(struct dpu_hw_wb *ctx,
                              cfg);
 }
 
+static void dpu_hw_wb_setup_qos_lut_v13(struct dpu_hw_wb *ctx,
+                                       struct dpu_hw_qos_cfg *cfg)
+{
+       if (!ctx || !cfg)
+               return;
+
+       dpu_hw_setup_qos_lut_v13(&ctx->hw, cfg);
+}
+
 static void dpu_hw_wb_setup_cdp(struct dpu_hw_wb *ctx,
                                const struct msm_format *fmt,
                                bool enable)
@@ -202,8 +211,12 @@ static void _setup_wb_ops(struct dpu_hw_wb_ops *ops,
        if (test_bit(DPU_WB_XY_ROI_OFFSET, &features))
                ops->setup_roi = dpu_hw_wb_roi;
 
-       if (test_bit(DPU_WB_QOS, &features))
-               ops->setup_qos_lut = dpu_hw_wb_setup_qos_lut;
+       if (test_bit(DPU_WB_QOS, &features)) {
+               if (mdss_rev->core_major_ver >= 13)
+                       ops->setup_qos_lut = dpu_hw_wb_setup_qos_lut_v13;
+               else
+                       ops->setup_qos_lut = dpu_hw_wb_setup_qos_lut;
+       }
 
        if (test_bit(DPU_WB_CDP, &features))
                ops->setup_cdp = dpu_hw_wb_setup_cdp;