summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--linux-core/i810_dma.c11
-rw-r--r--linux-core/i810_drm.h17
-rw-r--r--linux/i810_dma.c11
-rw-r--r--linux/i810_drm.h17
4 files changed, 24 insertions, 32 deletions
diff --git a/linux-core/i810_dma.c b/linux-core/i810_dma.c
index 7e6a48fd..67cb12e5 100644
--- a/linux-core/i810_dma.c
+++ b/linux-core/i810_dma.c
@@ -790,12 +790,10 @@ static void i810_dma_dispatch_vertex(drm_device_t *dev,
if (sarea_priv->dirty)
i810EmitState( dev );
- DRM_DEBUG("dispatch vertex addr 0x%lx, used 0x%x nbox %d\n",
- address, used, nbox);
-
if (buf_priv->currently_mapped == I810_BUF_MAPPED) {
- *(u32 *)buf_priv->virtual = (GFX_OP_PRIMITIVE |
- sarea_priv->vertex_prim |
+ unsigned int prim = (sarea_priv->vertex_prim & PR_MASK);
+
+ *(u32 *)buf_priv->virtual = (GFX_OP_PRIMITIVE | prim |
((used/4)-2));
if (used & 4) {
@@ -965,9 +963,6 @@ int i810_dma_vertex(struct inode *inode, struct file *filp,
return -EINVAL;
}
- DRM_DEBUG("i810 dma vertex, idx %d used %d discard %d\n",
- vertex.idx, vertex.used, vertex.discard);
-
if(vertex.idx < 0 || vertex.idx > dma->buf_count) return -EINVAL;
i810_dma_dispatch_vertex( dev,
diff --git a/linux-core/i810_drm.h b/linux-core/i810_drm.h
index 3eb632d1..80835975 100644
--- a/linux-core/i810_drm.h
+++ b/linux-core/i810_drm.h
@@ -191,14 +191,15 @@ typedef struct _drm_i810_copy_t {
void *address; /* Address to copy from */
} drm_i810_copy_t;
-#define PR_TRIANGLES (0x0)
-#define PR_TRISTRIP_0 (0x1)
-#define PR_TRISTRIP_1 (0x2)
-#define PR_TRIFAN (0x3)
-#define PR_POLYGON (0x4)
-#define PR_LINES (0x5)
-#define PR_LINESTRIP (0x6)
-#define PR_RECTS (0x7)
+#define PR_TRIANGLES (0x0<<18)
+#define PR_TRISTRIP_0 (0x1<<18)
+#define PR_TRISTRIP_1 (0x2<<18)
+#define PR_TRIFAN (0x3<<18)
+#define PR_POLYGON (0x4<<18)
+#define PR_LINES (0x5<<18)
+#define PR_LINESTRIP (0x6<<18)
+#define PR_RECTS (0x7<<18)
+#define PR_MASK (0x7<<18)
typedef struct drm_i810_dma {
diff --git a/linux/i810_dma.c b/linux/i810_dma.c
index 7e6a48fd..67cb12e5 100644
--- a/linux/i810_dma.c
+++ b/linux/i810_dma.c
@@ -790,12 +790,10 @@ static void i810_dma_dispatch_vertex(drm_device_t *dev,
if (sarea_priv->dirty)
i810EmitState( dev );
- DRM_DEBUG("dispatch vertex addr 0x%lx, used 0x%x nbox %d\n",
- address, used, nbox);
-
if (buf_priv->currently_mapped == I810_BUF_MAPPED) {
- *(u32 *)buf_priv->virtual = (GFX_OP_PRIMITIVE |
- sarea_priv->vertex_prim |
+ unsigned int prim = (sarea_priv->vertex_prim & PR_MASK);
+
+ *(u32 *)buf_priv->virtual = (GFX_OP_PRIMITIVE | prim |
((used/4)-2));
if (used & 4) {
@@ -965,9 +963,6 @@ int i810_dma_vertex(struct inode *inode, struct file *filp,
return -EINVAL;
}
- DRM_DEBUG("i810 dma vertex, idx %d used %d discard %d\n",
- vertex.idx, vertex.used, vertex.discard);
-
if(vertex.idx < 0 || vertex.idx > dma->buf_count) return -EINVAL;
i810_dma_dispatch_vertex( dev,
diff --git a/linux/i810_drm.h b/linux/i810_drm.h
index 3eb632d1..80835975 100644
--- a/linux/i810_drm.h
+++ b/linux/i810_drm.h
@@ -191,14 +191,15 @@ typedef struct _drm_i810_copy_t {
void *address; /* Address to copy from */
} drm_i810_copy_t;
-#define PR_TRIANGLES (0x0)
-#define PR_TRISTRIP_0 (0x1)
-#define PR_TRISTRIP_1 (0x2)
-#define PR_TRIFAN (0x3)
-#define PR_POLYGON (0x4)
-#define PR_LINES (0x5)
-#define PR_LINESTRIP (0x6)
-#define PR_RECTS (0x7)
+#define PR_TRIANGLES (0x0<<18)
+#define PR_TRISTRIP_0 (0x1<<18)
+#define PR_TRISTRIP_1 (0x2<<18)
+#define PR_TRIFAN (0x3<<18)
+#define PR_POLYGON (0x4<<18)
+#define PR_LINES (0x5<<18)
+#define PR_LINESTRIP (0x6<<18)
+#define PR_RECTS (0x7<<18)
+#define PR_MASK (0x7<<18)
typedef struct drm_i810_dma {