Commit 62027b77 authored by Mahesh Kumar's avatar Mahesh Kumar Committed by Maarten Lankhorst

drm/i915/skl+: pass skl_wm_level struct to wm compute func

This patch passes skl_wm_level structure itself to watermark
computation function skl_compute_plane_wm function (instead
of its internal parameters). It reduces number of arguments
required to be passed.

v2: Addressed review comments by Shashank Sharma

v3: Adding reviewed by tag from Shashank Sharma

v4: Added reviewed by from Juha-Pekka Heikkila

v5: Rebased the series
Reviewed-by: default avatarJuha-Pekka Heikkila <juhapekka.heikkila@gmail.com>
Reviewed-by: default avatarShashank Sharma <shashank.sharma@intel.com>
Signed-off-by: default avatarMahesh Kumar <mahesh1.kumar@intel.com>
Signed-off-by: default avatarVidya Srinivas <vidya.srinivas@intel.com>
Reviewed-by: default avatarMaarten Lankhorst <maarten.lankhorst@linux.intel.com>
Signed-off-by: default avatarMaarten Lankhorst <maarten.lankhorst@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/1523245273-30264-7-git-send-email-vidya.srinivas@intel.com
parent 942aa2d0
...@@ -4529,9 +4529,7 @@ static int skl_compute_plane_wm(const struct drm_i915_private *dev_priv, ...@@ -4529,9 +4529,7 @@ static int skl_compute_plane_wm(const struct drm_i915_private *dev_priv,
uint16_t ddb_allocation, uint16_t ddb_allocation,
int level, int level,
const struct skl_wm_params *wp, const struct skl_wm_params *wp,
uint16_t *out_blocks, /* out */ struct skl_wm_level *result /* out */)
uint8_t *out_lines, /* out */
bool *enabled /* out */)
{ {
const struct drm_plane_state *pstate = &intel_pstate->base; const struct drm_plane_state *pstate = &intel_pstate->base;
uint32_t latency = dev_priv->wm.skl_latency[level]; uint32_t latency = dev_priv->wm.skl_latency[level];
...@@ -4545,7 +4543,7 @@ static int skl_compute_plane_wm(const struct drm_i915_private *dev_priv, ...@@ -4545,7 +4543,7 @@ static int skl_compute_plane_wm(const struct drm_i915_private *dev_priv,
if (latency == 0 || if (latency == 0 ||
!intel_wm_plane_visible(cstate, intel_pstate)) { !intel_wm_plane_visible(cstate, intel_pstate)) {
*enabled = false; result->plane_en = false;
return 0; return 0;
} }
...@@ -4626,7 +4624,7 @@ static int skl_compute_plane_wm(const struct drm_i915_private *dev_priv, ...@@ -4626,7 +4624,7 @@ static int skl_compute_plane_wm(const struct drm_i915_private *dev_priv,
if ((level > 0 && res_lines > 31) || if ((level > 0 && res_lines > 31) ||
res_blocks >= ddb_allocation || res_blocks >= ddb_allocation ||
min_disp_buf_needed >= ddb_allocation) { min_disp_buf_needed >= ddb_allocation) {
*enabled = false; result->plane_en = false;
/* /*
* If there are no valid level 0 watermarks, then we can't * If there are no valid level 0 watermarks, then we can't
...@@ -4646,9 +4644,9 @@ static int skl_compute_plane_wm(const struct drm_i915_private *dev_priv, ...@@ -4646,9 +4644,9 @@ static int skl_compute_plane_wm(const struct drm_i915_private *dev_priv,
} }
/* The number of lines are ignored for the level 0 watermark. */ /* The number of lines are ignored for the level 0 watermark. */
*out_lines = level ? res_lines : 0; result->plane_res_b = res_blocks;
*out_blocks = res_blocks; result->plane_res_l = res_lines;
*enabled = true; result->plane_en = true;
return 0; return 0;
} }
...@@ -4688,9 +4686,7 @@ skl_compute_wm_levels(const struct drm_i915_private *dev_priv, ...@@ -4688,9 +4686,7 @@ skl_compute_wm_levels(const struct drm_i915_private *dev_priv,
ddb_blocks, ddb_blocks,
level, level,
wm_params, wm_params,
&result->plane_res_b, result);
&result->plane_res_l,
&result->plane_en);
if (ret) if (ret)
return ret; return ret;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment