aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/nouveau/nouveau_drv.h
diff options
context:
space:
mode:
authorBen Skeggs <bskeggs@redhat.com>2010-10-31 21:45:02 -0400
committerBen Skeggs <bskeggs@redhat.com>2010-12-03 00:11:48 -0500
commite41115d0ad5c40a7ea4d85b1c77b4c02185a5581 (patch)
treeee8c82c17857fdd7989edb89735009b85c3a045c /drivers/gpu/drm/nouveau/nouveau_drv.h
parentdc1e5c0dbff27c2b5147eaea16c578d2337870c3 (diff)
drm/nouveau: rework gpu-specific instmem interfaces
Reviewed-by: Francisco Jerez <currojerez@riseup.net> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Diffstat (limited to 'drivers/gpu/drm/nouveau/nouveau_drv.h')
-rw-r--r--drivers/gpu/drm/nouveau/nouveau_drv.h44
1 files changed, 21 insertions, 23 deletions
diff --git a/drivers/gpu/drm/nouveau/nouveau_drv.h b/drivers/gpu/drm/nouveau/nouveau_drv.h
index 18a611e1ab80..822cd40b3eb4 100644
--- a/drivers/gpu/drm/nouveau/nouveau_drv.h
+++ b/drivers/gpu/drm/nouveau/nouveau_drv.h
@@ -146,15 +146,16 @@ enum nouveau_flags {
146 146
147#define NVOBJ_FLAG_ZERO_ALLOC (1 << 1) 147#define NVOBJ_FLAG_ZERO_ALLOC (1 << 1)
148#define NVOBJ_FLAG_ZERO_FREE (1 << 2) 148#define NVOBJ_FLAG_ZERO_FREE (1 << 2)
149
150#define NVOBJ_CINST_GLOBAL 0xdeadbeef
151
149struct nouveau_gpuobj { 152struct nouveau_gpuobj {
150 struct drm_device *dev; 153 struct drm_device *dev;
151 struct kref refcount; 154 struct kref refcount;
152 struct list_head list; 155 struct list_head list;
153 156
154 struct drm_mm_node *im_pramin; 157 void *node;
155 struct nouveau_bo *im_backing;
156 u32 *suspend; 158 u32 *suspend;
157 int im_bound;
158 159
159 uint32_t flags; 160 uint32_t flags;
160 161
@@ -288,11 +289,11 @@ struct nouveau_instmem_engine {
288 int (*suspend)(struct drm_device *dev); 289 int (*suspend)(struct drm_device *dev);
289 void (*resume)(struct drm_device *dev); 290 void (*resume)(struct drm_device *dev);
290 291
291 int (*populate)(struct drm_device *, struct nouveau_gpuobj *, 292 int (*get)(struct nouveau_gpuobj *, u32 size, u32 align);
292 u32 *size, u32 align); 293 void (*put)(struct nouveau_gpuobj *);
293 void (*clear)(struct drm_device *, struct nouveau_gpuobj *); 294 int (*map)(struct nouveau_gpuobj *);
294 int (*bind)(struct drm_device *, struct nouveau_gpuobj *); 295 void (*unmap)(struct nouveau_gpuobj *);
295 int (*unbind)(struct drm_device *, struct nouveau_gpuobj *); 296
296 void (*flush)(struct drm_device *); 297 void (*flush)(struct drm_device *);
297}; 298};
298 299
@@ -1182,11 +1183,10 @@ extern int nv04_instmem_init(struct drm_device *);
1182extern void nv04_instmem_takedown(struct drm_device *); 1183extern void nv04_instmem_takedown(struct drm_device *);
1183extern int nv04_instmem_suspend(struct drm_device *); 1184extern int nv04_instmem_suspend(struct drm_device *);
1184extern void nv04_instmem_resume(struct drm_device *); 1185extern void nv04_instmem_resume(struct drm_device *);
1185extern int nv04_instmem_populate(struct drm_device *, struct nouveau_gpuobj *, 1186extern int nv04_instmem_get(struct nouveau_gpuobj *, u32 size, u32 align);
1186 u32 *size, u32 align); 1187extern void nv04_instmem_put(struct nouveau_gpuobj *);
1187extern void nv04_instmem_clear(struct drm_device *, struct nouveau_gpuobj *); 1188extern int nv04_instmem_map(struct nouveau_gpuobj *);
1188extern int nv04_instmem_bind(struct drm_device *, struct nouveau_gpuobj *); 1189extern void nv04_instmem_unmap(struct nouveau_gpuobj *);
1189extern int nv04_instmem_unbind(struct drm_device *, struct nouveau_gpuobj *);
1190extern void nv04_instmem_flush(struct drm_device *); 1190extern void nv04_instmem_flush(struct drm_device *);
1191 1191
1192/* nv50_instmem.c */ 1192/* nv50_instmem.c */
@@ -1194,11 +1194,10 @@ extern int nv50_instmem_init(struct drm_device *);
1194extern void nv50_instmem_takedown(struct drm_device *); 1194extern void nv50_instmem_takedown(struct drm_device *);
1195extern int nv50_instmem_suspend(struct drm_device *); 1195extern int nv50_instmem_suspend(struct drm_device *);
1196extern void nv50_instmem_resume(struct drm_device *); 1196extern void nv50_instmem_resume(struct drm_device *);
1197extern int nv50_instmem_populate(struct drm_device *, struct nouveau_gpuobj *, 1197extern int nv50_instmem_get(struct nouveau_gpuobj *, u32 size, u32 align);
1198 u32 *size, u32 align); 1198extern void nv50_instmem_put(struct nouveau_gpuobj *);
1199extern void nv50_instmem_clear(struct drm_device *, struct nouveau_gpuobj *); 1199extern int nv50_instmem_map(struct nouveau_gpuobj *);
1200extern int nv50_instmem_bind(struct drm_device *, struct nouveau_gpuobj *); 1200extern void nv50_instmem_unmap(struct nouveau_gpuobj *);
1201extern int nv50_instmem_unbind(struct drm_device *, struct nouveau_gpuobj *);
1202extern void nv50_instmem_flush(struct drm_device *); 1201extern void nv50_instmem_flush(struct drm_device *);
1203extern void nv84_instmem_flush(struct drm_device *); 1202extern void nv84_instmem_flush(struct drm_device *);
1204extern void nv50_vm_flush(struct drm_device *, int engine); 1203extern void nv50_vm_flush(struct drm_device *, int engine);
@@ -1208,11 +1207,10 @@ extern int nvc0_instmem_init(struct drm_device *);
1208extern void nvc0_instmem_takedown(struct drm_device *); 1207extern void nvc0_instmem_takedown(struct drm_device *);
1209extern int nvc0_instmem_suspend(struct drm_device *); 1208extern int nvc0_instmem_suspend(struct drm_device *);
1210extern void nvc0_instmem_resume(struct drm_device *); 1209extern void nvc0_instmem_resume(struct drm_device *);
1211extern int nvc0_instmem_populate(struct drm_device *, struct nouveau_gpuobj *, 1210extern int nvc0_instmem_get(struct nouveau_gpuobj *, u32 size, u32 align);
1212 u32 *size, u32 align); 1211extern void nvc0_instmem_put(struct nouveau_gpuobj *);
1213extern void nvc0_instmem_clear(struct drm_device *, struct nouveau_gpuobj *); 1212extern int nvc0_instmem_map(struct nouveau_gpuobj *);
1214extern int nvc0_instmem_bind(struct drm_device *, struct nouveau_gpuobj *); 1213extern void nvc0_instmem_unmap(struct nouveau_gpuobj *);
1215extern int nvc0_instmem_unbind(struct drm_device *, struct nouveau_gpuobj *);
1216extern void nvc0_instmem_flush(struct drm_device *); 1214extern void nvc0_instmem_flush(struct drm_device *);
1217 1215
1218/* nv04_mc.c */ 1216/* nv04_mc.c */