drm/msm/dpu: re-introduce dpu core revision to the catalog
authorAbhinav Kumar <quic_abhinavk@quicinc.com>
Wed, 12 Jul 2023 01:19:59 +0000 (18:19 -0700)
committerDmitry Baryshkov <dmitry.baryshkov@linaro.org>
Thu, 27 Jul 2023 12:17:07 +0000 (15:17 +0300)
Introduce the dpu core revision back as an entry to the catalog so that
we can just use dpu revision checks and enable those bits which
should be enabled unconditionally and not controlled by a catalog
and also simplify the changes to do something like:

if (dpu_core_revision > xxxxx && dpu_core_revision < xxxxx)
   enable the bit;

changes in v5:
- fix the commit text to remove instances of DPU_HW_VER

Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Signed-off-by: Abhinav Kumar <quic_abhinavk@quicinc.com>
Patchwork: https://patchwork.freedesktop.org/patch/546801/
Link: https://lore.kernel.org/r/20230712012003.2212-2-quic_abhinavk@quicinc.com
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
16 files changed:
drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_3_0_msm8998.h
drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_4_0_sdm845.h
drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_5_0_sm8150.h
drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_5_1_sc8180x.h
drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_6_0_sm8250.h
drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_6_2_sc7180.h
drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_6_3_sm6115.h
drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_6_4_sm6350.h
drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_6_5_qcm2290.h
drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_6_9_sm6375.h
drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_7_0_sm8350.h
drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_7_2_sc7280.h
drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_8_0_sc8280xp.h
drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_8_1_sm8450.h
drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_9_0_sm8550.h
drivers/gpu/drm/msm/disp/dpu1/dpu_hw_catalog.h

index 7d87dc2d7b1b800b2a495bd7ea7d6c8622eed8fc..b5fbac55f127329bfa49ad79502152c6692b3666 100644 (file)
@@ -315,7 +315,13 @@ static const struct dpu_perf_cfg msm8998_perf_data = {
        .bw_inefficiency_factor = 120,
 };
 
