Add max_dsc_encoder_width to dpu_caps struct and max_linewidth to dpu_pingpong_cfg for all chipsets within the HW catalog.
Note: The max supported PINGPONG width was 4096 but increased to 5120 after DPU 6.x. In addition, DPU 8.x+ increases the max supported width of PINGPONG_0 specifically to 8960. Signed-off-by: Jessica Zhang <jessica.zh...@oss.qualcomm.com> --- drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_10_0_sm8650.h | 11 +++++++++++ drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_1_14_msm8937.h | 2 ++ drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_1_15_msm8917.h | 1 + drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_1_16_msm8953.h | 2 ++ drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_1_7_msm8996.h | 4 ++++ drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_3_0_msm8998.h | 4 ++++ drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_3_2_sdm660.h | 4 ++++ drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_3_3_sdm630.h | 2 ++ drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_4_0_sdm845.h | 4 ++++ drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_5_0_sm8150.h | 6 ++++++ drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_5_1_sc8180x.h | 6 ++++++ drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_5_2_sm7150.h | 4 ++++ drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_5_3_sm6150.h | 3 +++ drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_5_4_sm6125.h | 2 ++ drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_6_0_sm8250.h | 6 ++++++ drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_6_2_sc7180.h | 2 ++ drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_6_3_sm6115.h | 1 + drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_6_4_sm6350.h | 2 ++ drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_6_5_qcm2290.h | 1 + drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_6_9_sm6375.h | 1 + drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_7_0_sm8350.h | 7 +++++++ drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_7_2_sc7280.h | 5 +++++ drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_8_0_sc8280xp.h | 7 +++++++ drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_8_1_sm8450.h | 9 +++++++++ drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_8_4_sa8775p.h | 9 +++++++++ drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_9_0_sm8550.h | 9 +++++++++ drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_9_2_x1e80100.h | 9 +++++++++ drivers/gpu/drm/msm/disp/dpu1/dpu_hw_catalog.h | 10 ++++++++++ 28 files changed, 133 insertions(+) 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 6ac97c378056..9db31591e27e 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 @@ -9,6 +9,7 @@ static const struct dpu_caps sm8650_dpu_caps = { .max_mixer_width = DEFAULT_DPU_OUTPUT_LINE_WIDTH, + .max_dsc_encoder_width = DEFAULT_DSC_ENCODER_MAX_WIDTH, .max_mixer_blendstages = 0xb, .has_src_split = true, .has_dim_layer = true, @@ -214,6 +215,7 @@ static const struct dpu_pingpong_cfg sm8650_pp[] = { { .name = "pingpong_0", .id = PINGPONG_0, .base = 0x69000, .len = 0, + .max_linewidth = DPU_8_x_MAX_PINGPONG_0_WIDTH, .features = BIT(DPU_PINGPONG_DITHER), .sblk = &sc7280_pp_sblk, .merge_3d = MERGE_3D_0, @@ -221,6 +223,7 @@ static const struct dpu_pingpong_cfg sm8650_pp[] = { }, { .name = "pingpong_1", .id = PINGPONG_1, .base = 0x6a000, .len = 0, + .max_linewidth = DPU_6_x_MAX_PINGPONG_WIDTH, .features = BIT(DPU_PINGPONG_DITHER), .sblk = &sc7280_pp_sblk, .merge_3d = MERGE_3D_0, @@ -228,6 +231,7 @@ static const struct dpu_pingpong_cfg sm8650_pp[] = { }, { .name = "pingpong_2", .id = PINGPONG_2, .base = 0x6b000, .len = 0, + .max_linewidth = DPU_6_x_MAX_PINGPONG_WIDTH, .features = BIT(DPU_PINGPONG_DITHER), .sblk = &sc7280_pp_sblk, .merge_3d = MERGE_3D_1, @@ -235,6 +239,7 @@ static const struct dpu_pingpong_cfg sm8650_pp[] = { }, { .name = "pingpong_3", .id = PINGPONG_3, .base = 0x6c000, .len = 0, + .max_linewidth = DPU_6_x_MAX_PINGPONG_WIDTH, .features = BIT(DPU_PINGPONG_DITHER), .sblk = &sc7280_pp_sblk, .merge_3d = MERGE_3D_1, @@ -242,6 +247,7 @@ static const struct dpu_pingpong_cfg sm8650_pp[] = { }, { .name = "pingpong_4", .id = PINGPONG_4, .base = 0x6d000, .len = 0, + .max_linewidth = DPU_6_x_MAX_PINGPONG_WIDTH, .features = BIT(DPU_PINGPONG_DITHER), .sblk = &sc7280_pp_sblk, .merge_3d = MERGE_3D_2, @@ -249,6 +255,7 @@ static const struct dpu_pingpong_cfg sm8650_pp[] = { }, { .name = "pingpong_5", .id = PINGPONG_5, .base = 0x6e000, .len = 0, + .max_linewidth = DPU_6_x_MAX_PINGPONG_WIDTH, .features = BIT(DPU_PINGPONG_DITHER), .sblk = &sc7280_pp_sblk, .merge_3d = MERGE_3D_2, @@ -256,24 +263,28 @@ static const struct dpu_pingpong_cfg sm8650_pp[] = { }, { .name = "pingpong_cwb_0", .id = PINGPONG_CWB_0, .base = 0x66000, .len = 0, + .max_linewidth = DPU_6_x_MAX_PINGPONG_WIDTH, .features = BIT(DPU_PINGPONG_DITHER), .sblk = &sc7280_pp_sblk, .merge_3d = MERGE_3D_3, }, { .name = "pingpong_cwb_1", .id = PINGPONG_CWB_1, .base = 0x66400, .len = 0, + .max_linewidth = DPU_6_x_MAX_PINGPONG_WIDTH, .features = BIT(DPU_PINGPONG_DITHER), .sblk = &sc7280_pp_sblk, .merge_3d = MERGE_3D_3, }, { .name = "pingpong_cwb_2", .id = PINGPONG_CWB_2, .base = 0x7e000, .len = 0, + .max_linewidth = DPU_6_x_MAX_PINGPONG_WIDTH, .features = BIT(DPU_PINGPONG_DITHER), .sblk = &sc7280_pp_sblk, .merge_3d = MERGE_3D_4, }, { .name = "pingpong_cwb_3", .id = PINGPONG_CWB_3, .base = 0x7e400, .len = 0, + .max_linewidth = DPU_6_x_MAX_PINGPONG_WIDTH, .features = BIT(DPU_PINGPONG_DITHER), .sblk = &sc7280_pp_sblk, .merge_3d = MERGE_3D_4, diff --git a/drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_1_14_msm8937.h b/drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_1_14_msm8937.h index 1f32807bb5e5..4ac89cadf328 100644 --- a/drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_1_14_msm8937.h +++ b/drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_1_14_msm8937.h @@ -101,6 +101,7 @@ static const struct dpu_pingpong_cfg msm8937_pp[] = { .name = "pingpong_0", .id = PINGPONG_0, .base = 0x70000, .len = 0xd4, .features = PINGPONG_MSM8996_MASK, + .max_linewidth = DPU_1_x_MAX_PINGPONG_WIDTH, .sblk = &msm8996_pp_sblk, .intr_done = DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR, 8), .intr_rdptr = DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR, 12), @@ -108,6 +109,7 @@ static const struct dpu_pingpong_cfg msm8937_pp[] = { .name = "pingpong_1", .id = PINGPONG_1, .base = 0x70800, .len = 0xd4, .features = PINGPONG_MSM8996_MASK, + .max_linewidth = DPU_1_x_MAX_PINGPONG_WIDTH, .sblk = &msm8996_pp_sblk, .intr_done = DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR, 9), .intr_rdptr = DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR, 13), diff --git a/drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_1_15_msm8917.h b/drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_1_15_msm8917.h index 42131959ff22..dbd4129439a8 100644 --- a/drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_1_15_msm8917.h +++ b/drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_1_15_msm8917.h @@ -94,6 +94,7 @@ static const struct dpu_pingpong_cfg msm8917_pp[] = { .name = "pingpong_0", .id = PINGPONG_0, .base = 0x70000, .len = 0xd4, .features = PINGPONG_MSM8996_MASK, + .max_linewidth = DPU_1_x_MAX_PINGPONG_WIDTH, .sblk = &msm8996_pp_sblk, .intr_done = DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR, 8), .intr_rdptr = DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR, 12), diff --git a/drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_1_16_msm8953.h b/drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_1_16_msm8953.h index 2b4723a5c676..a93976f6167c 100644 --- a/drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_1_16_msm8953.h +++ b/drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_1_16_msm8953.h @@ -101,6 +101,7 @@ static const struct dpu_pingpong_cfg msm8953_pp[] = { .name = "pingpong_0", .id = PINGPONG_0, .base = 0x70000, .len = 0xd4, .features = PINGPONG_MSM8996_MASK, + .max_linewidth = DPU_1_x_MAX_PINGPONG_WIDTH, .sblk = &msm8996_pp_sblk, .intr_done = DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR, 8), .intr_rdptr = DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR, 12), @@ -108,6 +109,7 @@ static const struct dpu_pingpong_cfg msm8953_pp[] = { .name = "pingpong_1", .id = PINGPONG_1, .base = 0x70800, .len = 0xd4, .features = PINGPONG_MSM8996_MASK, + .max_linewidth = DPU_1_x_MAX_PINGPONG_WIDTH, .sblk = &msm8996_pp_sblk, .intr_done = DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR, 9), .intr_rdptr = DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR, 13), diff --git a/drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_1_7_msm8996.h b/drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_1_7_msm8996.h index 5cf19de71f06..e2e99504c715 100644 --- a/drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_1_7_msm8996.h +++ b/drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_1_7_msm8996.h @@ -181,6 +181,7 @@ static const struct dpu_pingpong_cfg msm8996_pp[] = { { .name = "pingpong_0", .id = PINGPONG_0, .base = 0x70000, .len = 0xd4, + .max_linewidth = DPU_1_x_MAX_PINGPONG_WIDTH, .features = PINGPONG_MSM8996_TE2_MASK, .sblk = &msm8996_pp_sblk_te, .intr_done = DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR, 8), @@ -188,6 +189,7 @@ static const struct dpu_pingpong_cfg msm8996_pp[] = { }, { .name = "pingpong_1", .id = PINGPONG_1, .base = 0x70800, .len = 0xd4, + .max_linewidth = DPU_1_x_MAX_PINGPONG_WIDTH, .features = PINGPONG_MSM8996_TE2_MASK, .sblk = &msm8996_pp_sblk_te, .intr_done = DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR, 9), @@ -195,6 +197,7 @@ static const struct dpu_pingpong_cfg msm8996_pp[] = { }, { .name = "pingpong_2", .id = PINGPONG_2, .base = 0x71000, .len = 0xd4, + .max_linewidth = DPU_1_x_MAX_PINGPONG_WIDTH, .features = PINGPONG_MSM8996_MASK, .sblk = &msm8996_pp_sblk, .intr_done = DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR, 10), @@ -202,6 +205,7 @@ static const struct dpu_pingpong_cfg msm8996_pp[] = { }, { .name = "pingpong_3", .id = PINGPONG_3, .base = 0x71800, .len = 0xd4, + .max_linewidth = DPU_1_x_MAX_PINGPONG_WIDTH, .features = PINGPONG_MSM8996_MASK, .sblk = &msm8996_pp_sblk, .intr_done = DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR, 11), diff --git a/drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_3_0_msm8998.h b/drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_3_0_msm8998.h index 746474679ef5..1bdffe168fb1 100644 --- a/drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_3_0_msm8998.h +++ b/drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_3_0_msm8998.h @@ -170,6 +170,7 @@ static const struct dpu_pingpong_cfg msm8998_pp[] = { { .name = "pingpong_0", .id = PINGPONG_0, .base = 0x70000, .len = 0xd4, + .max_linewidth = DPU_1_x_MAX_PINGPONG_WIDTH, .features = PINGPONG_SDM845_TE2_MASK, .sblk = &sdm845_pp_sblk_te, .intr_done = DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR, 8), @@ -177,6 +178,7 @@ static const struct dpu_pingpong_cfg msm8998_pp[] = { }, { .name = "pingpong_1", .id = PINGPONG_1, .base = 0x70800, .len = 0xd4, + .max_linewidth = DPU_1_x_MAX_PINGPONG_WIDTH, .features = PINGPONG_SDM845_TE2_MASK, .sblk = &sdm845_pp_sblk_te, .intr_done = DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR, 9), @@ -184,6 +186,7 @@ static const struct dpu_pingpong_cfg msm8998_pp[] = { }, { .name = "pingpong_2", .id = PINGPONG_2, .base = 0x71000, .len = 0xd4, + .max_linewidth = DPU_1_x_MAX_PINGPONG_WIDTH, .features = PINGPONG_SDM845_MASK, .sblk = &sdm845_pp_sblk, .intr_done = DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR, 10), @@ -191,6 +194,7 @@ static const struct dpu_pingpong_cfg msm8998_pp[] = { }, { .name = "pingpong_3", .id = PINGPONG_3, .base = 0x71800, .len = 0xd4, + .max_linewidth = DPU_1_x_MAX_PINGPONG_WIDTH, .features = PINGPONG_SDM845_MASK, .sblk = &sdm845_pp_sblk, .intr_done = DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR, 11), diff --git a/drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_3_2_sdm660.h b/drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_3_2_sdm660.h index 4f2f68b07f20..03f46a652449 100644 --- a/drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_3_2_sdm660.h +++ b/drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_3_2_sdm660.h @@ -141,6 +141,7 @@ static const struct dpu_pingpong_cfg sdm660_pp[] = { { .name = "pingpong_0", .id = PINGPONG_0, .base = 0x70000, .len = 0xd4, + .max_linewidth = DPU_1_x_MAX_PINGPONG_WIDTH, .features = PINGPONG_SDM845_TE2_MASK, .sblk = &sdm845_pp_sblk_te, .intr_done = DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR, 8), @@ -148,6 +149,7 @@ static const struct dpu_pingpong_cfg sdm660_pp[] = { }, { .name = "pingpong_1", .id = PINGPONG_1, .base = 0x70800, .len = 0xd4, + .max_linewidth = DPU_1_x_MAX_PINGPONG_WIDTH, .features = PINGPONG_SDM845_TE2_MASK, .sblk = &sdm845_pp_sblk_te, .intr_done = DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR, 9), @@ -155,6 +157,7 @@ static const struct dpu_pingpong_cfg sdm660_pp[] = { }, { .name = "pingpong_2", .id = PINGPONG_2, .base = 0x71000, .len = 0xd4, + .max_linewidth = DPU_1_x_MAX_PINGPONG_WIDTH, .features = PINGPONG_SDM845_MASK, .sblk = &sdm845_pp_sblk, .intr_done = DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR, 10), @@ -162,6 +165,7 @@ static const struct dpu_pingpong_cfg sdm660_pp[] = { }, { .name = "pingpong_3", .id = PINGPONG_3, .base = 0x71800, .len = 0xd4, + .max_linewidth = DPU_1_x_MAX_PINGPONG_WIDTH, .features = PINGPONG_SDM845_MASK, .sblk = &sdm845_pp_sblk, .intr_done = DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR, 11), diff --git a/drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_3_3_sdm630.h b/drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_3_3_sdm630.h index c70bef025ac4..011e98e6e7db 100644 --- a/drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_3_3_sdm630.h +++ b/drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_3_3_sdm630.h @@ -115,6 +115,7 @@ static const struct dpu_pingpong_cfg sdm630_pp[] = { { .name = "pingpong_0", .id = PINGPONG_0, .base = 0x70000, .len = 0xd4, + .max_linewidth = DPU_1_x_MAX_PINGPONG_WIDTH, .features = PINGPONG_SDM845_TE2_MASK, .sblk = &sdm845_pp_sblk_te, .intr_done = DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR, 8), @@ -122,6 +123,7 @@ static const struct dpu_pingpong_cfg sdm630_pp[] = { }, { .name = "pingpong_2", .id = PINGPONG_2, .base = 0x71000, .len = 0xd4, + .max_linewidth = DPU_1_x_MAX_PINGPONG_WIDTH, .features = PINGPONG_SDM845_MASK, .sblk = &sdm845_pp_sblk, .intr_done = DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR, 10), diff --git a/drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_4_0_sdm845.h b/drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_4_0_sdm845.h index ab7b4822ca63..152fa5ea12dd 100644 --- a/drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_4_0_sdm845.h +++ b/drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_4_0_sdm845.h @@ -194,6 +194,7 @@ static const struct dpu_pingpong_cfg sdm845_pp[] = { { .name = "pingpong_0", .id = PINGPONG_0, .base = 0x70000, .len = 0xd4, + .max_linewidth = DPU_1_x_MAX_PINGPONG_WIDTH, .features = PINGPONG_SDM845_TE2_MASK, .sblk = &sdm845_pp_sblk_te, .intr_done = DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR, 8), @@ -201,6 +202,7 @@ static const struct dpu_pingpong_cfg sdm845_pp[] = { }, { .name = "pingpong_1", .id = PINGPONG_1, .base = 0x70800, .len = 0xd4, + .max_linewidth = DPU_1_x_MAX_PINGPONG_WIDTH, .features = PINGPONG_SDM845_TE2_MASK, .sblk = &sdm845_pp_sblk_te, .intr_done = DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR, 9), @@ -208,6 +210,7 @@ static const struct dpu_pingpong_cfg sdm845_pp[] = { }, { .name = "pingpong_2", .id = PINGPONG_2, .base = 0x71000, .len = 0xd4, + .max_linewidth = DPU_1_x_MAX_PINGPONG_WIDTH, .features = PINGPONG_SDM845_MASK, .sblk = &sdm845_pp_sblk, .intr_done = DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR, 10), @@ -215,6 +218,7 @@ static const struct dpu_pingpong_cfg sdm845_pp[] = { }, { .name = "pingpong_3", .id = PINGPONG_3, .base = 0x71800, .len = 0xd4, + .max_linewidth = DPU_1_x_MAX_PINGPONG_WIDTH, .features = PINGPONG_SDM845_MASK, .sblk = &sdm845_pp_sblk, .intr_done = DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR, 11), diff --git a/drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_5_0_sm8150.h b/drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_5_0_sm8150.h index 979527d98fbc..7f0754e47c2e 100644 --- a/drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_5_0_sm8150.h +++ b/drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_5_0_sm8150.h @@ -218,6 +218,7 @@ static const struct dpu_pingpong_cfg sm8150_pp[] = { { .name = "pingpong_0", .id = PINGPONG_0, .base = 0x70000, .len = 0xd4, + .max_linewidth = DPU_1_x_MAX_PINGPONG_WIDTH, .features = PINGPONG_SM8150_MASK, .sblk = &sdm845_pp_sblk, .merge_3d = MERGE_3D_0, @@ -225,6 +226,7 @@ static const struct dpu_pingpong_cfg sm8150_pp[] = { }, { .name = "pingpong_1", .id = PINGPONG_1, .base = 0x70800, .len = 0xd4, + .max_linewidth = DPU_1_x_MAX_PINGPONG_WIDTH, .features = PINGPONG_SM8150_MASK, .sblk = &sdm845_pp_sblk, .merge_3d = MERGE_3D_0, @@ -232,6 +234,7 @@ static const struct dpu_pingpong_cfg sm8150_pp[] = { }, { .name = "pingpong_2", .id = PINGPONG_2, .base = 0x71000, .len = 0xd4, + .max_linewidth = DPU_1_x_MAX_PINGPONG_WIDTH, .features = PINGPONG_SM8150_MASK, .sblk = &sdm845_pp_sblk, .merge_3d = MERGE_3D_1, @@ -239,6 +242,7 @@ static const struct dpu_pingpong_cfg sm8150_pp[] = { }, { .name = "pingpong_3", .id = PINGPONG_3, .base = 0x71800, .len = 0xd4, + .max_linewidth = DPU_1_x_MAX_PINGPONG_WIDTH, .features = PINGPONG_SM8150_MASK, .sblk = &sdm845_pp_sblk, .merge_3d = MERGE_3D_1, @@ -246,6 +250,7 @@ static const struct dpu_pingpong_cfg sm8150_pp[] = { }, { .name = "pingpong_4", .id = PINGPONG_4, .base = 0x72000, .len = 0xd4, + .max_linewidth = DPU_1_x_MAX_PINGPONG_WIDTH, .features = PINGPONG_SM8150_MASK, .sblk = &sdm845_pp_sblk, .merge_3d = MERGE_3D_2, @@ -253,6 +258,7 @@ static const struct dpu_pingpong_cfg sm8150_pp[] = { }, { .name = "pingpong_5", .id = PINGPONG_5, .base = 0x72800, .len = 0xd4, + .max_linewidth = DPU_1_x_MAX_PINGPONG_WIDTH, .features = PINGPONG_SM8150_MASK, .sblk = &sdm845_pp_sblk, .merge_3d = MERGE_3D_2, diff --git a/drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_5_1_sc8180x.h b/drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_5_1_sc8180x.h index d76b8992a6c1..1a904b68950a 100644 --- a/drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_5_1_sc8180x.h +++ b/drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_5_1_sc8180x.h @@ -217,6 +217,7 @@ static const struct dpu_pingpong_cfg sc8180x_pp[] = { { .name = "pingpong_0", .id = PINGPONG_0, .base = 0x70000, .len = 0xd4, + .max_linewidth = DPU_1_x_MAX_PINGPONG_WIDTH, .features = PINGPONG_SM8150_MASK, .sblk = &sdm845_pp_sblk, .merge_3d = MERGE_3D_0, @@ -224,6 +225,7 @@ static const struct dpu_pingpong_cfg sc8180x_pp[] = { }, { .name = "pingpong_1", .id = PINGPONG_1, .base = 0x70800, .len = 0xd4, + .max_linewidth = DPU_1_x_MAX_PINGPONG_WIDTH, .features = PINGPONG_SM8150_MASK, .sblk = &sdm845_pp_sblk, .merge_3d = MERGE_3D_0, @@ -231,6 +233,7 @@ static const struct dpu_pingpong_cfg sc8180x_pp[] = { }, { .name = "pingpong_2", .id = PINGPONG_2, .base = 0x71000, .len = 0xd4, + .max_linewidth = DPU_1_x_MAX_PINGPONG_WIDTH, .features = PINGPONG_SM8150_MASK, .sblk = &sdm845_pp_sblk, .merge_3d = MERGE_3D_1, @@ -238,6 +241,7 @@ static const struct dpu_pingpong_cfg sc8180x_pp[] = { }, { .name = "pingpong_3", .id = PINGPONG_3, .base = 0x71800, .len = 0xd4, + .max_linewidth = DPU_1_x_MAX_PINGPONG_WIDTH, .features = PINGPONG_SM8150_MASK, .sblk = &sdm845_pp_sblk, .merge_3d = MERGE_3D_1, @@ -245,6 +249,7 @@ static const struct dpu_pingpong_cfg sc8180x_pp[] = { }, { .name = "pingpong_4", .id = PINGPONG_4, .base = 0x72000, .len = 0xd4, + .max_linewidth = DPU_1_x_MAX_PINGPONG_WIDTH, .features = PINGPONG_SM8150_MASK, .sblk = &sdm845_pp_sblk, .merge_3d = MERGE_3D_2, @@ -252,6 +257,7 @@ static const struct dpu_pingpong_cfg sc8180x_pp[] = { }, { .name = "pingpong_5", .id = PINGPONG_5, .base = 0x72800, .len = 0xd4, + .max_linewidth = DPU_1_x_MAX_PINGPONG_WIDTH, .features = PINGPONG_SM8150_MASK, .sblk = &sdm845_pp_sblk, .merge_3d = MERGE_3D_2, diff --git a/drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_5_2_sm7150.h b/drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_5_2_sm7150.h index 83db11339b29..7c65f77a2c43 100644 --- a/drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_5_2_sm7150.h +++ b/drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_5_2_sm7150.h @@ -164,6 +164,7 @@ static const struct dpu_pingpong_cfg sm7150_pp[] = { { .name = "pingpong_0", .id = PINGPONG_0, .base = 0x70000, .len = 0xd4, + .max_linewidth = DPU_1_x_MAX_PINGPONG_WIDTH, .features = PINGPONG_SM8150_MASK, .sblk = &sdm845_pp_sblk, .merge_3d = MERGE_3D_0, @@ -171,6 +172,7 @@ static const struct dpu_pingpong_cfg sm7150_pp[] = { }, { .name = "pingpong_1", .id = PINGPONG_1, .base = 0x70800, .len = 0xd4, + .max_linewidth = DPU_1_x_MAX_PINGPONG_WIDTH, .features = PINGPONG_SM8150_MASK, .sblk = &sdm845_pp_sblk, .merge_3d = MERGE_3D_0, @@ -178,6 +180,7 @@ static const struct dpu_pingpong_cfg sm7150_pp[] = { }, { .name = "pingpong_2", .id = PINGPONG_2, .base = 0x71000, .len = 0xd4, + .max_linewidth = DPU_1_x_MAX_PINGPONG_WIDTH, .features = PINGPONG_SM8150_MASK, .sblk = &sdm845_pp_sblk, .merge_3d = MERGE_3D_1, @@ -185,6 +188,7 @@ static const struct dpu_pingpong_cfg sm7150_pp[] = { }, { .name = "pingpong_3", .id = PINGPONG_3, .base = 0x71800, .len = 0xd4, + .max_linewidth = DPU_1_x_MAX_PINGPONG_WIDTH, .features = PINGPONG_SM8150_MASK, .sblk = &sdm845_pp_sblk, .merge_3d = MERGE_3D_1, diff --git a/drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_5_3_sm6150.h b/drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_5_3_sm6150.h index da11830d4407..f0539dd11dc8 100644 --- a/drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_5_3_sm6150.h +++ b/drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_5_3_sm6150.h @@ -145,18 +145,21 @@ static const struct dpu_pingpong_cfg sm6150_pp[] = { { .name = "pingpong_0", .id = PINGPONG_0, .base = 0x70000, .len = 0xd4, + .max_linewidth = DPU_1_x_MAX_PINGPONG_WIDTH, .features = PINGPONG_SM8150_MASK, .sblk = &sdm845_pp_sblk, .intr_done = DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR, 8), }, { .name = "pingpong_1", .id = PINGPONG_1, .base = 0x70800, .len = 0xd4, + .max_linewidth = DPU_1_x_MAX_PINGPONG_WIDTH, .features = PINGPONG_SM8150_MASK, .sblk = &sdm845_pp_sblk, .intr_done = DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR, 9), }, { .name = "pingpong_2", .id = PINGPONG_2, .base = 0x71000, .len = 0xd4, + .max_linewidth = DPU_1_x_MAX_PINGPONG_WIDTH, .features = PINGPONG_SM8150_MASK, .sblk = &sdm845_pp_sblk, .intr_done = DPU_IRQ_IDX(MDP_SSPP_TOP0_INTR, 10), diff --git a/drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_5_4_sm6125.h b/drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_5_4_sm6125.h index d3d3a34d0b45..a357567ad597 100644 --- a/drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_5_4_sm6125.h +++ b/drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_5_4_sm6125.h @@ -126,6 +126,7 @@ static const struct dpu_pingpong_cfg sm6125_pp[] = { { .name = "pingpong_0", .id = PINGPONG_0, .base = 0x70000, .len = 0xd4, + .max_linewidth = DPU_1_x_MAX_PINGPONG_WIDTH, .features = PINGPONG_SM8150_MASK, .merge_3d = 0, .sblk = &sdm845_pp_sblk, @@ -133,6 +134,7 @@ static const struct dpu_pingpong_cfg sm6125_pp[] = { }, { .name = "pingpong_1", .id = PINGPONG_1, .base = 0x70800, .len = 0xd4, + .max_linewidth = DPU_1_x_MAX_PINGPONG_WIDTH, .features = PINGPONG_SM8150_MASK, .merge_3d = 0, .sblk = &sdm845_pp_sblk, diff --git a/drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_6_0_sm8250.h b/drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_6_0_sm8250.h index 47e01c3c242f..c0bf1eba1eab 100644 --- a/drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_6_0_sm8250.h +++ b/drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_6_0_sm8250.h @@ -216,6 +216,7 @@ static const struct dpu_pingpong_cfg sm8250_pp[] = { { .name = "pingpong_0", .id = PINGPONG_0, .base = 0x70000, .len = 0xd4, + .max_linewidth = DPU_6_x_MAX_PINGPONG_WIDTH, .features = PINGPONG_SM8150_MASK, .sblk = &sdm845_pp_sblk, .merge_3d = MERGE_3D_0, @@ -223,6 +224,7 @@ static const struct dpu_pingpong_cfg sm8250_pp[] = { }, { .name = "pingpong_1", .id = PINGPONG_1, .base = 0x70800, .len = 0xd4, + .max_linewidth = DPU_6_x_MAX_PINGPONG_WIDTH, .features = PINGPONG_SM8150_MASK, .sblk = &sdm845_pp_sblk, .merge_3d = MERGE_3D_0, @@ -230,6 +232,7 @@ static const struct dpu_pingpong_cfg sm8250_pp[] = { }, { .name = "pingpong_2", .id = PINGPONG_2, .base = 0x71000, .len = 0xd4, + .max_linewidth = DPU_6_x_MAX_PINGPONG_WIDTH, .features = PINGPONG_SM8150_MASK, .sblk = &sdm845_pp_sblk, .merge_3d = MERGE_3D_1, @@ -237,6 +240,7 @@ static const struct dpu_pingpong_cfg sm8250_pp[] = { }, { .name = "pingpong_3", .id = PINGPONG_3, .base = 0x71800, .len = 0xd4, + .max_linewidth = DPU_6_x_MAX_PINGPONG_WIDTH, .features = PINGPONG_SM8150_MASK, .sblk = &sdm845_pp_sblk, .merge_3d = MERGE_3D_1, @@ -244,6 +248,7 @@ static const struct dpu_pingpong_cfg sm8250_pp[] = { }, { .name = "pingpong_4", .id = PINGPONG_4, .base = 0x72000, .len = 0xd4, + .max_linewidth = DPU_6_x_MAX_PINGPONG_WIDTH, .features = PINGPONG_SM8150_MASK, .sblk = &sdm845_pp_sblk, .merge_3d = MERGE_3D_2, @@ -251,6 +256,7 @@ static const struct dpu_pingpong_cfg sm8250_pp[] = { }, { .name = "pingpong_5", .id = PINGPONG_5, .base = 0x72800, .len = 0xd4, + .max_linewidth = DPU_6_x_MAX_PINGPONG_WIDTH, .features = PINGPONG_SM8150_MASK, .sblk = &sdm845_pp_sblk, .merge_3d = MERGE_3D_2, diff --git a/drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_6_2_sc7180.h b/drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_6_2_sc7180.h index 040c94c0bb66..d004e7ee71fb 100644 --- a/drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_6_2_sc7180.h +++ b/drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_6_2_sc7180.h @@ -115,6 +115,7 @@ static const struct dpu_pingpong_cfg sc7180_pp[] = { { .name = "pingpong_0", .id = PINGPONG_0, .base = 0x70000, .len = 0xd4, + .max_linewidth = DPU_6_x_MAX_PINGPONG_WIDTH, .features = PINGPONG_SM8150_MASK, .sblk = &sdm845_pp_sblk, .merge_3d = 0, @@ -122,6 +123,7 @@ static const struct dpu_pingpong_cfg sc7180_pp[] = { }, { .name = "pingpong_1", .id = PINGPONG_1, .base = 0x70800, .len = 0xd4, + .max_linewidth = DPU_6_x_MAX_PINGPONG_WIDTH, .features = PINGPONG_SM8150_MASK, .sblk = &sdm845_pp_sblk, .merge_3d = 0, diff --git a/drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_6_3_sm6115.h b/drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_6_3_sm6115.h index 43f64a005f5a..b0659b55542f 100644 --- a/drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_6_3_sm6115.h +++ b/drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_6_3_sm6115.h @@ -78,6 +78,7 @@ static const struct dpu_pingpong_cfg sm6115_pp[] = { { .name = "pingpong_0", .id = PINGPONG_0, .base = 0x70000, .len = 0xd4, + .max_linewidth = DPU_6_x_MAX_PINGPONG_WIDTH, .features = PINGPONG_SM8150_MASK, .sblk = &sdm845_pp_sblk, .merge_3d = 0, diff --git a/drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_6_4_sm6350.h b/drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_6_4_sm6350.h index 397278ba999b..ae0196372f35 100644 --- a/drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_6_4_sm6350.h +++ b/drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_6_4_sm6350.h @@ -124,6 +124,7 @@ static struct dpu_pingpong_cfg sm6350_pp[] = { { .name = "pingpong_0", .id = PINGPONG_0, .base = 0x70000, .len = 0xd4, + .max_linewidth = DPU_6_x_MAX_PINGPONG_WIDTH, .features = PINGPONG_SM8150_MASK, .sblk = &sdm845_pp_sblk, .merge_3d = 0, @@ -131,6 +132,7 @@ static struct dpu_pingpong_cfg sm6350_pp[] = { }, { .name = "pingpong_1", .id = PINGPONG_1, .base = 0x70800, .len = 0xd4, + .max_linewidth = DPU_6_x_MAX_PINGPONG_WIDTH, .features = PINGPONG_SM8150_MASK, .sblk = &sdm845_pp_sblk, .merge_3d = 0, diff --git a/drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_6_5_qcm2290.h b/drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_6_5_qcm2290.h index 3cbb2fe8aba2..d9bb18f11a49 100644 --- a/drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_6_5_qcm2290.h +++ b/drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_6_5_qcm2290.h @@ -78,6 +78,7 @@ static const struct dpu_pingpong_cfg qcm2290_pp[] = { { .name = "pingpong_0", .id = PINGPONG_0, .base = 0x70000, .len = 0xd4, + .max_linewidth = DPU_6_x_MAX_PINGPONG_WIDTH, .features = PINGPONG_SM8150_MASK, .sblk = &sdm845_pp_sblk, .merge_3d = 0, diff --git a/drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_6_9_sm6375.h b/drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_6_9_sm6375.h index a06c8634d2d7..8893b39e2ca3 100644 --- a/drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_6_9_sm6375.h +++ b/drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_6_9_sm6375.h @@ -80,6 +80,7 @@ static const struct dpu_pingpong_cfg sm6375_pp[] = { { .name = "pingpong_0", .id = PINGPONG_0, .base = 0x70000, .len = 0xd4, + .max_linewidth = DPU_6_x_MAX_PINGPONG_WIDTH, .features = PINGPONG_SM8150_MASK, .sblk = &sdm845_pp_sblk, .merge_3d = 0, diff --git a/drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_7_0_sm8350.h b/drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_7_0_sm8350.h index 0c860e804cab..6ded8b0309d9 100644 --- a/drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_7_0_sm8350.h +++ b/drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_7_0_sm8350.h @@ -9,6 +9,7 @@ static const struct dpu_caps sm8350_dpu_caps = { .max_mixer_width = DEFAULT_DPU_OUTPUT_LINE_WIDTH, + .max_dsc_encoder_width = DEFAULT_DSC_ENCODER_MAX_WIDTH, .max_mixer_blendstages = 0xb, .has_src_split = true, .has_dim_layer = true, @@ -216,6 +217,7 @@ static const struct dpu_pingpong_cfg sm8350_pp[] = { { .name = "pingpong_0", .id = PINGPONG_0, .base = 0x69000, .len = 0, + .max_linewidth = DPU_6_x_MAX_PINGPONG_WIDTH, .features = BIT(DPU_PINGPONG_DITHER), .sblk = &sc7280_pp_sblk, .merge_3d = MERGE_3D_0, @@ -223,6 +225,7 @@ static const struct dpu_pingpong_cfg sm8350_pp[] = { }, { .name = "pingpong_1", .id = PINGPONG_1, .base = 0x6a000, .len = 0, + .max_linewidth = DPU_6_x_MAX_PINGPONG_WIDTH, .features = BIT(DPU_PINGPONG_DITHER), .sblk = &sc7280_pp_sblk, .merge_3d = MERGE_3D_0, @@ -230,6 +233,7 @@ static const struct dpu_pingpong_cfg sm8350_pp[] = { }, { .name = "pingpong_2", .id = PINGPONG_2, .base = 0x6b000, .len = 0, + .max_linewidth = DPU_6_x_MAX_PINGPONG_WIDTH, .features = BIT(DPU_PINGPONG_DITHER), .sblk = &sc7280_pp_sblk, .merge_3d = MERGE_3D_1, @@ -237,6 +241,7 @@ static const struct dpu_pingpong_cfg sm8350_pp[] = { }, { .name = "pingpong_3", .id = PINGPONG_3, .base = 0x6c000, .len = 0, + .max_linewidth = DPU_6_x_MAX_PINGPONG_WIDTH, .features = BIT(DPU_PINGPONG_DITHER), .sblk = &sc7280_pp_sblk, .merge_3d = MERGE_3D_1, @@ -244,6 +249,7 @@ static const struct dpu_pingpong_cfg sm8350_pp[] = { }, { .name = "pingpong_4", .id = PINGPONG_4, .base = 0x6d000, .len = 0, + .max_linewidth = DPU_6_x_MAX_PINGPONG_WIDTH, .features = BIT(DPU_PINGPONG_DITHER), .sblk = &sc7280_pp_sblk, .merge_3d = MERGE_3D_2, @@ -251,6 +257,7 @@ static const struct dpu_pingpong_cfg sm8350_pp[] = { }, { .name = "pingpong_5", .id = PINGPONG_5, .base = 0x6e000, .len = 0, + .max_linewidth = DPU_6_x_MAX_PINGPONG_WIDTH, .features = BIT(DPU_PINGPONG_DITHER), .sblk = &sc7280_pp_sblk, .merge_3d = MERGE_3D_2, diff --git a/drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_7_2_sc7280.h b/drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_7_2_sc7280.h index e9625c48c567..e1512ff5945c 100644 --- a/drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_7_2_sc7280.h +++ b/drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_7_2_sc7280.h @@ -9,6 +9,7 @@ static const struct dpu_caps sc7280_dpu_caps = { .max_mixer_width = DEFAULT_DPU_OUTPUT_LINE_WIDTH, + .max_dsc_encoder_width = DEFAULT_DSC_ENCODER_MAX_WIDTH, .max_mixer_blendstages = 0x7, .has_dim_layer = true, .has_idle_pc = true, @@ -126,6 +127,7 @@ static const struct dpu_pingpong_cfg sc7280_pp[] = { { .name = "pingpong_0", .id = PINGPONG_0, .base = 0x69000, .len = 0, + .max_linewidth = DPU_6_x_MAX_PINGPONG_WIDTH, .features = BIT(DPU_PINGPONG_DITHER), .sblk = &sc7280_pp_sblk, .merge_3d = 0, @@ -133,6 +135,7 @@ static const struct dpu_pingpong_cfg sc7280_pp[] = { }, { .name = "pingpong_1", .id = PINGPONG_1, .base = 0x6a000, .len = 0, + .max_linewidth = DPU_6_x_MAX_PINGPONG_WIDTH, .features = BIT(DPU_PINGPONG_DITHER), .sblk = &sc7280_pp_sblk, .merge_3d = 0, @@ -140,6 +143,7 @@ static const struct dpu_pingpong_cfg sc7280_pp[] = { }, { .name = "pingpong_2", .id = PINGPONG_2, .base = 0x6b000, .len = 0, + .max_linewidth = DPU_6_x_MAX_PINGPONG_WIDTH, .features = BIT(DPU_PINGPONG_DITHER), .sblk = &sc7280_pp_sblk, .merge_3d = 0, @@ -147,6 +151,7 @@ static const struct dpu_pingpong_cfg sc7280_pp[] = { }, { .name = "pingpong_3", .id = PINGPONG_3, .base = 0x6c000, .len = 0, + .max_linewidth = DPU_6_x_MAX_PINGPONG_WIDTH, .features = BIT(DPU_PINGPONG_DITHER), .sblk = &sc7280_pp_sblk, .merge_3d = 0, diff --git a/drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_8_0_sc8280xp.h b/drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_8_0_sc8280xp.h index fcee1c3665f8..2a084ee071b9 100644 --- a/drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_8_0_sc8280xp.h +++ b/drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_8_0_sc8280xp.h @@ -9,6 +9,7 @@ static const struct dpu_caps sc8280xp_dpu_caps = { .max_mixer_width = DEFAULT_DPU_OUTPUT_LINE_WIDTH, + .max_dsc_encoder_width = DEFAULT_DSC_ENCODER_MAX_WIDTH, .max_mixer_blendstages = 11, .has_src_split = true, .has_dim_layer = true, @@ -216,6 +217,7 @@ static const struct dpu_pingpong_cfg sc8280xp_pp[] = { { .name = "pingpong_0", .id = PINGPONG_0, .base = 0x69000, .len = 0, + .max_linewidth = DPU_8_x_MAX_PINGPONG_0_WIDTH, .features = BIT(DPU_PINGPONG_DITHER), .sblk = &sc7280_pp_sblk, .merge_3d = MERGE_3D_0, @@ -223,6 +225,7 @@ static const struct dpu_pingpong_cfg sc8280xp_pp[] = { }, { .name = "pingpong_1", .id = PINGPONG_1, .base = 0x6a000, .len = 0, + .max_linewidth = DPU_6_x_MAX_PINGPONG_WIDTH, .features = BIT(DPU_PINGPONG_DITHER), .sblk = &sc7280_pp_sblk, .merge_3d = MERGE_3D_0, @@ -230,6 +233,7 @@ static const struct dpu_pingpong_cfg sc8280xp_pp[] = { }, { .name = "pingpong_2", .id = PINGPONG_2, .base = 0x6b000, .len = 0, + .max_linewidth = DPU_6_x_MAX_PINGPONG_WIDTH, .features = BIT(DPU_PINGPONG_DITHER), .sblk = &sc7280_pp_sblk, .merge_3d = MERGE_3D_1, @@ -237,6 +241,7 @@ static const struct dpu_pingpong_cfg sc8280xp_pp[] = { }, { .name = "pingpong_3", .id = PINGPONG_3, .base = 0x6c000, .len = 0, + .max_linewidth = DPU_6_x_MAX_PINGPONG_WIDTH, .features = BIT(DPU_PINGPONG_DITHER), .sblk = &sc7280_pp_sblk, .merge_3d = MERGE_3D_1, @@ -244,6 +249,7 @@ static const struct dpu_pingpong_cfg sc8280xp_pp[] = { }, { .name = "pingpong_4", .id = PINGPONG_4, .base = 0x6d000, .len = 0, + .max_linewidth = DPU_6_x_MAX_PINGPONG_WIDTH, .features = BIT(DPU_PINGPONG_DITHER), .sblk = &sc7280_pp_sblk, .merge_3d = MERGE_3D_2, @@ -251,6 +257,7 @@ static const struct dpu_pingpong_cfg sc8280xp_pp[] = { }, { .name = "pingpong_5", .id = PINGPONG_5, .base = 0x6e000, .len = 0, + .max_linewidth = DPU_6_x_MAX_PINGPONG_WIDTH, .features = BIT(DPU_PINGPONG_DITHER), .sblk = &sc7280_pp_sblk, .merge_3d = MERGE_3D_2, 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 19b2ee8bbd5f..2cb3966ee51f 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 @@ -9,6 +9,7 @@ static const struct dpu_caps sm8450_dpu_caps = { .max_mixer_width = DEFAULT_DPU_OUTPUT_LINE_WIDTH, + .max_dsc_encoder_width = DEFAULT_DSC_ENCODER_MAX_WIDTH, .max_mixer_blendstages = 0xb, .has_src_split = true, .has_dim_layer = true, @@ -217,6 +218,7 @@ static const struct dpu_pingpong_cfg sm8450_pp[] = { { .name = "pingpong_0", .id = PINGPONG_0, .base = 0x69000, .len = 0, + .max_linewidth = DPU_8_x_MAX_PINGPONG_0_WIDTH, .features = BIT(DPU_PINGPONG_DITHER), .sblk = &sc7280_pp_sblk, .merge_3d = MERGE_3D_0, @@ -224,6 +226,7 @@ static const struct dpu_pingpong_cfg sm8450_pp[] = { }, { .name = "pingpong_1", .id = PINGPONG_1, .base = 0x6a000, .len = 0, + .max_linewidth = DPU_6_x_MAX_PINGPONG_WIDTH, .features = BIT(DPU_PINGPONG_DITHER), .sblk = &sc7280_pp_sblk, .merge_3d = MERGE_3D_0, @@ -231,6 +234,7 @@ static const struct dpu_pingpong_cfg sm8450_pp[] = { }, { .name = "pingpong_2", .id = PINGPONG_2, .base = 0x6b000, .len = 0, + .max_linewidth = DPU_6_x_MAX_PINGPONG_WIDTH, .features = BIT(DPU_PINGPONG_DITHER), .sblk = &sc7280_pp_sblk, .merge_3d = MERGE_3D_1, @@ -238,6 +242,7 @@ static const struct dpu_pingpong_cfg sm8450_pp[] = { }, { .name = "pingpong_3", .id = PINGPONG_3, .base = 0x6c000, .len = 0, + .max_linewidth = DPU_6_x_MAX_PINGPONG_WIDTH, .features = BIT(DPU_PINGPONG_DITHER), .sblk = &sc7280_pp_sblk, .merge_3d = MERGE_3D_1, @@ -245,6 +250,7 @@ static const struct dpu_pingpong_cfg sm8450_pp[] = { }, { .name = "pingpong_4", .id = PINGPONG_4, .base = 0x6d000, .len = 0, + .max_linewidth = DPU_6_x_MAX_PINGPONG_WIDTH, .features = BIT(DPU_PINGPONG_DITHER), .sblk = &sc7280_pp_sblk, .merge_3d = MERGE_3D_2, @@ -252,6 +258,7 @@ static const struct dpu_pingpong_cfg sm8450_pp[] = { }, { .name = "pingpong_5", .id = PINGPONG_5, .base = 0x6e000, .len = 0, + .max_linewidth = DPU_6_x_MAX_PINGPONG_WIDTH, .features = BIT(DPU_PINGPONG_DITHER), .sblk = &sc7280_pp_sblk, .merge_3d = MERGE_3D_2, @@ -259,12 +266,14 @@ static const struct dpu_pingpong_cfg sm8450_pp[] = { }, { .name = "pingpong_cwb_0", .id = PINGPONG_CWB_0, .base = 0x65800, .len = 0, + .max_linewidth = DPU_6_x_MAX_PINGPONG_WIDTH, .features = BIT(DPU_PINGPONG_DITHER), .sblk = &sc7280_pp_sblk, .merge_3d = MERGE_3D_3, }, { .name = "pingpong_cwb_1", .id = PINGPONG_CWB_1, .base = 0x65c00, .len = 0, + .max_linewidth = DPU_6_x_MAX_PINGPONG_WIDTH, .features = BIT(DPU_PINGPONG_DITHER), .sblk = &sc7280_pp_sblk, .merge_3d = MERGE_3D_3, diff --git a/drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_8_4_sa8775p.h b/drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_8_4_sa8775p.h index 4d96ce71746f..1135918e0a86 100644 --- a/drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_8_4_sa8775p.h +++ b/drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_8_4_sa8775p.h @@ -8,6 +8,7 @@ static const struct dpu_caps sa8775p_dpu_caps = { .max_mixer_width = DEFAULT_DPU_OUTPUT_LINE_WIDTH, + .max_dsc_encoder_width = DEFAULT_DSC_ENCODER_MAX_WIDTH, .max_mixer_blendstages = 0xb, .has_src_split = true, .has_dim_layer = true, @@ -216,6 +217,7 @@ static const struct dpu_pingpong_cfg sa8775p_pp[] = { { .name = "pingpong_0", .id = PINGPONG_0, .base = 0x69000, .len = 0, + .max_linewidth = DPU_8_x_MAX_PINGPONG_0_WIDTH, .features = BIT(DPU_PINGPONG_DITHER), .sblk = &sc7280_pp_sblk, .merge_3d = MERGE_3D_0, @@ -223,6 +225,7 @@ static const struct dpu_pingpong_cfg sa8775p_pp[] = { }, { .name = "pingpong_1", .id = PINGPONG_1, .base = 0x6a000, .len = 0, + .max_linewidth = DPU_6_x_MAX_PINGPONG_WIDTH, .features = BIT(DPU_PINGPONG_DITHER), .sblk = &sc7280_pp_sblk, .merge_3d = MERGE_3D_0, @@ -230,6 +233,7 @@ static const struct dpu_pingpong_cfg sa8775p_pp[] = { }, { .name = "pingpong_2", .id = PINGPONG_2, .base = 0x6b000, .len = 0, + .max_linewidth = DPU_6_x_MAX_PINGPONG_WIDTH, .features = BIT(DPU_PINGPONG_DITHER), .sblk = &sc7280_pp_sblk, .merge_3d = MERGE_3D_1, @@ -237,6 +241,7 @@ static const struct dpu_pingpong_cfg sa8775p_pp[] = { }, { .name = "pingpong_3", .id = PINGPONG_3, .base = 0x6c000, .len = 0, + .max_linewidth = DPU_6_x_MAX_PINGPONG_WIDTH, .features = BIT(DPU_PINGPONG_DITHER), .sblk = &sc7280_pp_sblk, .merge_3d = MERGE_3D_1, @@ -244,6 +249,7 @@ static const struct dpu_pingpong_cfg sa8775p_pp[] = { }, { .name = "pingpong_4", .id = PINGPONG_4, .base = 0x6d000, .len = 0, + .max_linewidth = DPU_6_x_MAX_PINGPONG_WIDTH, .features = BIT(DPU_PINGPONG_DITHER), .sblk = &sc7280_pp_sblk, .merge_3d = MERGE_3D_2, @@ -251,6 +257,7 @@ static const struct dpu_pingpong_cfg sa8775p_pp[] = { }, { .name = "pingpong_5", .id = PINGPONG_5, .base = 0x6e000, .len = 0, + .max_linewidth = DPU_6_x_MAX_PINGPONG_WIDTH, .features = BIT(DPU_PINGPONG_DITHER), .sblk = &sc7280_pp_sblk, .merge_3d = MERGE_3D_2, @@ -258,12 +265,14 @@ static const struct dpu_pingpong_cfg sa8775p_pp[] = { }, { .name = "pingpong_6", .id = PINGPONG_CWB_0, .base = 0x65800, .len = 0, + .max_linewidth = DPU_6_x_MAX_PINGPONG_WIDTH, .features = BIT(DPU_PINGPONG_DITHER), .sblk = &sc7280_pp_sblk, .merge_3d = MERGE_3D_3, }, { .name = "pingpong_7", .id = PINGPONG_CWB_1, .base = 0x65c00, .len = 0, + .max_linewidth = DPU_6_x_MAX_PINGPONG_WIDTH, .features = BIT(DPU_PINGPONG_DITHER), .sblk = &sc7280_pp_sblk, .merge_3d = MERGE_3D_3, 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 24f988465bf6..0516e75a3a16 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 @@ -9,6 +9,7 @@ static const struct dpu_caps sm8550_dpu_caps = { .max_mixer_width = DEFAULT_DPU_OUTPUT_LINE_WIDTH, + .max_dsc_encoder_width = DEFAULT_DSC_ENCODER_MAX_WIDTH, .max_mixer_blendstages = 0xb, .has_src_split = true, .has_dim_layer = true, @@ -213,6 +214,7 @@ static const struct dpu_pingpong_cfg sm8550_pp[] = { { .name = "pingpong_0", .id = PINGPONG_0, .base = 0x69000, .len = 0, + .max_linewidth = DPU_8_x_MAX_PINGPONG_0_WIDTH, .features = BIT(DPU_PINGPONG_DITHER), .sblk = &sc7280_pp_sblk, .merge_3d = MERGE_3D_0, @@ -220,6 +222,7 @@ static const struct dpu_pingpong_cfg sm8550_pp[] = { }, { .name = "pingpong_1", .id = PINGPONG_1, .base = 0x6a000, .len = 0, + .max_linewidth = DPU_6_x_MAX_PINGPONG_WIDTH, .features = BIT(DPU_PINGPONG_DITHER), .sblk = &sc7280_pp_sblk, .merge_3d = MERGE_3D_0, @@ -227,6 +230,7 @@ static const struct dpu_pingpong_cfg sm8550_pp[] = { }, { .name = "pingpong_2", .id = PINGPONG_2, .base = 0x6b000, .len = 0, + .max_linewidth = DPU_6_x_MAX_PINGPONG_WIDTH, .features = BIT(DPU_PINGPONG_DITHER), .sblk = &sc7280_pp_sblk, .merge_3d = MERGE_3D_1, @@ -234,6 +238,7 @@ static const struct dpu_pingpong_cfg sm8550_pp[] = { }, { .name = "pingpong_3", .id = PINGPONG_3, .base = 0x6c000, .len = 0, + .max_linewidth = DPU_6_x_MAX_PINGPONG_WIDTH, .features = BIT(DPU_PINGPONG_DITHER), .sblk = &sc7280_pp_sblk, .merge_3d = MERGE_3D_1, @@ -241,6 +246,7 @@ static const struct dpu_pingpong_cfg sm8550_pp[] = { }, { .name = "pingpong_4", .id = PINGPONG_4, .base = 0x6d000, .len = 0, + .max_linewidth = DPU_6_x_MAX_PINGPONG_WIDTH, .features = BIT(DPU_PINGPONG_DITHER), .sblk = &sc7280_pp_sblk, .merge_3d = MERGE_3D_2, @@ -248,6 +254,7 @@ static const struct dpu_pingpong_cfg sm8550_pp[] = { }, { .name = "pingpong_5", .id = PINGPONG_5, .base = 0x6e000, .len = 0, + .max_linewidth = DPU_6_x_MAX_PINGPONG_WIDTH, .features = BIT(DPU_PINGPONG_DITHER), .sblk = &sc7280_pp_sblk, .merge_3d = MERGE_3D_2, @@ -255,12 +262,14 @@ static const struct dpu_pingpong_cfg sm8550_pp[] = { }, { .name = "pingpong_cwb_0", .id = PINGPONG_CWB_0, .base = 0x66000, .len = 0, + .max_linewidth = DPU_6_x_MAX_PINGPONG_WIDTH, .features = BIT(DPU_PINGPONG_DITHER), .sblk = &sc7280_pp_sblk, .merge_3d = MERGE_3D_3, }, { .name = "pingpong_cwb_1", .id = PINGPONG_CWB_1, .base = 0x66400, .len = 0, + .max_linewidth = DPU_6_x_MAX_PINGPONG_WIDTH, .features = BIT(DPU_PINGPONG_DITHER), .sblk = &sc7280_pp_sblk, .merge_3d = MERGE_3D_3, 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 6417baa84f82..23d044e10c75 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 @@ -8,6 +8,7 @@ static const struct dpu_caps x1e80100_dpu_caps = { .max_mixer_width = DEFAULT_DPU_OUTPUT_LINE_WIDTH, + .max_dsc_encoder_width = DEFAULT_DSC_ENCODER_MAX_WIDTH, .max_mixer_blendstages = 0xb, .has_src_split = true, .has_dim_layer = true, @@ -213,6 +214,7 @@ static const struct dpu_pingpong_cfg x1e80100_pp[] = { { .name = "pingpong_0", .id = PINGPONG_0, .base = 0x69000, .len = 0, + .max_linewidth = DPU_8_x_MAX_PINGPONG_0_WIDTH, .features = BIT(DPU_PINGPONG_DITHER), .sblk = &sc7280_pp_sblk, .merge_3d = MERGE_3D_0, @@ -220,6 +222,7 @@ static const struct dpu_pingpong_cfg x1e80100_pp[] = { }, { .name = "pingpong_1", .id = PINGPONG_1, .base = 0x6a000, .len = 0, + .max_linewidth = DPU_6_x_MAX_PINGPONG_WIDTH, .features = BIT(DPU_PINGPONG_DITHER), .sblk = &sc7280_pp_sblk, .merge_3d = MERGE_3D_0, @@ -227,6 +230,7 @@ static const struct dpu_pingpong_cfg x1e80100_pp[] = { }, { .name = "pingpong_2", .id = PINGPONG_2, .base = 0x6b000, .len = 0, + .max_linewidth = DPU_6_x_MAX_PINGPONG_WIDTH, .features = BIT(DPU_PINGPONG_DITHER), .sblk = &sc7280_pp_sblk, .merge_3d = MERGE_3D_1, @@ -234,6 +238,7 @@ static const struct dpu_pingpong_cfg x1e80100_pp[] = { }, { .name = "pingpong_3", .id = PINGPONG_3, .base = 0x6c000, .len = 0, + .max_linewidth = DPU_6_x_MAX_PINGPONG_WIDTH, .features = BIT(DPU_PINGPONG_DITHER), .sblk = &sc7280_pp_sblk, .merge_3d = MERGE_3D_1, @@ -241,6 +246,7 @@ static const struct dpu_pingpong_cfg x1e80100_pp[] = { }, { .name = "pingpong_4", .id = PINGPONG_4, .base = 0x6d000, .len = 0, + .max_linewidth = DPU_6_x_MAX_PINGPONG_WIDTH, .features = BIT(DPU_PINGPONG_DITHER), .sblk = &sc7280_pp_sblk, .merge_3d = MERGE_3D_2, @@ -248,6 +254,7 @@ static const struct dpu_pingpong_cfg x1e80100_pp[] = { }, { .name = "pingpong_5", .id = PINGPONG_5, .base = 0x6e000, .len = 0, + .max_linewidth = DPU_6_x_MAX_PINGPONG_WIDTH, .features = BIT(DPU_PINGPONG_DITHER), .sblk = &sc7280_pp_sblk, .merge_3d = MERGE_3D_2, @@ -255,12 +262,14 @@ static const struct dpu_pingpong_cfg x1e80100_pp[] = { }, { .name = "pingpong_cwb_0", .id = PINGPONG_CWB_0, .base = 0x66000, .len = 0, + .max_linewidth = DPU_6_x_MAX_PINGPONG_WIDTH, .features = BIT(DPU_PINGPONG_DITHER), .sblk = &sc7280_pp_sblk, .merge_3d = MERGE_3D_3, }, { .name = "pingpong_cwb_1", .id = PINGPONG_CWB_1, .base = 0x66400, .len = 0, + .max_linewidth = DPU_6_x_MAX_PINGPONG_WIDTH, .features = BIT(DPU_PINGPONG_DITHER), .sblk = &sc7280_pp_sblk, .merge_3d = MERGE_3D_3, 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 5f1f3eae0f6f..194780905d29 100644 --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_catalog.h +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_catalog.h @@ -24,6 +24,12 @@ #define DPU_MAX_IMG_WIDTH 0x3fff #define DPU_MAX_IMG_HEIGHT 0x3fff +#define DPU_1_x_MAX_PINGPONG_WIDTH 4096 +#define DPU_6_x_MAX_PINGPONG_WIDTH 5120 +#define DPU_8_x_MAX_PINGPONG_0_WIDTH 8960 + +#define DEFAULT_DSC_ENCODER_MAX_WIDTH 2560 + #define CRTC_DUAL_MIXERS 2 #define MAX_XIN_COUNT 16 @@ -336,6 +342,7 @@ struct dpu_rotation_cfg { /** * struct dpu_caps - define DPU capabilities * @max_mixer_width max layer mixer line width support. + * @max_dsc_encoder_width max dsc encoder line width support * @max_mixer_blendstages max layer mixer blend stages or * supported z order * @has_src_split source split feature status @@ -349,6 +356,7 @@ struct dpu_rotation_cfg { */ struct dpu_caps { u32 max_mixer_width; + u32 max_dsc_encoder_width; u32 max_mixer_blendstages; bool has_src_split; bool has_dim_layer; @@ -530,6 +538,7 @@ struct dpu_dspp_cfg { * @id enum identifying this block * @base register offset of this block * @features bit mask identifying sub-blocks/features + * @max_linewidth max linewidth for PINGPONG * @intr_done: index for PINGPONG done interrupt * @intr_rdptr: index for PINGPONG readpointer done interrupt * @sblk sub-blocks information @@ -537,6 +546,7 @@ struct dpu_dspp_cfg { struct dpu_pingpong_cfg { DPU_HW_BLK_INFO; u32 merge_3d; + u32 max_linewidth; unsigned int intr_done; unsigned int intr_rdptr; const struct dpu_pingpong_sub_blks *sblk; -- 2.49.0