summaryrefslogtreecommitdiff
path: root/meta/packages/linux/linux-moblin2-2.6.27-rc1/0004_i915.Track_progress_inside_of_batchbuffers_for_determining_wedgedness.patch
diff options
context:
space:
mode:
authorSamuel Ortiz <sameo@openedhand.com>2008-09-10 15:37:14 +0000
committerSamuel Ortiz <sameo@openedhand.com>2008-09-10 15:37:14 +0000
commit4f82c5078e46fa0799038df33ad1cd624cf54bde (patch)
tree0f7015a79d98b8469116903261390b91c9b5cef3 /meta/packages/linux/linux-moblin2-2.6.27-rc1/0004_i915.Track_progress_inside_of_batchbuffers_for_determining_wedgedness.patch
parentf680c855cf7dd3a3481a28671bdf918dbfb551df (diff)
downloadopenembedded-core-4f82c5078e46fa0799038df33ad1cd624cf54bde.tar.gz
openembedded-core-4f82c5078e46fa0799038df33ad1cd624cf54bde.tar.bz2
openembedded-core-4f82c5078e46fa0799038df33ad1cd624cf54bde.tar.xz
openembedded-core-4f82c5078e46fa0799038df33ad1cd624cf54bde.zip
linux-moblin2: Add moblin2 kernel
git-svn-id: https://svn.o-hand.com/repos/poky/trunk@5166 311d38ba-8fff-0310-9ca6-ca027cbcb966
Diffstat (limited to 'meta/packages/linux/linux-moblin2-2.6.27-rc1/0004_i915.Track_progress_inside_of_batchbuffers_for_determining_wedgedness.patch')
-rw-r--r--meta/packages/linux/linux-moblin2-2.6.27-rc1/0004_i915.Track_progress_inside_of_batchbuffers_for_determining_wedgedness.patch47
1 files changed, 47 insertions, 0 deletions
diff --git a/meta/packages/linux/linux-moblin2-2.6.27-rc1/0004_i915.Track_progress_inside_of_batchbuffers_for_determining_wedgedness.patch b/meta/packages/linux/linux-moblin2-2.6.27-rc1/0004_i915.Track_progress_inside_of_batchbuffers_for_determining_wedgedness.patch
new file mode 100644
index 000000000..c391d16b7
--- /dev/null
+++ b/meta/packages/linux/linux-moblin2-2.6.27-rc1/0004_i915.Track_progress_inside_of_batchbuffers_for_determining_wedgedness.patch
@@ -0,0 +1,47 @@
+From: Keith Packard <keithp@keithp.com>
+Date: Wed, 30 Jul 2008 19:21:20 +0000 (-0700)
+Subject: i915: Track progress inside of batchbuffers for determining wedgedness.
+X-Git-Tag: v2.6.12-rc2
+X-Git-Url: http://gitweb.freedesktop.org/?p=users/anholt/anholt/linux-2.6.git;a=commitdiff;h=f0740db2246e4217384e8de32de6ebb4fbd807c9
+
+i915: Track progress inside of batchbuffers for determining wedgedness.
+
+This avoids early termination for long-running commands.
+
+Signed-off-by: Eric Anholt <eric@anholt.net>
+---
+
+--- a/drivers/gpu/drm/i915/i915_dma.c
++++ b/drivers/gpu/drm/i915/i915_dma.c
+@@ -40,11 +40,15 @@ int i915_wait_ring(struct drm_device * d
+ {
+ drm_i915_private_t *dev_priv = dev->dev_private;
+ drm_i915_ring_buffer_t *ring = &(dev_priv->ring);
++ u32 acthd_reg = IS_I965G(dev) ? ACTHD_I965 : ACTHD;
++ u32 last_acthd = I915_READ(acthd_reg);
++ u32 acthd;
+ u32 last_head = I915_READ(PRB0_HEAD) & HEAD_ADDR;
+ int i;
+
+- for (i = 0; i < 10000; i++) {
++ for (i = 0; i < 100000; i++) {
+ ring->head = I915_READ(PRB0_HEAD) & HEAD_ADDR;
++ acthd = I915_READ(acthd_reg);
+ ring->space = ring->head - (ring->tail + 8);
+ if (ring->space < 0)
+ ring->space += ring->Size;
+@@ -55,8 +59,13 @@ int i915_wait_ring(struct drm_device * d
+
+ if (ring->head != last_head)
+ i = 0;
++ if (acthd != last_acthd)
++ i = 0;
+
+ last_head = ring->head;
++ last_acthd = acthd;
++ msleep_interruptible(10);
++
+ }
+
+ return -EBUSY;
+