Messages in this thread | | | Date | Tue, 8 Jul 2014 13:55:22 +0100 | From | Chris Wilson <> | Subject | Re: [Intel-gfx] Linux 3.16-rc2 |
| |
On Tue, Jul 08, 2014 at 02:46:57PM +0200, Jiri Kosina wrote: > On Tue, 8 Jul 2014, Chris Wilson wrote: > > > > I actually tried to introduce rather large delays between individual > > > I915_WRITE() calls in the ring initialization sequence a couple weeks ago > > > already, but it resulted in complete machine lockup (which is worse than > > > my usual symptoms) during resume. Therefore I probably lack the knowledge > > > of internal workings of the HW that would allow me to guess what the > > > reasonable timeout value should be. > > > > > > Willing to test any patches. > > > > Are you using the extra patches on bug 76554? If not, try > > Just for debugging. > > > diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.c b/drivers/gpu/drm/i915/intel_ringbuffer.c > > index e18ed05dc0d5..48326f9628d4 100644 > > --- a/drivers/gpu/drm/i915/intel_ringbuffer.c > > +++ b/drivers/gpu/drm/i915/intel_ringbuffer.c > > @@ -526,6 +526,9 @@ static int init_ring_common(struct intel_engine_cs *ring) > > ((ringbuf->size - PAGE_SIZE) & RING_NR_PAGES) > > | RING_VALID); > > > > + I915_WRITE_HEAD(ring, 0); > > + (void)I915_READ_HEAD(ring); > > + > > /* If the head is still not zero, the ring is dead */ > > if (wait_for((I915_READ_CTL(ring) & RING_VALID) != 0 && > > I915_READ_START(ring) == i915_gem_obj_ggtt_offset(obj) && > > Tried on top of current Linus' tree, and no improvement. ring > initialization failure upon resume, and window redrawing hosed.
Which error during ring-init are you hitting? -Chris
-- Chris Wilson, Intel Open Source Technology Centre
| |