[Intel-gfx] [PATCH 1/2] drm/i915: Use drm_crtc_vblank_wait_one_vblank instead the legacy one.

Jani Nikula jani.nikula at linux.intel.com
Thu Aug 4 07:38:02 UTC 2016


On Thu, 04 Aug 2016, Rodrigo Vivi <rodrigo.vivi at intel.com> wrote:
> No functional change.
>
> This is the last user of legacy function so we will be able
> to clean up drm_irq.c a bit.
>
> Signed-off-by: Rodrigo Vivi <rodrigo.vivi at intel.com>
> ---
>  drivers/gpu/drm/i915/intel_drv.h | 5 ++++-
>  1 file changed, 4 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h
> index 50cdc89..37a3ae8 100644
> --- a/drivers/gpu/drm/i915/intel_drv.h
> +++ b/drivers/gpu/drm/i915/intel_drv.h
> @@ -1202,7 +1202,10 @@ intel_crtc_has_dp_encoder(const struct intel_crtc_state *crtc_state)
>  static inline void
>  intel_wait_for_vblank(struct drm_device *dev, int pipe)
>  {
> -	drm_wait_one_vblank(dev, pipe);
> +	struct drm_i915_private *dev_priv = to_i915(dev);
> +	struct drm_crtc *crtc = dev_priv->pipe_to_crtc_mapping[pipe];
> +
> +	drm_crtc_wait_one_vblank(crtc);

With these changes, in almost all intel_wait_for_vblank() call paths
we'll have crtc available, so we end up calling
intel_wait_for_vblank(intel_crtc->pipe), which will then be converted
back to drm_crtc via dev_priv->pipe_to_crtc_mapping[pipe], and again to
pipe using drm_crtc_index(crtc)...

I'm tempted to say we should *first* replace all intel_wait_for_vblank()
calls with drm_crtc_wait_one_vblank() where possible. After that, we
might just call
drm_crtc_wait_one_vblank(dev_priv->pipe_to_crtc_mapping[pipe])
everywhere else.

BR,
Jani.



>  }
>  static inline void
>  intel_wait_for_vblank_if_active(struct drm_device *dev, int pipe)

-- 
Jani Nikula, Intel Open Source Technology Center


More information about the Intel-gfx mailing list