diff mbox series

[10/11] drm/msm/dpu: Further cleanups for static inline functions

Message ID 20181105233103.7657-11-jcrouse@codeaurora.org (mailing list archive)
State New, archived
Headers show
Series DPU cleanups | expand

Commit Message

Jordan Crouse Nov. 5, 2018, 11:31 p.m. UTC
Remove more static inline functions that are lightly used and/or
very simple and easy to build into the calling functions.

v2: Removed another unused function from dpu_hw_lm.c and add back
dpu_crtc_get_client_type() since there was a question regarding
its usefulness.

Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org>
---
 drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c       | 12 +++---------
 drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.h       | 10 ----------
 .../gpu/drm/msm/disp/dpu1/dpu_encoder_phys.h   |  2 +-
 .../drm/msm/disp/dpu1/dpu_encoder_phys_cmd.c   | 11 ++---------
 drivers/gpu/drm/msm/disp/dpu1/dpu_hw_catalog.h |  9 ---------
 drivers/gpu/drm/msm/disp/dpu1/dpu_hw_lm.c      |  6 ------
 drivers/gpu/drm/msm/disp/dpu1/dpu_hw_lm.h      |  5 -----
 drivers/gpu/drm/msm/disp/dpu1/dpu_hw_sspp.c    |  3 ++-
 drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c        |  8 +-------
 drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c      | 18 ++++--------------
 10 files changed, 13 insertions(+), 71 deletions(-)

Comments

Sean Paul Nov. 6, 2018, 3:12 p.m. UTC | #1
On Mon, Nov 05, 2018 at 04:31:02PM -0700, Jordan Crouse wrote:
> Remove more static inline functions that are lightly used and/or
> very simple and easy to build into the calling functions.
> 
> v2: Removed another unused function from dpu_hw_lm.c and add back
> dpu_crtc_get_client_type() since there was a question regarding
> its usefulness.
> 
> Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org>
> ---
>  drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c       | 12 +++---------
>  drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.h       | 10 ----------
>  .../gpu/drm/msm/disp/dpu1/dpu_encoder_phys.h   |  2 +-
>  .../drm/msm/disp/dpu1/dpu_encoder_phys_cmd.c   | 11 ++---------
>  drivers/gpu/drm/msm/disp/dpu1/dpu_hw_catalog.h |  9 ---------
>  drivers/gpu/drm/msm/disp/dpu1/dpu_hw_lm.c      |  6 ------
>  drivers/gpu/drm/msm/disp/dpu1/dpu_hw_lm.h      |  5 -----
>  drivers/gpu/drm/msm/disp/dpu1/dpu_hw_sspp.c    |  3 ++-
>  drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c        |  8 +-------
>  drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c      | 18 ++++--------------
>  10 files changed, 13 insertions(+), 71 deletions(-)
> 

/snip

> diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder_phys.h b/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder_phys.h
> index 3a67bb9f9d9d..94286b623874 100644
> --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder_phys.h
> +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder_phys.h
> @@ -350,7 +350,7 @@ static inline enum dpu_3d_blend_mode dpu_encoder_helper_get_3d_blend_mode(
>  	dpu_cstate = to_dpu_crtc_state(phys_enc->parent->crtc->state);
>  
>  	if (phys_enc->split_role == ENC_ROLE_SOLO &&
> -	    dpu_crtc_state_is_stereo(dpu_cstate))
> +	    (dpu_cstate->num_mixers == CRTC_DUAL_MIXERS))

nit: unnecessary ()

With that fixed,

Reviewed-by: Sean Paul <sean@poorly.run>