+static const struct dpu_mdss_version msm8998_mdss_ver = {
+       .core_major_ver = 3,
+       .core_minor_ver = 0,
+};
+
 const struct dpu_mdss_cfg dpu_msm8998_cfg = {
+       .mdss_ver = &msm8998_mdss_ver,
        .caps = &msm8998_dpu_caps,
        .ubwc = &msm8998_ubwc_cfg,
        .mdp = &msm8998_mdp,
index 87459cf40895f6e541e6128dd5c90e4b02a40b4d..8000b870d3a747a017524f9c5edd7930d751c78d 100644 (file)
@@ -332,7 +332,13 @@ static const struct dpu_perf_cfg sdm845_perf_data = {
        .bw_inefficiency_factor = 120,
 };
 
+static const struct dpu_mdss_version sdm845_mdss_ver = {
+       .core_major_ver = 4,
+       .core_minor_ver = 0,
+};
+
 const struct dpu_mdss_cfg dpu_sdm845_cfg = {
+       .mdss_ver = &sdm845_mdss_ver,
        .caps = &sdm845_dpu_caps,
        .ubwc = &sdm845_ubwc_cfg,
        .mdp = &sdm845_mdp,
index 96c542d620f17a833566e89a7bba64979d6f7929..7ce2d69d28f6686f4d42fb07bde574cd375d3f37 100644 (file)
@@ -375,7 +375,13 @@ static const struct dpu_perf_cfg sm8150_perf_data = {
        .bw_inefficiency_factor = 120,
 };
 
+static const struct dpu_mdss_version sm8150_mdss_ver = {
+       .core_major_ver = 5,
+       .core_minor_ver = 0,
+};
+
 const struct dpu_mdss_cfg dpu_sm8150_cfg = {
+       .mdss_ver = &sm8150_mdss_ver,
        .caps = &sm8150_dpu_caps,
        .ubwc = &sm8150_ubwc_cfg,
        .mdp = &sm8150_mdp,
index 4edc1060f05c12f6e5724a4626000dac0b30ca94..cea005382456be2521a154ed90f02c824eb6975f 100644 (file)
@@ -402,7 +402,13 @@ static const struct dpu_perf_cfg sc8180x_perf_data = {
        .bw_inefficiency_factor = 120,
 };
 
+static const struct dpu_mdss_version sc8180x_mdss_ver = {
+       .core_major_ver = 5,
+       .core_minor_ver = 1,
+};
+
 const struct dpu_mdss_cfg dpu_sc8180x_cfg = {
+       .mdss_ver = &sc8180x_mdss_ver,
        .caps = &sc8180x_dpu_caps,
        .ubwc = &sc8180x_ubwc_cfg,
        .mdp = &sc8180x_mdp,
index f8910dbc19520b4098c3203cd79f0637f86a3fd4..893d1271fb71e63e3e10864ec90e27d4b0a0b8fa 100644 (file)
@@ -390,7 +390,13 @@ static const struct dpu_perf_cfg sm8250_perf_data = {
        .bw_inefficiency_factor = 120,
 };
 
+static const struct dpu_mdss_version sm8250_mdss_ver = {
+       .core_major_ver = 6,
+       .core_minor_ver = 0,
+};
+
 const struct dpu_mdss_cfg dpu_sm8250_cfg = {
+       .mdss_ver = &sm8250_mdss_ver,
        .caps = &sm8250_dpu_caps,
        .ubwc = &sm8250_ubwc_cfg,
        .mdp = &sm8250_mdp,
index 8c046eacec7c02140d269484097085dd9a8d516a..61118f648cbc6c2c30e679cb24491c0f13c5ca92 100644 (file)
@@ -204,7 +204,13 @@ static const struct dpu_perf_cfg sc7180_perf_data = {
        .bw_inefficiency_factor = 120,
 };
 
+static const struct dpu_mdss_version sc7180_mdss_ver = {
+       .core_major_ver = 6,
+       .core_minor_ver = 2,
+};
+
 const struct dpu_mdss_cfg dpu_sc7180_cfg = {
+       .mdss_ver = &sc7180_mdss_ver,
        .caps = &sc7180_dpu_caps,
        .ubwc = &sc7180_ubwc_cfg,
        .mdp = &sc7180_mdp,
index 473cdbace3229be9801a578fd338b56a4347810d..c0d7bb930e8aca15c7d7ed5d406c0548444b7c1c 100644 (file)
@@ -136,7 +136,13 @@ static const struct dpu_perf_cfg sm6115_perf_data = {
        .bw_inefficiency_factor = 120,
 };
 
+static const struct dpu_mdss_version sm6115_mdss_ver = {
+       .core_major_ver = 6,
+       .core_minor_ver = 3,
+};
+
 const struct dpu_mdss_cfg dpu_sm6115_cfg = {
+       .mdss_ver = &sm6115_mdss_ver,
        .caps = &sm6115_dpu_caps,
        .ubwc = &sm6115_ubwc_cfg,
        .mdp = &sm6115_mdp,
index ac716c8dbd7f04e12d786b59b2aaad7c60e9e3cf..11c50aa5034b24730b79fb33f690bc99e79edc74 100644 (file)
@@ -207,7 +207,13 @@ static const struct dpu_perf_cfg sm6350_perf_data = {
        .bw_inefficiency_factor = 120,
 };
 
+static const struct dpu_mdss_version sm6350_mdss_ver = {
+       .core_major_ver = 6,
+       .core_minor_ver = 4,
+};
+
 const struct dpu_mdss_cfg dpu_sm6350_cfg = {
+       .mdss_ver = &sm6350_mdss_ver,
        .caps = &sm6350_dpu_caps,
        .ubwc = &sm6350_ubwc_cfg,
        .mdp = &sm6350_mdp,
index 7d9fdd8076957096d57bce3ddd99d23c171041cc..2182939bc02659c55828511cf9b567f0585d4d58 100644 (file)
@@ -126,7 +126,13 @@ static const struct dpu_perf_cfg qcm2290_perf_data = {
        .bw_inefficiency_factor = 120,
 };
 
+static const struct dpu_mdss_version qcm2290_mdss_ver = {
+       .core_major_ver = 6,
+       .core_minor_ver = 5,
+};
+
 const struct dpu_mdss_cfg dpu_qcm2290_cfg = {
+       .mdss_ver = &qcm2290_mdss_ver,
        .caps = &qcm2290_dpu_caps,
        .ubwc = &qcm2290_ubwc_cfg,
        .mdp = &qcm2290_mdp,
index 5f36f94688534e7ff04286011f30d3b0593dfd20..f0c0aa90f82eeb8f5c9bf97b5057a41854f559a8 100644 (file)
@@ -146,7 +146,13 @@ static const struct dpu_perf_cfg sm6375_perf_data = {
        .bw_inefficiency_factor = 120,
 };
 
+static const struct dpu_mdss_version sm6375_mdss_ver = {
+       .core_major_ver = 6,
+       .core_minor_ver = 9,
+};
+
 const struct dpu_mdss_cfg dpu_sm6375_cfg = {
+       .mdss_ver = &sm6375_mdss_ver,
        .caps = &sm6375_dpu_caps,
        .ubwc = &sm6375_ubwc_cfg,
        .mdp = &sm6375_mdp,
index b22e6b97c993b24dc5bb6b0d8ea3c7913234e13a..2460ced03610a952dc0a30b06b68ad2d6ad49191 100644 (file)
@@ -383,7 +383,13 @@ static const struct dpu_perf_cfg sm8350_perf_data = {
        .bw_inefficiency_factor = 120,
 };
 
+static const struct dpu_mdss_version sm8350_mdss_ver = {
+       .core_major_ver = 7,
+       .core_minor_ver = 0,
+};
+
 const struct dpu_mdss_cfg dpu_sm8350_cfg = {
+       .mdss_ver = &sm8350_mdss_ver,
        .caps = &sm8350_dpu_caps,
        .ubwc = &sm8350_ubwc_cfg,
        .mdp = &sm8350_mdp,
index 4b2cc62b07ea68f47d7c6934b354cd639976ff30..a8dea8f27c41c43afe9c3d184e224283002dbc07 100644 (file)
@@ -252,7 +252,13 @@ static const struct dpu_perf_cfg sc7280_perf_data = {
        .bw_inefficiency_factor = 120,
 };
 
+static const struct dpu_mdss_version sc7280_mdss_ver = {
+       .core_major_ver = 7,
+       .core_minor_ver = 2,
+};
+
 const struct dpu_mdss_cfg dpu_sc7280_cfg = {
+       .mdss_ver = &sc7280_mdss_ver,
        .caps = &sc7280_dpu_caps,
        .ubwc = &sc7280_ubwc_cfg,
        .mdp = &sc7280_mdp,
index ec959f85ae2a88513c50dbec4427adb3ffc55e52..397fe01125dda0889baa4dd12518e5171048ff86 100644 (file)
@@ -445,7 +445,13 @@ static const struct dpu_perf_cfg sc8280xp_perf_data = {
        .bw_inefficiency_factor = 120,
 };
 
+static const struct dpu_mdss_version sc8280xp_mdss_ver = {
+       .core_major_ver = 8,
+       .core_minor_ver = 0,
+};
+
 const struct dpu_mdss_cfg dpu_sc8280xp_cfg = {
+       .mdss_ver = &sc8280xp_mdss_ver,
        .caps = &sc8280xp_dpu_caps,
        .ubwc = &sc8280xp_ubwc_cfg,
        .mdp = &sc8280xp_mdp,
index 98a4aaef94d29835c575d475ecfe941e63907e01..90a8461911c8d85740f07e3e1d8464a59756b9de 100644 (file)
@@ -406,7 +406,13 @@ static const struct dpu_perf_cfg sm8450_perf_data = {
        .bw_inefficiency_factor = 120,
 };
 
+static const struct dpu_mdss_version sm8450_mdss_ver = {
+       .core_major_ver = 8,
+       .core_minor_ver = 1,
+};
+
 const struct dpu_mdss_cfg dpu_sm8450_cfg = {
+       .mdss_ver = &sm8450_mdss_ver,
        .caps = &sm8450_dpu_caps,
        .ubwc = &sm8450_ubwc_cfg,
        .mdp = &sm8450_mdp,
index 7de9eccf91811d1328109bffe598090942e2161f..c9252528136da7b1d61260e0dabf21dc6f1dfbe7 100644 (file)
@@ -420,7 +420,13 @@ static const struct dpu_perf_cfg sm8550_perf_data = {
        .bw_inefficiency_factor = 120,
 };
 
+static const struct dpu_mdss_version sm8550_mdss_ver = {
+       .core_major_ver = 9,
+       .core_minor_ver = 0,
+};
+
 const struct dpu_mdss_cfg dpu_sm8550_cfg = {
+       .mdss_ver = &sm8550_mdss_ver,
        .caps = &sm8550_dpu_caps,
        .ubwc = &sm8550_ubwc_cfg,
        .mdp = &sm8550_mdp,
index 3b816e36d12de10c686059d7168ea0da569abeaf..e455f95456f0f5380383af3db9af5c2b86e7e4e0 100644 (file)
@@ -746,6 +746,16 @@ struct dpu_perf_cdp_cfg {
        bool wr_enable;
 };
 
+/**
+ * struct dpu_mdss_version - DPU's major and minor versions
+ * @core_major_ver: DPU core's major version
+ * @core_minor_ver: DPU core's minor version
+ */
+struct dpu_mdss_version {
+       u8 core_major_ver;
+       u8 core_minor_ver;
+};
+
 /**
  * struct dpu_perf_cfg - performance control settings
  * @max_bw_low         low threshold of maximum bandwidth (kbps)
@@ -796,8 +806,9 @@ struct dpu_perf_cfg {
 /**
  * struct dpu_mdss_cfg - information of MDSS HW
  * This is the main catalog data structure representing
- * this HW version. Contains number of instances,
- * register offsets, capabilities of the all MDSS HW sub-blocks.
+ * this HW version. Contains dpu's major and minor versions,
+ * number of instances, register offsets, capabilities of the
+ * all MDSS HW sub-blocks.
  *
  * @dma_formats        Supported formats for dma pipe
  * @cursor_formats     Supported formats for cursor pipe
@@ -805,6 +816,8 @@ struct dpu_perf_cfg {
  * @mdss_irqs:         Bitmap with the irqs supported by the target
  */
 struct dpu_mdss_cfg {
+       const struct dpu_mdss_version *mdss_ver;
+
        const struct dpu_caps *caps;
 
        const struct dpu_ubwc_cfg *ubwc;