On Tue, Dec 19, 2017 at 12:16:45PM +0000, Maarten Lankhorst wrote:
> This should get rid of unclaimed register debug warnings, if
> it still happens we should put this in a intel_crtc->active check..

What if we just call skl_pipe_wm_get_hw_state() on skl_wm_get_hw_state()
if intel_crtc->active ?

-   skl_pipe_wm_get_hw_state(crtc, &cstate->wm.skl.optimal);
-                if (intel_crtc->active)
-                        hw->dirty_pipes |= drm_crtc_mask(crtc);

+                if (intel_crtc->active) {
+                        hw->dirty_pipes |= drm_crtc_mask(crtc);
+                        skl_pipe_wm_get_hw_state(crtc, 
&cstate->wm.skl.optimal);
+                }

>
> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=104172
> Signed-off-by: Maarten Lankhorst <maarten.lankho...@linux.intel.com>
> ---
>  drivers/gpu/drm/i915/intel_pm.c | 10 +++++++---
>  1 file changed, 7 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c
> index ab6f1b770891..52d157c00535 100644
> --- a/drivers/gpu/drm/i915/intel_pm.c
> +++ b/drivers/gpu/drm/i915/intel_pm.c
> @@ -5477,6 +5477,11 @@ void skl_pipe_wm_get_hw_state(struct drm_crtc *crtc,
>       int level, max_level;
>       enum plane_id plane_id;
>       uint32_t val;
> +     enum intel_display_power_domain power_domain;
> +
> +     power_domain = POWER_DOMAIN_PIPE(pipe);
> +     if (!intel_display_power_get_if_enabled(dev_priv, power_domain))
> +             return;
>
>       max_level = ilk_wm_max_level(dev_priv);
>
> @@ -5500,10 +5505,9 @@ void skl_pipe_wm_get_hw_state(struct drm_crtc *crtc,
>               skl_wm_level_from_reg_val(val, &wm->trans_wm);
>       }
>
> -     if (!intel_crtc->active)
> -             return;

but with my way or this way I wonder if we are now changing some expected wm
behavior since on the current version we just skip late if crtc wasn't active.

> -
>       out->linetime = I915_READ(PIPE_WM_LINETIME(pipe));
> +
> +     intel_display_power_put(dev_priv, power_domain);
>  }
>
>  void skl_wm_get_hw_state(struct drm_device *dev)
> --
> 2.15.1
>
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to