Re: [PATCH v2 8/9] drm/msm: merge dpu format database to MDP formats

2024-04-20 Thread Abhinav Kumar




On 4/19/2024 9:01 PM, Dmitry Baryshkov wrote:

Finally remove duplication between DPU and generic MDP code by merging
DPU format lists to the MDP format database.

Signed-off-by: Dmitry Baryshkov 
---
  .../gpu/drm/msm/disp/dpu1/dpu_encoder_phys_vid.c   |   4 +-
  .../gpu/drm/msm/disp/dpu1/dpu_encoder_phys_wb.c|   7 +-
  drivers/gpu/drm/msm/disp/dpu1/dpu_formats.c| 602 
  drivers/gpu/drm/msm/disp/dpu1/dpu_formats.h|  23 -
  drivers/gpu/drm/msm/disp/dpu1/dpu_hw_mdss.h|  10 -
  drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c|   2 +-
  drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c  |   3 +-
  drivers/gpu/drm/msm/disp/mdp_format.c  | 614 ++---
  drivers/gpu/drm/msm/disp/mdp_format.h  |  10 +
  drivers/gpu/drm/msm/disp/mdp_kms.h |   2 -
  drivers/gpu/drm/msm/msm_drv.h  |   2 +
  11 files changed, 571 insertions(+), 708 deletions(-)



Reviewed-by: Abhinav Kumar 


[PATCH v2 8/9] drm/msm: merge dpu format database to MDP formats

2024-04-19 Thread Dmitry Baryshkov
Finally remove duplication between DPU and generic MDP code by merging
DPU format lists to the MDP format database.

Signed-off-by: Dmitry Baryshkov 
---
 .../gpu/drm/msm/disp/dpu1/dpu_encoder_phys_vid.c   |   4 +-
 .../gpu/drm/msm/disp/dpu1/dpu_encoder_phys_wb.c|   7 +-
 drivers/gpu/drm/msm/disp/dpu1/dpu_formats.c| 602 
 drivers/gpu/drm/msm/disp/dpu1/dpu_formats.h|  23 -
 drivers/gpu/drm/msm/disp/dpu1/dpu_hw_mdss.h|  10 -
 drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c|   2 +-
 drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c  |   3 +-
 drivers/gpu/drm/msm/disp/mdp_format.c  | 614 ++---
 drivers/gpu/drm/msm/disp/mdp_format.h  |  10 +
 drivers/gpu/drm/msm/disp/mdp_kms.h |   2 -
 drivers/gpu/drm/msm/msm_drv.h  |   2 +
 11 files changed, 571 insertions(+), 708 deletions(-)

diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder_phys_vid.c 
b/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder_phys_vid.c
index deb2f6b446d3..b966c44ec835 100644
--- a/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder_phys_vid.c
+++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder_phys_vid.c
@@ -274,7 +274,7 @@ static void dpu_encoder_phys_vid_setup_timing_engine(
 
drm_mode_to_intf_timing_params(phys_enc, , _params);
 
-   fmt = dpu_get_dpu_format(fmt_fourcc);
+   fmt = 
phys_enc->dpu_kms->base.funcs->get_format(_enc->dpu_kms->base, fmt_fourcc, 
0);
DPU_DEBUG_VIDENC(phys_enc, "fmt_fourcc 0x%X\n", fmt_fourcc);
 
if (phys_enc->hw_cdm)
@@ -414,7 +414,7 @@ static void dpu_encoder_phys_vid_enable(struct 
dpu_encoder_phys *phys_enc)
 
ctl = phys_enc->hw_ctl;
fmt_fourcc = dpu_encoder_get_drm_fmt(phys_enc);
-   fmt = dpu_get_dpu_format(fmt_fourcc);
+   fmt = 
phys_enc->dpu_kms->base.funcs->get_format(_enc->dpu_kms->base, fmt_fourcc, 
0);
 
DPU_DEBUG_VIDENC(phys_enc, "\n");
 
diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder_phys_wb.c 
b/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder_phys_wb.c
index 8b5a4a1c239e..de17bcbb8492 100644
--- a/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder_phys_wb.c
+++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder_phys_wb.c
@@ -326,7 +326,8 @@ static void dpu_encoder_phys_wb_setup(
 
wb_job = wb_enc->wb_job;
format = msm_framebuffer_format(wb_enc->wb_job->fb);
-   dpu_fmt = dpu_get_dpu_format_ext(format->pixel_format, 
wb_job->fb->modifier);
+   dpu_fmt = 
phys_enc->dpu_kms->base.funcs->get_format(_enc->dpu_kms->base,
+   
format->pixel_format, wb_job->fb->modifier);
 
DPU_DEBUG("[mode_set:%d, \"%s\",%d,%d]\n",
hw_wb->idx - WB_0, mode.name,
@@ -576,8 +577,8 @@ static void dpu_encoder_phys_wb_prepare_wb_job(struct 
dpu_encoder_phys *phys_enc
 
format = msm_framebuffer_format(job->fb);
 
-   wb_cfg->dest.format = dpu_get_dpu_format_ext(
-   format->pixel_format, job->fb->modifier);
+   wb_cfg->dest.format = 
phys_enc->dpu_kms->base.funcs->get_format(_enc->dpu_kms->base,
+format->pixel_format, 
job->fb->modifier);
if (!wb_cfg->dest.format) {
/* this error should be detected during atomic_check */
DPU_ERROR("failed to get format %p4cc\n", 
>pixel_format);
diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_formats.c 
b/drivers/gpu/drm/msm/disp/dpu1/dpu_formats.c
index 2bb1584920c6..6b1e9a617da3 100644
--- a/drivers/gpu/drm/msm/disp/dpu1/dpu_formats.c
+++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_formats.c
@@ -11,186 +11,11 @@
 #include "dpu_kms.h"
 #include "dpu_formats.h"
 
-#define DPU_UBWC_META_MACRO_W_H16
-#define DPU_UBWC_META_BLOCK_SIZE   256
 #define DPU_UBWC_PLANE_SIZE_ALIGNMENT  4096
 
-#define DPU_TILE_HEIGHT_DEFAULT1
-#define DPU_TILE_HEIGHT_TILED  4
-#define DPU_TILE_HEIGHT_UBWC   4
-#define DPU_TILE_HEIGHT_NV12   8
-
 #define DPU_MAX_IMG_WIDTH  0x3FFF
 #define DPU_MAX_IMG_HEIGHT 0x3FFF
 
-/*
- * DPU supported format packing, bpp, and other format
- * information.
- * DPU currently only supports interleaved RGB formats
- * UBWC support for a pixel format is indicated by the flag,
- * there is additional meta data plane for such formats
- */
-
-#define INTERLEAVED_RGB_FMT(fmt, a, r, g, b, e0, e1, e2, e3, uc, alpha,   \
-bp, flg, fm, np)  \
-{ \
-   .pixel_format = DRM_FORMAT_ ## fmt,   \
-   .fetch_type = MDP_PLANE_INTERLEAVED,  \
-   .alpha_enable = alpha,\
-   .element = { (e0), (e1), (e2), (e3) },\
-   .bpc_g_y = g, \
-   .bpc_b_cb = b,