drm/i915: disable rings before HW status page setup
Rings should be idle before issuing sync_flush (in intel_ring_setup_status_page). This patch moves the ring disabling before doing the HW status page setup. Signed-off-by: Naresh Kumar Kachhi <naresh.kumar.kachhi@intel.com> Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
This commit is contained in:
parent
5a6c93fe80
commit
a51435a313
|
@ -440,16 +440,16 @@ static int init_ring_common(struct intel_ring_buffer *ring)
|
||||||
|
|
||||||
gen6_gt_force_wake_get(dev_priv, FORCEWAKE_ALL);
|
gen6_gt_force_wake_get(dev_priv, FORCEWAKE_ALL);
|
||||||
|
|
||||||
if (I915_NEED_GFX_HWS(dev))
|
|
||||||
intel_ring_setup_status_page(ring);
|
|
||||||
else
|
|
||||||
ring_setup_phys_status_page(ring);
|
|
||||||
|
|
||||||
/* Stop the ring if it's running. */
|
/* Stop the ring if it's running. */
|
||||||
I915_WRITE_CTL(ring, 0);
|
I915_WRITE_CTL(ring, 0);
|
||||||
I915_WRITE_HEAD(ring, 0);
|
I915_WRITE_HEAD(ring, 0);
|
||||||
ring->write_tail(ring, 0);
|
ring->write_tail(ring, 0);
|
||||||
|
|
||||||
|
if (I915_NEED_GFX_HWS(dev))
|
||||||
|
intel_ring_setup_status_page(ring);
|
||||||
|
else
|
||||||
|
ring_setup_phys_status_page(ring);
|
||||||
|
|
||||||
head = I915_READ_HEAD(ring) & HEAD_ADDR;
|
head = I915_READ_HEAD(ring) & HEAD_ADDR;
|
||||||
|
|
||||||
/* G45 ring initialization fails to reset head to zero */
|
/* G45 ring initialization fails to reset head to zero */
|
||||||
|
|
Loading…
Reference in a new issue