From: Thomas Daniel Date: Mon, 16 Feb 2015 16:12:53 +0000 (+0000) Subject: drm/i915: Reset logical ring contexts' head and tail during GPU reset X-Git-Tag: omap-for-v4.2/o2_dc~72^2~33^2~41 X-Git-Url: https://git.openpandora.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=3e5b6f05a23cc1ba92f429e524d6d5b67401132d;p=pandora-kernel.git drm/i915: Reset logical ring contexts' head and tail during GPU reset Work was getting left behind in LRC contexts during reset. This causes a hang if the GPU is reset when HEAD==TAIL because the context's ringbuffer head and tail don't get reset and retiring a request doesn't alter them, so the ring still appears full. Added a function intel_lr_context_reset() to reset head and tail on a LRC and its ringbuffer. Call intel_lr_context_reset() for each context in i915_gem_context_reset() when in execlists mode. Testcase: igt/pm_rps --run-subtest reset #bdw Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=88096 Signed-off-by: Thomas Daniel Reviewed-by: Dave Gordon [danvet: Flatten control flow in the lrc reset code a notch.] Signed-off-by: Daniel Vetter --- Reading git-diff-tree failed