summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKeith Whitwell <keith@tungstengraphics.com>2004-07-23 16:12:27 +0000
committerKeith Whitwell <keith@tungstengraphics.com>2004-07-23 16:12:27 +0000
commit1e5354e867d1dde8c86273e7434f49b57779ef36 (patch)
tree54f8342e666b9867d0a49cf300e2e04740658208
parent6ed7e36f4c6933cc29b0f5c8cb810490dd93a8fc (diff)
Correct a couple of packet length calculations.
-rw-r--r--shared-core/i915_dma.c9
-rw-r--r--shared/i915_dma.c9
2 files changed, 16 insertions, 2 deletions
diff --git a/shared-core/i915_dma.c b/shared-core/i915_dma.c
index 80f643cd..6d85e050 100644
--- a/shared-core/i915_dma.c
+++ b/shared-core/i915_dma.c
@@ -306,7 +306,14 @@ static int do_validate_cmd( int cmd )
case 0x1c:
return 1;
case 0x1d:
- return (cmd & 0xffff) + 2;
+ switch ((cmd>>16)&0xff) {
+ case 0x3:
+ return (cmd & 0x1f) + 2;
+ case 0x4:
+ return (cmd & 0xf) + 2;
+ default:
+ return (cmd & 0xffff) + 2;
+ }
case 0x1e:
if (cmd & (1<<23))
return (cmd & 0xffff) + 1;
diff --git a/shared/i915_dma.c b/shared/i915_dma.c
index 80f643cd..6d85e050 100644
--- a/shared/i915_dma.c
+++ b/shared/i915_dma.c
@@ -306,7 +306,14 @@ static int do_validate_cmd( int cmd )
case 0x1c:
return 1;
case 0x1d:
- return (cmd & 0xffff) + 2;
+ switch ((cmd>>16)&0xff) {
+ case 0x3:
+ return (cmd & 0x1f) + 2;
+ case 0x4:
+ return (cmd & 0xf) + 2;
+ default:
+ return (cmd & 0xffff) + 2;
+ }
case 0x1e:
if (cmd & (1<<23))
return (cmd & 0xffff) + 1;