[Intel-gfx] [PATCH 15/15] drm/i915: Pass crtc state to vlv_compute_wm_level()
Maarten Lankhorst
maarten.lankhorst at linux.intel.com
Thu Dec 1 14:47:55 UTC 2016
Op 28-11-16 om 18:37 schreef ville.syrjala at linux.intel.com:
> From: Ville Syrjälä <ville.syrjala at linux.intel.com>
>
> Rather than accessing crtc->config in vlv_compute_wm_level() let's
> pass in the crtc state explicitly. One step closer to atomic.
>
> Signed-off-by: Ville Syrjälä <ville.syrjala at linux.intel.com>
Yay. All users of intel_crtc->config have to die in the future, but this is temporarily a legit use for it.
For patch 13, 14 and 15
Reviewed-by: Maarten Lankhorst <maarten.lankhorst at linux.intel.com>
> drivers/gpu/drm/i915/intel_pm.c | 20 +++++++++++---------
> 1 file changed, 11 insertions(+), 9 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c
> index 291843c2b61b..2a2aa8968b93 100644
> --- a/drivers/gpu/drm/i915/intel_pm.c
> +++ b/drivers/gpu/drm/i915/intel_pm.c
> @@ -978,24 +978,26 @@ static void vlv_setup_wm_latency(struct drm_i915_private *dev_priv)
> }
> }
>
> -static uint16_t vlv_compute_wm_level(struct intel_plane *plane,
> - struct intel_crtc *crtc,
> - const struct intel_plane_state *state,
> +static uint16_t vlv_compute_wm_level(const struct intel_crtc_state *crtc_state,
> + const struct intel_plane_state *plane_state,
> int level)
> {
> + struct intel_plane *plane = to_intel_plane(plane_state->base.plane);
> struct drm_i915_private *dev_priv = to_i915(plane->base.dev);
> + const struct drm_display_mode *adjusted_mode =
> + &crtc_state->base.adjusted_mode;
> int clock, htotal, cpp, width, wm;
>
> if (dev_priv->wm.pri_latency[level] == 0)
> return USHRT_MAX;
>
> - if (!state->base.visible)
> + if (!plane_state->base.visible)
> return 0;
>
> - cpp = drm_format_plane_cpp(state->base.fb->pixel_format, 0);
> - clock = crtc->config->base.adjusted_mode.crtc_clock;
> - htotal = crtc->config->base.adjusted_mode.crtc_htotal;
> - width = crtc->config->pipe_src_w;
> + cpp = drm_format_plane_cpp(plane_state->base.fb->pixel_format, 0);
> + clock = adjusted_mode->crtc_clock;
> + htotal = adjusted_mode->crtc_htotal;
> + width = crtc_state->pipe_src_w;
> if (WARN_ON(htotal == 0))
> htotal = 1;
>
> @@ -1145,7 +1147,7 @@ static void vlv_compute_wm(struct intel_crtc *crtc)
>
> /* normal watermarks */
> for (level = 0; level < wm_state->num_levels; level++) {
> - int wm = vlv_compute_wm_level(plane, crtc, state, level);
> + int wm = vlv_compute_wm_level(crtc->config, state, level);
> int max_wm = plane->wm.fifo_size;
>
> /* hack */
More information about the Intel-gfx
mailing list