From: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx> When the GPU gets reset __i915_wait_request() returns -EIO to the mmio flip worker. Currently we WARN whenever we get anything other than 0. Ignore the -EIO too since it's a perfectly normal thing to get during a GPU reset. Also give intel_finish_fb() the same treatment, which triggers now at least with CS flips on my gen4. The intel_finish_fb() warning got added in commit 2e2f351dbf29681d54a3a0f1003c5bb9bc832072 Author: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx> Date: Mon Apr 27 13:41:14 2015 +0100 drm/i915: Remove domain flubbing from i915_gem_object_finish_gpu() The mmio flip one in commit 536f5b5e86b225dab94c7ff8061ae482b6077387 Author: Ander Conselvan de Oliveira <ander.conselvan.de.oliveira@xxxxxxxxx> Date: Thu Nov 6 11:03:40 2014 +0200 drm/i915: Make mmio flip wait for seqno in the work function v2: Ignore -EIO in intel_finish_fb() too Cc: Ander Conselvan de Oliveira <ander.conselvan.de.oliveira@xxxxxxxxx> Cc: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx> Signed-off-by: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx> --- drivers/gpu/drm/i915/intel_display.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c index 9bf759c..0e4720e 100644 --- a/drivers/gpu/drm/i915/intel_display.c +++ b/drivers/gpu/drm/i915/intel_display.c @@ -3279,7 +3279,7 @@ intel_finish_fb(struct drm_framebuffer *old_fb) ret = i915_gem_object_wait_rendering(obj, true); dev_priv->mm.interruptible = was_interruptible; - WARN_ON(ret); + WARN_ON(ret != 0 && ret != -EIO); } static bool intel_crtc_has_pending_flip(struct drm_crtc *crtc) @@ -11327,11 +11327,13 @@ static void intel_mmio_flip_work_func(struct work_struct *work) struct intel_mmio_flip *mmio_flip = container_of(work, struct intel_mmio_flip, work); - if (mmio_flip->req) - WARN_ON(__i915_wait_request(mmio_flip->req, - mmio_flip->crtc->reset_counter, - false, NULL, - &mmio_flip->i915->rps.mmioflips)); + if (mmio_flip->req) { + int ret = __i915_wait_request(mmio_flip->req, + mmio_flip->crtc->reset_counter, + false, NULL, + &mmio_flip->i915->rps.mmioflips); + WARN_ON(ret != 0 && ret != -EIO); + } intel_do_mmio_flip(mmio_flip->crtc); -- 2.3.6 _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/intel-gfx