From: Esha Bharadwaj <quic_ebhar...@quicinc.com>

Add new block for concurrent writeback mux to HW catalog and change
pingpong index names to distinguish between general use pingpong blocks
and pingpong blocks dedicated for concurrent writeback

Signed-off-by: Esha Bharadwaj <quic_ebhar...@quicinc.com>
Signed-off-by: Jessica Zhang <quic_jessz...@quicinc.com>
---
 .../drm/msm/disp/dpu1/catalog/dpu_10_0_sm8650.h    | 29 +++++++++++++++++++---
 .../gpu/drm/msm/disp/dpu1/catalog/dpu_8_1_sm8450.h |  4 +--
 .../gpu/drm/msm/disp/dpu1/catalog/dpu_9_0_sm8550.h |  4 +--
 .../drm/msm/disp/dpu1/catalog/dpu_9_2_x1e80100.h   |  4 +--
 drivers/gpu/drm/msm/disp/dpu1/dpu_hw_catalog.h     | 13 ++++++++++
 drivers/gpu/drm/msm/disp/dpu1/dpu_hw_mdss.h        |  8 +++---
 6 files changed, 48 insertions(+), 14 deletions(-)

diff --git a/drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_10_0_sm8650.h 
b/drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_10_0_sm8650.h
index eb5dfff2ec4f..ce2773029763 100644
--- a/drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_10_0_sm8650.h
+++ b/drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_10_0_sm8650.h
@@ -252,25 +252,25 @@ static const struct dpu_pingpong_cfg sm8650_pp[] = {
                .merge_3d = MERGE_3D_2,
                .intr_done = DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR2, 31),
        }, {
-               .name = "pingpong_6", .id = PINGPONG_6,
+               .name = "pingpong_6", .id = PINGPONG_CWB_0,
                .base = 0x66000, .len = 0,
                .features = BIT(DPU_PINGPONG_DITHER),
                .sblk = &sc7280_pp_sblk,
                .merge_3d = MERGE_3D_3,
        }, {
-               .name = "pingpong_7", .id = PINGPONG_7,
+               .name = "pingpong_7", .id = PINGPONG_CWB_1,
                .base = 0x66400, .len = 0,
                .features = BIT(DPU_PINGPONG_DITHER),
                .sblk = &sc7280_pp_sblk,
                .merge_3d = MERGE_3D_3,
        }, {
-               .name = "pingpong_8", .id = PINGPONG_8,
+               .name = "pingpong_8", .id = PINGPONG_CWB_2,
                .base = 0x7e000, .len = 0,
                .features = BIT(DPU_PINGPONG_DITHER),
                .sblk = &sc7280_pp_sblk,
                .merge_3d = MERGE_3D_4,
        }, {
-               .name = "pingpong_9", .id = PINGPONG_9,
+               .name = "pingpong_9", .id = PINGPONG_CWB_3,
                .base = 0x7e400, .len = 0,
                .features = BIT(DPU_PINGPONG_DITHER),
                .sblk = &sc7280_pp_sblk,
@@ -350,6 +350,25 @@ static const struct dpu_wb_cfg sm8650_wb[] = {
        },
 };
 
