Re: [PATCH 10/12] drm/msm: convert msm_format::alpha_enable to the flag

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 





On 12/2/2023 1:40 PM, Dmitry Baryshkov wrote:
Instead of having a bool field alpha_enable, convert it to the
flag, this save space in the tables and allows us to handle all booleans
in the same way.

Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@xxxxxxxxxx>
---
  drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c    | 12 ++++++-----
  drivers/gpu/drm/msm/disp/dpu1/dpu_formats.c | 24 ++++++++++-----------
  drivers/gpu/drm/msm/disp/dpu1/dpu_hw_sspp.c |  7 +++---
  drivers/gpu/drm/msm/disp/dpu1/dpu_hw_util.c |  3 ++-
  drivers/gpu/drm/msm/disp/dpu1/dpu_hw_wb.c   |  4 ++--
  drivers/gpu/drm/msm/disp/mdp4/mdp4_crtc.c   |  2 +-
  drivers/gpu/drm/msm/disp/mdp4/mdp4_plane.c  |  3 ++-
  drivers/gpu/drm/msm/disp/mdp5/mdp5_crtc.c   |  9 ++++----
  drivers/gpu/drm/msm/disp/mdp5/mdp5_plane.c  |  3 ++-
  drivers/gpu/drm/msm/disp/mdp_format.c       |  2 +-
  drivers/gpu/drm/msm/msm_drv.h               |  4 ++--
  11 files changed, 40 insertions(+), 33 deletions(-)

diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c
index 9041b0d71b25..201010038660 100644
--- a/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c
+++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c
@@ -342,7 +342,7 @@ static void _dpu_crtc_setup_blend_cfg(struct dpu_crtc_mixer *mixer,
/* default to opaque blending */
  	if (pstate->base.pixel_blend_mode == DRM_MODE_BLEND_PIXEL_NONE ||
-	    !format->alpha_enable) {
+	    !(format->flags & MSM_FORMAT_FLAG_ALPHA_ENABLE)) {
  		blend_op = DPU_BLEND_FG_ALPHA_FG_CONST |
  			DPU_BLEND_BG_ALPHA_BG_CONST;
  	} else if (pstate->base.pixel_blend_mode == DRM_MODE_BLEND_PREMULTI) {
@@ -373,8 +373,8 @@ static void _dpu_crtc_setup_blend_cfg(struct dpu_crtc_mixer *mixer,
  	lm->ops.setup_blend_config(lm, pstate->stage,
  				fg_alpha, bg_alpha, blend_op);
- DRM_DEBUG_ATOMIC("format:%p4cc, alpha_en:%u blend_op:0x%x\n",
-		  &format->pixel_format, format->alpha_enable, blend_op);
+	DRM_DEBUG_ATOMIC("format:%p4cc, alpha_en:%lu blend_op:0x%x\n",
+		  &format->pixel_format, format->flags & MSM_FORMAT_FLAG_ALPHA_ENABLE, blend_op);
  }
static void _dpu_crtc_program_lm_output_roi(struct drm_crtc *crtc)
@@ -472,7 +472,8 @@ static void _dpu_crtc_blend_setup_mixer(struct drm_crtc *crtc,
format = msm_framebuffer_format(pstate->base.fb); - if (pstate->stage == DPU_STAGE_BASE && format->alpha_enable)
+		if (pstate->stage == DPU_STAGE_BASE &&
+		    format->flags & MSM_FORMAT_FLAG_ALPHA_ENABLE)
  			bg_alpha_enable = true;
set_bit(pstate->pipe.sspp->idx, fetch_active);
@@ -495,7 +496,8 @@ static void _dpu_crtc_blend_setup_mixer(struct drm_crtc *crtc,
  		for (lm_idx = 0; lm_idx < cstate->num_mixers; lm_idx++) {
  			_dpu_crtc_setup_blend_cfg(mixer + lm_idx, pstate, format);
- if (bg_alpha_enable && !format->alpha_enable)
+			if (bg_alpha_enable &&
+			    !(format->flags & MSM_FORMAT_FLAG_ALPHA_ENABLE))
  				mixer[lm_idx].mixer_op_mode = 0;
  			else
  				mixer[lm_idx].mixer_op_mode |=
diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_formats.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_formats.c
index baf0fd67bf42..de9e93cb42c4 100644
--- a/drivers/gpu/drm/msm/disp/dpu1/dpu_formats.c
+++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_formats.c
@@ -36,7 +36,6 @@ 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,                                                    \
@@ -46,7 +45,9 @@ bp, flg, fm, np)                                                          \
  	.unpack_count = uc,                                               \
  	.bpp = bp,                                                        \
  	.fetch_mode = fm,                                                 \
-	.flags = MSM_FORMAT_FLAG_UNPACK_TIGHT | flg,                      \
+	.flags = MSM_FORMAT_FLAG_UNPACK_TIGHT |                           \
+		(alpha ? MSM_FORMAT_FLAG_ALPHA_ENABLE : 0) |              \
+		flg,                                                      \

In the previous two patches where the same thing was done for unpack_tight and unpack_align_msb, it was different in the sense that just on the basis of which macro we were choosing we knew the value of those flags so you could just unconditionally OR those flags.

But for alpha, you are performing a conditional before ORing this so I think for this leaving it as a bool is cleaner.




[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [Linux for Sparc]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux