On Fri, Aug 05, 2016 at 11:28:30PM +0300, [email protected] wrote:
> From: Ville Syrjälä <[email protected]>
> 
> We don't have GPU reset support for gen2, which means the display
> hardware is unaffected when a GPU hang is handled. However as the ring
> has in fact stopped, any flips still in the ring will never complete,
> and thus the display base address updates will never happen. So we
> really need to fix that up manually just like we do on g4x+.
> 
> In fact, let's just use intel_has_gpu_reset() instead of IS_GEN2()
> since that'll also handle cases where someone would disable the GPU
> reset support on gen3/4 for whatever reason.
> 
> Signed-off-by: Ville Syrjälä <[email protected]>

Reviewed-by: Daniel Vetter <[email protected]>

> ---
>  drivers/gpu/drm/i915/intel_display.c | 11 ++---------
>  1 file changed, 2 insertions(+), 9 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/intel_display.c 
> b/drivers/gpu/drm/i915/intel_display.c
> index 632739f9cc44..74375ec651e5 100644
> --- a/drivers/gpu/drm/i915/intel_display.c
> +++ b/drivers/gpu/drm/i915/intel_display.c
> @@ -3137,7 +3137,8 @@ __intel_display_resume(struct drm_device *dev,
>  
>  static bool gpu_reset_clobbers_display(struct drm_i915_private *dev_priv)
>  {
> -     return INTEL_GEN(dev_priv) < 5 && !IS_G4X(dev_priv);
> +     return intel_has_gpu_reset(dev_priv) &&
> +             INTEL_GEN(dev_priv) < 5 && !IS_G4X(dev_priv);
>  }
>  
>  void intel_prepare_reset(struct drm_i915_private *dev_priv)
> @@ -3147,10 +3148,6 @@ void intel_prepare_reset(struct drm_i915_private 
> *dev_priv)
>       struct drm_atomic_state *state;
>       int ret;
>  
> -     /* no reset support for gen2 */
> -     if (IS_GEN2(dev_priv))
> -             return;
> -
>       /*
>        * Need mode_config.mutex so that we don't
>        * trample ongoing ->detect() and whatnot.
> @@ -3210,10 +3207,6 @@ void intel_finish_reset(struct drm_i915_private 
> *dev_priv)
>        */
>       intel_complete_page_flips(dev_priv);
>  
> -     /* no reset support for gen2 */
> -     if (IS_GEN2(dev_priv))
> -             return;
> -
>       dev_priv->modeset_restore_state = NULL;
>  
>       /* reset doesn't touch the display */
> -- 
> 2.7.4
> 
> _______________________________________________
> Intel-gfx mailing list
> [email protected]
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx

-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to