+static const struct dpu_cwb_cfg sm8650_cwb[] = {
+       {
+               .name = "cwb_0", .id = CWB_0,
+               .base = 0x66200, .len = 0x8,
+       },
+       {
+               .name = "cwb_1", .id = CWB_1,
+               .base = 0x66600, .len = 0x8,
+       },
+       {
+               .name = "cwb_2", .id = CWB_2,
+               .base = 0x7E200, .len = 0x8,
+       },
+       {
+               .name = "cwb_3", .id = CWB_3,
+               .base = 0x7E600, .len = 0x8,
+       },
+};
+
 static const struct dpu_intf_cfg sm8650_intf[] = {
        {
                .name = "intf_0", .id = INTF_0,
@@ -447,6 +466,8 @@ const struct dpu_mdss_cfg dpu_sm8650_cfg = {
        .merge_3d = sm8650_merge_3d,
        .wb_count = ARRAY_SIZE(sm8650_wb),
        .wb = sm8650_wb,
+       .cwb_count = ARRAY_SIZE(sm8650_cwb),
+       .cwb = sm8650_cwb,
        .intf_count = ARRAY_SIZE(sm8650_intf),
        .intf = sm8650_intf,
        .vbif_count = ARRAY_SIZE(sm8650_vbif),
diff --git a/drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_8_1_sm8450.h 
b/drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_8_1_sm8450.h
index a1779c5597ae..c5c95c6654dd 100644
--- a/drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_8_1_sm8450.h
+++ b/drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_8_1_sm8450.h
@@ -257,13 +257,13 @@ static const struct dpu_pingpong_cfg sm8450_pp[] = {
                .merge_3d = MERGE_3D_2,
                .intr_done = DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR2, 31),
        }, {
-               .name = "pingpong_6", .id = PINGPONG_6,
+               .name = "pingpong_6", .id = PINGPONG_CWB_0,
                .base = 0x65800, .len = 0,
                .features = BIT(DPU_PINGPONG_DITHER),
                .sblk = &sc7280_pp_sblk,
                .merge_3d = MERGE_3D_3,
        }, {
-               .name = "pingpong_7", .id = PINGPONG_7,
+               .name = "pingpong_7", .id = PINGPONG_CWB_1,
                .base = 0x65c00, .len = 0,
                .features = BIT(DPU_PINGPONG_DITHER),
                .sblk = &sc7280_pp_sblk,
diff --git a/drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_9_0_sm8550.h 
b/drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_9_0_sm8550.h
index ad48defa154f..31c4a3025e51 100644
--- a/drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_9_0_sm8550.h
+++ b/drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_9_0_sm8550.h
@@ -251,13 +251,13 @@ static const struct dpu_pingpong_cfg sm8550_pp[] = {
                .merge_3d = MERGE_3D_2,
                .intr_done = DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR2, 31),
        }, {
-               .name = "pingpong_6", .id = PINGPONG_6,
+               .name = "pingpong_6", .id = PINGPONG_CWB_0,
                .base = 0x66000, .len = 0,
                .features = BIT(DPU_PINGPONG_DITHER),
                .sblk = &sc7280_pp_sblk,
                .merge_3d = MERGE_3D_3,
        }, {
-               .name = "pingpong_7", .id = PINGPONG_7,
+               .name = "pingpong_7", .id = PINGPONG_CWB_1,
                .base = 0x66400, .len = 0,
                .features = BIT(DPU_PINGPONG_DITHER),
                .sblk = &sc7280_pp_sblk,
diff --git a/drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_9_2_x1e80100.h 
b/drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_9_2_x1e80100.h
index a3e60ac70689..24bb6b13eaba 100644
--- a/drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_9_2_x1e80100.h
+++ b/drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_9_2_x1e80100.h
@@ -251,13 +251,13 @@ static const struct dpu_pingpong_cfg x1e80100_pp[] = {
                .merge_3d = MERGE_3D_2,
                .intr_done = DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR2, 31),
        }, {
-               .name = "pingpong_6", .id = PINGPONG_6,
+               .name = "pingpong_6", .id = PINGPONG_CWB_0,
                .base = 0x66000, .len = 0,
                .features = BIT(DPU_PINGPONG_DITHER),
                .sblk = &sc7280_pp_sblk,
                .merge_3d = MERGE_3D_3,
        }, {
-               .name = "pingpong_7", .id = PINGPONG_7,
+               .name = "pingpong_7", .id = PINGPONG_CWB_1,
                .base = 0x66400, .len = 0,
                .features = BIT(DPU_PINGPONG_DITHER),
                .sblk = &sc7280_pp_sblk,
diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_catalog.h 
b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_catalog.h
index 37e18e820a20..b42d8b3640e2 100644
--- a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_catalog.h
+++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_catalog.h
@@ -621,6 +621,16 @@ struct dpu_wb_cfg {
        enum dpu_clk_ctrl_type clk_ctrl;
 };
 
+/*
+ * struct dpu_cwb_cfg : MDP CWB mux instance info
+ * @id:                enum identifying this block
+ * @base:              register base offset to mdss
+ * @features           bit mask identifying sub-blocks/features
+ */
+struct dpu_cwb_cfg {
+       DPU_HW_BLK_INFO;
+};
+
 /**
  * struct dpu_vbif_dynamic_ot_cfg - dynamic OT setting
  * @pps                pixel per seconds
@@ -823,6 +833,9 @@ struct dpu_mdss_cfg {
        u32 dspp_count;
        const struct dpu_dspp_cfg *dspp;
 
+       u32 cwb_count;
+       const struct dpu_cwb_cfg *cwb;
+
        /* Add additional block data structures here */
 
        const struct dpu_perf_cfg *perf;
diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_mdss.h 
b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_mdss.h
index a2eff36a2224..c17d2d356f7a 100644
--- a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_mdss.h
+++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_mdss.h
@@ -181,10 +181,10 @@ enum dpu_pingpong {
        PINGPONG_3,
        PINGPONG_4,
        PINGPONG_5,
-       PINGPONG_6,
-       PINGPONG_7,
-       PINGPONG_8,
-       PINGPONG_9,
+       PINGPONG_CWB_0,
+       PINGPONG_CWB_1,
+       PINGPONG_CWB_2,
+       PINGPONG_CWB_3,
        PINGPONG_S0,
        PINGPONG_MAX
 };

-- 
2.34.1

Reply via email to