>  		return BLEND_3D_H_ROW_INT;
>  
>  	return BLEND_3D_NONE;
> diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder_phys_cmd.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder_phys_cmd.c
> index b37a0992e326..99ab5ca9bed3 100644
> --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder_phys_cmd.c
> +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder_phys_cmd.c
> @@ -44,14 +44,7 @@
>  
>  #define DPU_ENC_WR_PTR_START_TIMEOUT_US 20000
>  
> -static inline int _dpu_encoder_phys_cmd_get_idle_timeout(
> -		struct dpu_encoder_phys_cmd *cmd_enc)
> -{
> -	return KICKOFF_TIMEOUT_MS;
> -}
> -
> -static inline bool dpu_encoder_phys_cmd_is_master(
> -		struct dpu_encoder_phys *phys_enc)
> +static bool dpu_encoder_phys_cmd_is_master(struct dpu_encoder_phys *phys_enc)
>  {
>  	return (phys_enc->split_role != ENC_ROLE_SLAVE) ? true : false;
>  }
> @@ -723,7 +716,7 @@ static int dpu_encoder_phys_cmd_wait_for_vblank(
>  
>  	wait_info.wq = &cmd_enc->pending_vblank_wq;
>  	wait_info.atomic_cnt = &cmd_enc->pending_vblank_cnt;
> -	wait_info.timeout_ms = _dpu_encoder_phys_cmd_get_idle_timeout(cmd_enc);
> +	wait_info.timeout_ms = KICKOFF_TIMEOUT_MS;
>  
>  	atomic_inc(&cmd_enc->pending_vblank_cnt);
>  
> 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 dc060e7358e4..144358a3d0fb 100644
> --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_catalog.h
> +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_catalog.h
> @@ -736,13 +736,4 @@ struct dpu_mdss_cfg *dpu_hw_catalog_init(u32 hw_rev);
>   */
>  void dpu_hw_catalog_deinit(struct dpu_mdss_cfg *dpu_cfg);
>  
> -/**
> - * dpu_hw_sspp_multirect_enabled - check multirect enabled for the sspp
> - * @cfg:          pointer to sspp cfg
> - */
> -static inline bool dpu_hw_sspp_multirect_enabled(const struct dpu_sspp_cfg *cfg)
> -{
> -	return test_bit(DPU_SSPP_SMART_DMA_V1, &cfg->features) ||
> -			 test_bit(DPU_SSPP_SMART_DMA_V2, &cfg->features);
> -}
>  #endif /* _DPU_HW_CATALOG_H */
> diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_lm.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_lm.c
> index 9f342af2aba7..018df2c3b7ed 100644
> --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_lm.c
> +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_lm.c
> @@ -156,11 +156,6 @@ static void dpu_hw_lm_setup_color3(struct dpu_hw_mixer *ctx,
>  	DPU_REG_WRITE(c, LM_OP_MODE, op_mode);
>  }
>  
> -static void dpu_hw_lm_gc(struct dpu_hw_mixer *mixer,
> -			void *cfg)
> -{
> -}
> -
>  static void _setup_mixer_ops(struct dpu_mdss_cfg *m,
>  		struct dpu_hw_lm_ops *ops,
>  		unsigned long features)
> @@ -172,7 +167,6 @@ static void _setup_mixer_ops(struct dpu_mdss_cfg *m,
>  		ops->setup_blend_config = dpu_hw_lm_setup_blend_config;
>  	ops->setup_alpha_out = dpu_hw_lm_setup_color3;
>  	ops->setup_border_color = dpu_hw_lm_setup_border_color;
> -	ops->setup_gc = dpu_hw_lm_gc;
>  };
>  
>  static struct dpu_hw_blk_ops dpu_hw_ops;
> diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_lm.h b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_lm.h
> index 5b036aca8340..6aee839a6a23 100644
> --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_lm.h
> +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_lm.h
> @@ -61,11 +61,6 @@ struct dpu_hw_lm_ops {
>  	void (*setup_border_color)(struct dpu_hw_mixer *ctx,
>  		struct dpu_mdss_color *color,
>  		u8 border_en);
> -	/**
> -	 * setup_gc : enable/disable gamma correction feature
> -	 */
> -	void (*setup_gc)(struct dpu_hw_mixer *mixer,
> -			void *cfg);
>  };
>  
>  struct dpu_hw_mixer {
> diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_sspp.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_sspp.c
> index 3ebdf292d8f2..e9132bf5166b 100644
> --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_sspp.c
> +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_sspp.c
> @@ -661,7 +661,8 @@ static void _setup_layer_ops(struct dpu_hw_pipe *c,
>  		test_bit(DPU_SSPP_CSC_10BIT, &features))
>  		c->ops.setup_csc = dpu_hw_sspp_setup_csc;
>  
> -	if (dpu_hw_sspp_multirect_enabled(c->cap))
> +	if (test_bit(DPU_SSPP_SMART_DMA_V1, &c->cap->features) ||
> +		test_bit(DPU_SSPP_SMART_DMA_V2, &c->cap->features))
>  		c->ops.setup_multirect = dpu_hw_sspp_setup_multirect;
>  
>  	if (test_bit(DPU_SSPP_SCALER_QSEED3, &features)) {
> diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c
> index 3d0c93c49764..546fdd609b17 100644
> --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c
> +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c
> @@ -688,12 +688,6 @@ static const struct msm_kms_funcs kms_funcs = {
>  #endif
>  };
>  
> -/* the caller api needs to turn on clock before calling it */
> -static inline void _dpu_kms_core_hw_rev_init(struct dpu_kms *dpu_kms)
> -{
> -	dpu_kms->core_rev = readl_relaxed(dpu_kms->mmio + 0x0);
> -}
> -
>  static int _dpu_kms_mmu_destroy(struct dpu_kms *dpu_kms)
>  {
>  	struct msm_mmu *mmu;
> @@ -849,7 +843,7 @@ static int dpu_kms_hw_init(struct msm_kms *kms)
>  
>  	pm_runtime_get_sync(&dpu_kms->pdev->dev);
>  
> -	_dpu_kms_core_hw_rev_init(dpu_kms);
> +	dpu_kms->core_rev = readl_relaxed(dpu_kms->mmio + 0x0);
>  
>  	pr_info("dpu hardware revision:0x%x\n", dpu_kms->core_rev);
>  
> diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c
> index bcd8d46ffc38..688233dbd597 100644
> --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c
> +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c
> @@ -430,24 +430,14 @@ static void _dpu_plane_set_qos_remap(struct drm_plane *plane)
>  	dpu_vbif_set_qos_remap(dpu_kms, &qos_params);
>  }
>  
> -/**
> - * _dpu_plane_get_aspace: gets the address space
> - */
> -static inline struct msm_gem_address_space *_dpu_plane_get_aspace(
> -		struct dpu_plane *pdpu)
> -{
> -	struct dpu_kms *kms = _dpu_plane_get_kms(&pdpu->base);
> -
> -	return kms->base.aspace;
> -}
> -
>  static void _dpu_plane_set_scanout(struct drm_plane *plane,
>  		struct dpu_plane_state *pstate,
>  		struct dpu_hw_pipe_cfg *pipe_cfg,
>  		struct drm_framebuffer *fb)
>  {
>  	struct dpu_plane *pdpu = to_dpu_plane(plane);
> -	struct msm_gem_address_space *aspace = _dpu_plane_get_aspace(pdpu);
> +	struct dpu_kms *kms = _dpu_plane_get_kms(&pdpu->base);
> +	struct msm_gem_address_space *aspace = kms->base.aspace;
>  	int ret;
>  
>  	ret = dpu_format_populate_layout(aspace, fb, &pipe_cfg->layout);
> @@ -801,7 +791,7 @@ static int dpu_plane_prepare_fb(struct drm_plane *plane,
>  	struct drm_gem_object *obj;
>  	struct msm_gem_object *msm_obj;
>  	struct dma_fence *fence;
> -	struct msm_gem_address_space *aspace = _dpu_plane_get_aspace(pdpu);
> +	struct dpu_kms *kms = _dpu_plane_get_kms(&pdpu->base);
>  	int ret;
>  
>  	if (!new_state->fb)
> @@ -810,7 +800,7 @@ static int dpu_plane_prepare_fb(struct drm_plane *plane,
>  	DPU_DEBUG_PLANE(pdpu, "FB[%u]\n", fb->base.id);
>  
>  	/* cache aspace */
> -	pstate->aspace = aspace;
> +	pstate->aspace = kms->base.aspace;
>  
>  	/*
>  	 * TODO: Need to sort out the msm_framebuffer_prepare() call below so
> -- 
> 2.18.0
>
diff mbox series

Patch

diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c
index edcc4580d41b..3f047479e2f5 100644
--- a/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c
+++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c
@@ -47,12 +47,6 @@ 
 #define LEFT_MIXER 0
 #define RIGHT_MIXER 1
 
-static inline int _dpu_crtc_get_mixer_width(struct dpu_crtc_state *cstate,
-					    struct drm_display_mode *mode)
-{
-	return mode->hdisplay / cstate->num_mixers;
-}
-
 static struct dpu_kms *_dpu_crtc_get_kms(struct drm_crtc *crtc)
 {
 	struct msm_drm_private *priv = crtc->dev->dev_private;
@@ -493,7 +487,7 @@  static void _dpu_crtc_setup_lm_bounds(struct drm_crtc *crtc,
 {
 	struct dpu_crtc_state *cstate = to_dpu_crtc_state(state);
 	struct drm_display_mode *adj_mode = &state->adjusted_mode;
-	u32 crtc_split_width = _dpu_crtc_get_mixer_width(cstate, adj_mode);
+	u32 crtc_split_width = adj_mode->hdisplay / cstate->num_mixers;
 	int i;
 
 	for (i = 0; i < cstate->num_mixers; i++) {
@@ -1029,7 +1023,7 @@  static int dpu_crtc_atomic_check(struct drm_crtc *crtc,
 
 	memset(pipe_staged, 0, sizeof(pipe_staged));
 
-	mixer_width = _dpu_crtc_get_mixer_width(cstate, mode);
+	mixer_width = mode->hdisplay / cstate->num_mixers;
 
 	_dpu_crtc_setup_lm_bounds(crtc, state);
 
@@ -1254,7 +1248,7 @@  static int dpu_crtc_debugfs_status_show(struct seq_file *s, void *data)
 
 	mutex_lock(&dpu_crtc->crtc_lock);
 	mode = &crtc->state->adjusted_mode;
-	out_width = _dpu_crtc_get_mixer_width(cstate, mode);
+	out_width = mode->hdisplay / cstate->num_mixers;
 
 	seq_printf(s, "crtc:%d width:%d height:%d\n", crtc->base.id,
 				mode->hdisplay, mode->vdisplay);
diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.h b/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.h
index 90bb255fad3a..b498c346e817 100644
--- a/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.h
+++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.h
@@ -235,16 +235,6 @@  struct dpu_crtc_state {
 #define to_dpu_crtc_state(x) \
 	container_of(x, struct dpu_crtc_state, base)
 
-/**
- * dpu_crtc_state_is_stereo - Is crtc virtualized with two mixers?
- * @cstate: Pointer to dpu crtc state
- * @Return: true - has two mixers, false - has one mixer
- */
-static inline bool dpu_crtc_state_is_stereo(struct dpu_crtc_state *cstate)
-{
-	return cstate->num_mixers == CRTC_DUAL_MIXERS;
-}
-
 /**
  * dpu_crtc_frame_pending - retun the number of pending frames
  * @crtc: Pointer to drm crtc object
diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder_phys.h b/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder_phys.h
index 3a67bb9f9d9d..94286b623874 100644
--- a/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder_phys.h
+++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder_phys.h
@@ -350,7 +350,7 @@  static inline enum dpu_3d_blend_mode dpu_encoder_helper_get_3d_blend_mode(
 	dpu_cstate = to_dpu_crtc_state(phys_enc->parent->crtc->state);
 
 	if (phys_enc->split_role == ENC_ROLE_SOLO &&
-	    dpu_crtc_state_is_stereo(dpu_cstate))
+	    (dpu_cstate->num_mixers == CRTC_DUAL_MIXERS))
 		return BLEND_3D_H_ROW_INT;
 
 	return BLEND_3D_NONE;
diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder_phys_cmd.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder_phys_cmd.c
index b37a0992e326..99ab5ca9bed3 100644
--- a/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder_phys_cmd.c
+++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder_phys_cmd.c
@@ -44,14 +44,7 @@ 
 
 #define DPU_ENC_WR_PTR_START_TIMEOUT_US 20000
 
-static inline int _dpu_encoder_phys_cmd_get_idle_timeout(
-		struct dpu_encoder_phys_cmd *cmd_enc)
-{
-	return KICKOFF_TIMEOUT_MS;
-}
-
-static inline bool dpu_encoder_phys_cmd_is_master(
-		struct dpu_encoder_phys *phys_enc)
+static bool dpu_encoder_phys_cmd_is_master(struct dpu_encoder_phys *phys_enc)
 {
 	return (phys_enc->split_role != ENC_ROLE_SLAVE) ? true : false;
 }
@@ -723,7 +716,7 @@  static int dpu_encoder_phys_cmd_wait_for_vblank(
 
 	wait_info.wq = &cmd_enc->pending_vblank_wq;
 	wait_info.atomic_cnt = &cmd_enc->pending_vblank_cnt;
-	wait_info.timeout_ms = _dpu_encoder_phys_cmd_get_idle_timeout(cmd_enc);
+	wait_info.timeout_ms = KICKOFF_TIMEOUT_MS;
 
 	atomic_inc(&cmd_enc->pending_vblank_cnt);
 
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 dc060e7358e4..144358a3d0fb 100644
--- a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_catalog.h
+++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_catalog.h
@@ -736,13 +736,4 @@  struct dpu_mdss_cfg *dpu_hw_catalog_init(u32 hw_rev);
  */
 void dpu_hw_catalog_deinit(struct dpu_mdss_cfg *dpu_cfg);
 
-/**
- * dpu_hw_sspp_multirect_enabled - check multirect enabled for the sspp
- * @cfg:          pointer to sspp cfg
- */
-static inline bool dpu_hw_sspp_multirect_enabled(const struct dpu_sspp_cfg *cfg)
-{
-	return test_bit(DPU_SSPP_SMART_DMA_V1, &cfg->features) ||
-			 test_bit(DPU_SSPP_SMART_DMA_V2, &cfg->features);
-}
 #endif /* _DPU_HW_CATALOG_H */
diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_lm.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_lm.c
index 9f342af2aba7..018df2c3b7ed 100644
--- a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_lm.c
+++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_lm.c
@@ -156,11 +156,6 @@  static void dpu_hw_lm_setup_color3(struct dpu_hw_mixer *ctx,
 	DPU_REG_WRITE(c, LM_OP_MODE, op_mode);
 }
 
-static void dpu_hw_lm_gc(struct dpu_hw_mixer *mixer,
-			void *cfg)
-{
-}
-
 static void _setup_mixer_ops(struct dpu_mdss_cfg *m,
 		struct dpu_hw_lm_ops *ops,
 		unsigned long features)
@@ -172,7 +167,6 @@  static void _setup_mixer_ops(struct dpu_mdss_cfg *m,
 		ops->setup_blend_config = dpu_hw_lm_setup_blend_config;
 	ops->setup_alpha_out = dpu_hw_lm_setup_color3;
 	ops->setup_border_color = dpu_hw_lm_setup_border_color;
-	ops->setup_gc = dpu_hw_lm_gc;
 };
 
 static struct dpu_hw_blk_ops dpu_hw_ops;
diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_lm.h b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_lm.h
index 5b036aca8340..6aee839a6a23 100644
--- a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_lm.h
+++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_lm.h
@@ -61,11 +61,6 @@  struct dpu_hw_lm_ops {
 	void (*setup_border_color)(struct dpu_hw_mixer *ctx,
 		struct dpu_mdss_color *color,
 		u8 border_en);
-	/**
-	 * setup_gc : enable/disable gamma correction feature
-	 */
-	void (*setup_gc)(struct dpu_hw_mixer *mixer,
-			void *cfg);
 };
 
 struct dpu_hw_mixer {
diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_sspp.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_sspp.c
index 3ebdf292d8f2..e9132bf5166b 100644
--- a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_sspp.c
+++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_sspp.c
@@ -661,7 +661,8 @@  static void _setup_layer_ops(struct dpu_hw_pipe *c,
 		test_bit(DPU_SSPP_CSC_10BIT, &features))
 		c->ops.setup_csc = dpu_hw_sspp_setup_csc;
 
-	if (dpu_hw_sspp_multirect_enabled(c->cap))
+	if (test_bit(DPU_SSPP_SMART_DMA_V1, &c->cap->features) ||
+		test_bit(DPU_SSPP_SMART_DMA_V2, &c->cap->features))
 		c->ops.setup_multirect = dpu_hw_sspp_setup_multirect;
 
 	if (test_bit(DPU_SSPP_SCALER_QSEED3, &features)) {
diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c
index 3d0c93c49764..546fdd609b17 100644
--- a/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c
+++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c
@@ -688,12 +688,6 @@  static const struct msm_kms_funcs kms_funcs = {
 #endif
 };
 
-/* the caller api needs to turn on clock before calling it */
-static inline void _dpu_kms_core_hw_rev_init(struct dpu_kms *dpu_kms)
-{
-	dpu_kms->core_rev = readl_relaxed(dpu_kms->mmio + 0x0);
-}
-
 static int _dpu_kms_mmu_destroy(struct dpu_kms *dpu_kms)
 {
 	struct msm_mmu *mmu;
@@ -849,7 +843,7 @@  static int dpu_kms_hw_init(struct msm_kms *kms)
 
 	pm_runtime_get_sync(&dpu_kms->pdev->dev);
 
-	_dpu_kms_core_hw_rev_init(dpu_kms);
+	dpu_kms->core_rev = readl_relaxed(dpu_kms->mmio + 0x0);
 
 	pr_info("dpu hardware revision:0x%x\n", dpu_kms->core_rev);
 
diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c
index bcd8d46ffc38..688233dbd597 100644
--- a/drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c
+++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c
@@ -430,24 +430,14 @@  static void _dpu_plane_set_qos_remap(struct drm_plane *plane)
 	dpu_vbif_set_qos_remap(dpu_kms, &qos_params);
 }
 
-/**
- * _dpu_plane_get_aspace: gets the address space
- */
-static inline struct msm_gem_address_space *_dpu_plane_get_aspace(
-		struct dpu_plane *pdpu)
-{
-	struct dpu_kms *kms = _dpu_plane_get_kms(&pdpu->base);
-
-	return kms->base.aspace;
-}
-
 static void _dpu_plane_set_scanout(struct drm_plane *plane,
 		struct dpu_plane_state *pstate,
 		struct dpu_hw_pipe_cfg *pipe_cfg,
 		struct drm_framebuffer *fb)
 {
 	struct dpu_plane *pdpu = to_dpu_plane(plane);
-	struct msm_gem_address_space *aspace = _dpu_plane_get_aspace(pdpu);
+	struct dpu_kms *kms = _dpu_plane_get_kms(&pdpu->base);
+	struct msm_gem_address_space *aspace = kms->base.aspace;
 	int ret;
 
 	ret = dpu_format_populate_layout(aspace, fb, &pipe_cfg->layout);
@@ -801,7 +791,7 @@  static int dpu_plane_prepare_fb(struct drm_plane *plane,
 	struct drm_gem_object *obj;
 	struct msm_gem_object *msm_obj;
 	struct dma_fence *fence;
-	struct msm_gem_address_space *aspace = _dpu_plane_get_aspace(pdpu);
+	struct dpu_kms *kms = _dpu_plane_get_kms(&pdpu->base);
 	int ret;
 
 	if (!new_state->fb)
@@ -810,7 +800,7 @@  static int dpu_plane_prepare_fb(struct drm_plane *plane,
 	DPU_DEBUG_PLANE(pdpu, "FB[%u]\n", fb->base.id);
 
 	/* cache aspace */
-	pstate->aspace = aspace;
+	pstate->aspace = kms->base.aspace;
 
 	/*
 	 * TODO: Need to sort out the msm_framebuffer_prepare() call below so