Message ID | 20140424201521.GN31221@nuc-i3427.alporthouse.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Hi! > > > And if you can indeed reliably reproduce this a bisect could be really useful. > > > > And we have a winner here :-) > > > > Ok, it was not as painfull as I feared. > > > > It does not revert cleanly, but doing it by hand was not that bad. > > Oh my. That is bizarre, can you check whether you have > commit 9991ae787a0c87fe7c783b4b6f4754c3cdbb6213 > Author: Chris Wilson <chris@chris-wilson.co.uk> > Date: Wed Apr 2 16:36:07 2014 +0100 > > drm/i915: Move all ring resets before setting the HWS page > > in your latest kernel? That just makes No, I don't have that one. > To confirm, on drm-intel-nightly you used a patch like: I did not use drm-intel-nightly, but 3.15-rc2, because drm-intel-nightly did not work at all. (Netconsole is not that easy to set up, and I'd prefer not debugging 2 problems at the same time.) Let me check with my patch reverted and 9991ae applied. Pavel
> On Thu, Apr 24, 2014 at 09:40:38PM +0200, Pavel Machek wrote: > > Hi! > > > > > And if you can indeed reliably reproduce this a bisect could be really useful. > > > > And we have a winner here :-) > > > > Ok, it was not as painfull as I feared. > > > > It does not revert cleanly, but doing it by hand was not that bad. > > Oh my. That is bizarre, can you check whether you have > > commit 9991ae787a0c87fe7c783b4b6f4754c3cdbb6213 Yes, with that commit, graphics is back to working state. Please push it to mainline soon -- it fixes a regression. Feel free to add Tested-by: Pavel Machek <pavel@ucw.cz> Thanks, Pavel
On Fri, 25 Apr 2014, Pavel Machek wrote: > > > And we have a winner here :-) > > > > > > Ok, it was not as painfull as I feared. > > > > > > It does not revert cleanly, but doing it by hand was not that bad. > > > > Oh my. That is bizarre, can you check whether you have > > > > commit 9991ae787a0c87fe7c783b4b6f4754c3cdbb6213 > > Yes, with that commit, graphics is back to working state. Please push > it to mainline soon -- it fixes a regression. Feel free to add Alright, most of my testing has been done with that commit present (obviously, as I've been using Chris' branch that has this incorporated), so I have a different ring initialization problem than Pavel had.
On Fri, 25 Apr 2014, Pavel Machek <pavel@ucw.cz> wrote: >> On Thu, Apr 24, 2014 at 09:40:38PM +0200, Pavel Machek wrote: >> > Hi! >> > >> > > And if you can indeed reliably reproduce this a bisect could be really useful. >> > >> > And we have a winner here :-) >> > >> > Ok, it was not as painfull as I feared. >> > >> > It does not revert cleanly, but doing it by hand was not that bad. >> >> Oh my. That is bizarre, can you check whether you have >> >> commit 9991ae787a0c87fe7c783b4b6f4754c3cdbb6213 > > Yes, with that commit, graphics is back to working state. Please push > it to mainline soon -- it fixes a regression. Feel free to add > > Tested-by: Pavel Machek <pavel@ucw.cz> I cherry-picked and pushed commit 9991ae787a0c87fe7c783b4b6f4754c3cdbb6213 Author: Chris Wilson <chris@chris-wilson.co.uk> Date: Wed Apr 2 16:36:07 2014 +0100 drm/i915: Move all ring resets before setting the HWS page to -fixes. Thanks for testing. BR, Jani.
diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.c b/drivers/gpu/drm/i915/intel_ringbuffer.c index 36a62af..ce6186a 100644 --- a/drivers/gpu/drm/i915/intel_ringbuffer.c +++ b/drivers/gpu/drm/i915/intel_ringbuffer.c @@ -494,6 +494,11 @@ static int init_ring_common(struct intel_ring_buffer *ring) I915_READ_TAIL(ring), I915_READ_START(ring)); + if (I915_NEED_GFX_HWS(dev)) + intel_ring_setup_status_page(ring); + else + ring_setup_phys_status_page(ring); + if (!stop_ring(ring)) { /* G45 ring initialization often fails to reset head to zero */ DRM_DEBUG_KMS("%s head not reset to zero " @@ -517,11 +522,6 @@ static int init_ring_common(struct intel_ring_buffer *ring) } } - if (I915_NEED_GFX_HWS(dev)) - intel_ring_setup_status_page(ring); - else - ring_setup_phys_status_page(ring); - reset: /* Initialize the ring. This must happen _after_ we've cleared the ring * registers with the above sequence (the readback of the HEAD registers