summaryrefslogtreecommitdiff
path: root/shared-core/nouveau_drv.h
diff options
context:
space:
mode:
authorBen Skeggs <darktama@iinet.net.au>2007-01-02 14:52:43 +1100
committerBen Skeggs <darktama@iinet.net.au>2007-01-02 14:52:43 +1100
commit0e0d954584ba95656663efa3daf6e191e521040b (patch)
treecbde0c3fec88fb196f924dcb3c5fa3dc2027a231 /shared-core/nouveau_drv.h
parent2c3bc69ba2b60e4f89b93332fa8da758170b2285 (diff)
nouveau: Add nv40-specific PGRAPH code, not hooked up yet.
Diffstat (limited to 'shared-core/nouveau_drv.h')
-rw-r--r--shared-core/nouveau_drv.h28
1 files changed, 18 insertions, 10 deletions
diff --git a/shared-core/nouveau_drv.h b/shared-core/nouveau_drv.h
index 42397c32..a8108a8c 100644
--- a/shared-core/nouveau_drv.h
+++ b/shared-core/nouveau_drv.h
@@ -42,6 +42,16 @@
#include "nouveau_drm.h"
#include "nouveau_reg.h"
+struct mem_block {
+ struct mem_block *next;
+ struct mem_block *prev;
+ uint64_t start;
+ uint64_t size;
+ DRMFILE filp; /* 0: free, -1: heap, other: real files */
+ int flags;
+ drm_local_map_t *map;
+};
+
enum nouveau_flags {
NV_NFORCE =0x10000000,
NV_NFORCE2 =0x20000000
@@ -75,20 +85,12 @@ struct nouveau_fifo
/* dma object for the command buffer itself */
struct mem_block *cmdbuf_mem;
struct nouveau_object *cmdbuf_obj;
+ /* PGRAPH context, for cards that keep it in RAMIN */
+ struct mem_block *ramin_grctx;
/* objects belonging to this fifo */
struct nouveau_object *objs;
};
-struct mem_block {
- struct mem_block *next;
- struct mem_block *prev;
- uint64_t start;
- uint64_t size;
- DRMFILE filp; /* 0: free, -1: heap, other: real files */
- int flags;
- drm_local_map_t *map;
-};
-
struct nouveau_config {
struct {
int location;
@@ -181,6 +183,12 @@ extern void nouveau_irq_preinstall(drm_device_t*);
extern void nouveau_irq_postinstall(drm_device_t*);
extern void nouveau_irq_uninstall(drm_device_t*);
+/* nv40_graph.c */
+extern int nv40_graph_init(drm_device_t *dev);
+extern int nv40_graph_context_create(drm_device_t *dev, int channel);
+extern void nv40_graph_context_save_current(drm_device_t *dev);
+extern void nv40_graph_context_restore(drm_device_t *dev, int channel);
+
extern long nouveau_compat_ioctl(struct file *filp, unsigned int cmd,
unsigned long arg);