[Intel-gfx] [PATCH 05/15] drm/i915: Drop schedule_back from psr_exit

Rodrigo Vivi rodrigo.vivi at gmail.com
Tue Jun 17 02:06:06 CEST 2014


There were more reasons for disabling it on Baytrail... but you are right..
disable sequence should be better for those cases.

Reviewed-by: Rodrigo Vivi <rodrigo.vivi at intel.com>


On Mon, Jun 16, 2014 at 10:51 AM, Daniel Vetter <daniel.vetter at ffwll.ch>
wrote:

> It doesn't make sense to never again schedule the work, since by the
> time we might want to re-enable psr the world might have changed and
> we can do it again.
>
> The only exception is when we shut down the pipe, but that's an
> entirely different thing and needs to be handled in psr_disable.
>
> Cc: Rodrigo Vivi <rodrigo.vivi at intel.com>
> Signed-off-by: Daniel Vetter <daniel.vetter at ffwll.ch>
> ---
>  drivers/gpu/drm/i915/i915_gem.c      | 6 +++---
>  drivers/gpu/drm/i915/intel_display.c | 4 ++--
>  drivers/gpu/drm/i915/intel_dp.c      | 7 +++----
>  drivers/gpu/drm/i915/intel_drv.h     | 2 +-
>  drivers/gpu/drm/i915/intel_sprite.c  | 2 +-
>  5 files changed, 10 insertions(+), 11 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/i915_gem.c
> b/drivers/gpu/drm/i915/i915_gem.c
> index 1794a041c13c..f22b4aabb945 100644
> --- a/drivers/gpu/drm/i915/i915_gem.c
> +++ b/drivers/gpu/drm/i915/i915_gem.c
> @@ -1395,7 +1395,7 @@ i915_gem_set_domain_ioctl(struct drm_device *dev,
> void *data,
>                 goto unlock;
>         }
>
> -       intel_edp_psr_exit(dev, true);
> +       intel_edp_psr_exit(dev);
>
>         /* Try to flush the object off the GPU without holding the lock.
>          * We will repeat the flush holding the lock in the normal manner
> @@ -1442,7 +1442,7 @@ i915_gem_sw_finish_ioctl(struct drm_device *dev,
> void *data,
>         if (ret)
>                 return ret;
>
> -       intel_edp_psr_exit(dev, true);
> +       intel_edp_psr_exit(dev);
>
>         obj = to_intel_bo(drm_gem_object_lookup(dev, file, args->handle));
>         if (&obj->base == NULL) {
> @@ -4240,7 +4240,7 @@ i915_gem_busy_ioctl(struct drm_device *dev, void
> *data,
>         if (ret)
>                 return ret;
>
> -       intel_edp_psr_exit(dev, true);
> +       intel_edp_psr_exit(dev);
>
>         obj = to_intel_bo(drm_gem_object_lookup(dev, file, args->handle));
>         if (&obj->base == NULL) {
> diff --git a/drivers/gpu/drm/i915/intel_display.c
> b/drivers/gpu/drm/i915/intel_display.c
> index c27dadebd0dc..6f2588c95248 100644
> --- a/drivers/gpu/drm/i915/intel_display.c
> +++ b/drivers/gpu/drm/i915/intel_display.c
> @@ -8823,7 +8823,7 @@ void intel_mark_fb_busy(struct drm_i915_gem_object
> *obj,
>         struct drm_device *dev = obj->base.dev;
>         struct drm_crtc *crtc;
>
> -       intel_edp_psr_exit(dev, true);
> +       intel_edp_psr_exit(dev);
>
>         if (!i915.powersave)
>                 return;
> @@ -9292,7 +9292,7 @@ static int intel_crtc_page_flip(struct drm_crtc
> *crtc,
>                 return -ENOMEM;
>
>         /* Exit PSR early in page flip */
> -       intel_edp_psr_exit(dev, true);
> +       intel_edp_psr_exit(dev);
>
>         work->event = event;
>         work->crtc = crtc;
> diff --git a/drivers/gpu/drm/i915/intel_dp.c
> b/drivers/gpu/drm/i915/intel_dp.c
> index 4ab4757fb53d..c7d625040e3d 100644
> --- a/drivers/gpu/drm/i915/intel_dp.c
> +++ b/drivers/gpu/drm/i915/intel_dp.c
> @@ -1899,7 +1899,7 @@ static void intel_edp_psr_inactivate(struct
> drm_device *dev)
>                    & ~EDP_PSR_ENABLE);
>  }
>
> -void intel_edp_psr_exit(struct drm_device *dev, bool schedule_back)
> +void intel_edp_psr_exit(struct drm_device *dev)
>  {
>         struct drm_i915_private *dev_priv = dev->dev_private;
>
> @@ -1911,9 +1911,8 @@ void intel_edp_psr_exit(struct drm_device *dev, bool
> schedule_back)
>         if (dev_priv->psr.active)
>                 intel_edp_psr_inactivate(dev);
>
> -       if (schedule_back)
> -               schedule_delayed_work(&dev_priv->psr.work,
> -                                     msecs_to_jiffies(100));
> +       schedule_delayed_work(&dev_priv->psr.work,
> +                             msecs_to_jiffies(100));
>  }
>
>  void intel_edp_psr_init(struct drm_device *dev)
> diff --git a/drivers/gpu/drm/i915/intel_drv.h
> b/drivers/gpu/drm/i915/intel_drv.h
> index 87e83c315c4b..1d45629a6483 100644
> --- a/drivers/gpu/drm/i915/intel_drv.h
> +++ b/drivers/gpu/drm/i915/intel_drv.h
> @@ -829,7 +829,7 @@ void intel_edp_panel_off(struct intel_dp *intel_dp);
>  void intel_edp_psr_enable(struct intel_dp *intel_dp);
>  void intel_edp_psr_disable(struct intel_dp *intel_dp);
>  void intel_dp_set_drrs_state(struct drm_device *dev, int refresh_rate);
> -void intel_edp_psr_exit(struct drm_device *dev, bool schedule_back);
> +void intel_edp_psr_exit(struct drm_device *dev);
>  void intel_edp_psr_init(struct drm_device *dev);
>
>
> diff --git a/drivers/gpu/drm/i915/intel_sprite.c
> b/drivers/gpu/drm/i915/intel_sprite.c
> index 2a211c64ec8d..9038e2ab73c8 100644
> --- a/drivers/gpu/drm/i915/intel_sprite.c
> +++ b/drivers/gpu/drm/i915/intel_sprite.c
> @@ -1051,7 +1051,7 @@ intel_update_plane(struct drm_plane *plane, struct
> drm_crtc *crtc,
>                 mutex_unlock(&dev->struct_mutex);
>         }
>
> -       intel_edp_psr_exit(dev, true);
> +       intel_edp_psr_exit(dev);
>
>         return 0;
>  }
> --
> 2.0.0
>
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx
>



-- 
Rodrigo Vivi
Blog: http://blog.vivi.eng.br
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/intel-gfx/attachments/20140616/39bae2b8/attachment.html>


More information about the Intel-gfx mailing list