Commit 335b05e6 authored by Jiri Kosina's avatar Jiri Kosina Committed by Greg Kroah-Hartman

drm/i915: read HEAD register back in init_ring_common() to enforce ordering

commit ece4a17d237a79f63fbfaf3f724a12b6d500555c upstream.

Withtout this, ring initialization fails reliabily during resume with

	[drm:init_ring_common] *ERROR* render ring initialization failed ctl 0001f001 head ffffff8804 tail 00000000 start 000e4000

This is not a complete fix, but it is verified to make the ring
initialization failures during resume much less likely.

We were not able to root-cause this bug (likely HW-specific to Gen4 chips)
yet. This is therefore used as a ducttape before problem is fully
understood and proper fix created, so that people don't suffer from
completely unusable systems in the meantime.

The discussion and debugging is happening at default avatarJiri Kosina <>
Signed-off-by: default avatarDaniel Vetter <>
Signed-off-by: default avatarGreg Kroah-Hartman <>
parent 1fc3a6ed
......@@ -396,6 +396,9 @@ static int init_ring_common(struct intel_ring_buffer *ring)
/* Enforce ordering by reading HEAD register back */
/* Initialize the ring. This must happen _after_ we've cleared the ring
* registers with the above sequence (the readback of the HEAD registers
* also enforces ordering), otherwise the hw might lose the new ring
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment