summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/i915/intel_ringbuffer.c
diff options
context:
space:
mode:
authorKeith Packard2011-07-22 19:44:39 +0200
committerKeith Packard2011-07-22 22:36:52 +0200
commitf3234706a77bd6e1592ae71fb3268e04cb030dba (patch)
tree6426ac38abc9091cfd988b79904d8bdaac94cdde /drivers/gpu/drm/i915/intel_ringbuffer.c
parentdrm/i915: Fix typo in DRM_I915_OVERLAY_PUT_IMAGE ioctl define (diff)
downloadkernel-qcow2-linux-f3234706a77bd6e1592ae71fb3268e04cb030dba.tar.gz
kernel-qcow2-linux-f3234706a77bd6e1592ae71fb3268e04cb030dba.tar.xz
kernel-qcow2-linux-f3234706a77bd6e1592ae71fb3268e04cb030dba.zip
drm/i915: Initialize RCS ring status page address in intel_render_ring_init_dri
Physically-addressed hardware status pages are initialized early in the driver load process by i915_init_phys_hws. For UMS environments, the ring structure is not initialized until the X server starts. At that point, the entire ring structure is re-initialized with all new values. Any values set in the ring structure (including ring->status_page.page_addr) will be lost when the ring is re-initialized. This patch moves the initialization of the status_page.page_addr value to intel_render_ring_init_dri. Signed-off-by: Keith Packard <keithp@keithp.com> Cc: stable@kernel.org
Diffstat (limited to 'drivers/gpu/drm/i915/intel_ringbuffer.c')
-rw-r--r--drivers/gpu/drm/i915/intel_ringbuffer.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.c b/drivers/gpu/drm/i915/intel_ringbuffer.c
index 95c4b1429935..1f61fc7b754c 100644
--- a/drivers/gpu/drm/i915/intel_ringbuffer.c
+++ b/drivers/gpu/drm/i915/intel_ringbuffer.c
@@ -1319,6 +1319,9 @@ int intel_render_ring_init_dri(struct drm_device *dev, u64 start, u32 size)
ring->get_seqno = pc_render_get_seqno;
}
+ if (!I915_NEED_GFX_HWS(dev))
+ ring->status_page.page_addr = dev_priv->status_page_dmah->vaddr;
+
ring->dev = dev;
INIT_LIST_HEAD(&ring->active_list);
INIT_LIST_HEAD(&ring->request_list);