summaryrefslogtreecommitdiff
path: root/shared-core
diff options
context:
space:
mode:
authorDave Airlie <airlied@redhat.com>2007-08-06 18:33:29 +1000
committerDave Airlie <airlied@linux.ie>2007-08-11 08:57:53 +1000
commitda279868706cc799bdf25cdd5523d11fda64d4cc (patch)
treeae90e30410ebbce15b7a245b739e6da5e3705130 /shared-core
parenta46104674f129e873b8dfa29cf8aac9c67bd77be (diff)
i915: i965 non-secure batchbuffer bit has moved.
Diffstat (limited to 'shared-core')
-rw-r--r--shared-core/i915_dma.c10
-rw-r--r--shared-core/i915_drv.h2
2 files changed, 10 insertions, 2 deletions
diff --git a/shared-core/i915_dma.c b/shared-core/i915_dma.c
index 5d227d8b..9f18feee 100644
--- a/shared-core/i915_dma.c
+++ b/shared-core/i915_dma.c
@@ -546,9 +546,15 @@ static int i915_dispatch_batchbuffer(struct drm_device * dev,
if (dev_priv->use_mi_batchbuffer_start) {
BEGIN_LP_RING(2);
- OUT_RING(MI_BATCH_BUFFER_START | (2 << 6));
- OUT_RING(batch->start | MI_BATCH_NON_SECURE);
+ if (IS_I965G(dev)) {
+ OUT_RING(MI_BATCH_BUFFER_START | (2 << 6) | MI_BATCH_NON_SECURE_I965);
+ OUT_RING(batch->start);
+ } else {
+ OUT_RING(MI_BATCH_BUFFER_START | (2 << 6));
+ OUT_RING(batch->start | MI_BATCH_NON_SECURE);
+ }
ADVANCE_LP_RING();
+
} else {
BEGIN_LP_RING(4);
OUT_RING(MI_BATCH_BUFFER);
diff --git a/shared-core/i915_drv.h b/shared-core/i915_drv.h
index e641fdc6..528f7b3a 100644
--- a/shared-core/i915_drv.h
+++ b/shared-core/i915_drv.h
@@ -364,6 +364,8 @@ extern int i915_wait_ring(struct drm_device * dev, int n, const char *caller);
#define MI_BATCH_BUFFER_END (0xA<<23)
#define MI_BATCH_NON_SECURE (1)
+#define MI_BATCH_NON_SECURE_I965 (1<<8)
+
#define MI_WAIT_FOR_EVENT ((0x3<<23))
#define MI_WAIT_FOR_PLANE_B_FLIP (1<<6)
#define MI_WAIT_FOR_PLANE_A_FLIP (1<<2)