On Wed, Apr 30, 2014 at 8:56 AM, Chris Wilson <chris@xxxxxxxxxxxxxxxxxx> wrote: > On Tue, Apr 29, 2014 at 04:38:21PM +0200, Daniel Vetter wrote: >> int intel_gpu_reset(struct drm_device *dev) >> { >> + struct drm_i915_private *dev_priv = dev->dev_private; >> + struct intel_ring_buffer *ring; >> + int i; >> + >> + for_each_ring(ring, dev_priv, i) >> + __intel_stop_ring_buffer(ring); > > intel_gpu_reset() is called after i915_gem_reset() in the normal reset > sequence (when the GPU is hung) so what was the error in using the > currently exported function? I wanted to keep intel_gpu_reset as a hw-resetting function only, and the ring_idle looked fragile in there. Atm it should work, but I still prefer we only do the hw-level ring stopping here since that is what seems to help. This way we have a clear separation of concerns between the sw state reset and the hw reset, and then later on the restore procedure. -Daniel -- Daniel Vetter Software Engineer, Intel Corporation +41 (0) 79 365 57 48 - http://blog.ffwll.ch _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/intel-gfx