diff options
author | Ben Skeggs <bskeggs@redhat.com> | 2010-10-31 21:45:02 -0400 |
---|---|---|
committer | Ben Skeggs <bskeggs@redhat.com> | 2010-12-03 00:11:48 -0500 |
commit | e41115d0ad5c40a7ea4d85b1c77b4c02185a5581 (patch) | |
tree | ee8c82c17857fdd7989edb89735009b85c3a045c /drivers/gpu/drm/nouveau/nouveau_drv.h | |
parent | dc1e5c0dbff27c2b5147eaea16c578d2337870c3 (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.h | 44 |
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 | |||
149 | struct nouveau_gpuobj { | 152 | struct 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 *); | |||
1182 | extern void nv04_instmem_takedown(struct drm_device *); | 1183 | extern void nv04_instmem_takedown(struct drm_device *); |
1183 | extern int nv04_instmem_suspend(struct drm_device *); | 1184 | extern int nv04_instmem_suspend(struct drm_device *); |
1184 | extern void nv04_instmem_resume(struct drm_device *); | 1185 | extern void nv04_instmem_resume(struct drm_device *); |
1185 | extern int nv04_instmem_populate(struct drm_device *, struct nouveau_gpuobj *, | 1186 | extern int nv04_instmem_get(struct nouveau_gpuobj *, u32 size, u32 align); |
1186 | u32 *size, u32 align); | 1187 | extern void nv04_instmem_put(struct nouveau_gpuobj *); |
1187 | extern void nv04_instmem_clear(struct drm_device *, struct nouveau_gpuobj *); | 1188 | extern int nv04_instmem_map(struct nouveau_gpuobj *); |
1188 | extern int nv04_instmem_bind(struct drm_device *, struct nouveau_gpuobj *); | 1189 | extern void nv04_instmem_unmap(struct nouveau_gpuobj *); |
1189 | extern int nv04_instmem_unbind(struct drm_device *, struct nouveau_gpuobj *); | ||
1190 | extern void nv04_instmem_flush(struct drm_device *); | 1190 | extern 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 *); | |||
1194 | extern void nv50_instmem_takedown(struct drm_device *); | 1194 | extern void nv50_instmem_takedown(struct drm_device *); |
1195 | extern int nv50_instmem_suspend(struct drm_device *); | 1195 | extern int nv50_instmem_suspend(struct drm_device *); |
1196 | extern void nv50_instmem_resume(struct drm_device *); | 1196 | extern void nv50_instmem_resume(struct drm_device *); |
1197 | extern int nv50_instmem_populate(struct drm_device *, struct nouveau_gpuobj *, | 1197 | extern int nv50_instmem_get(struct nouveau_gpuobj *, u32 size, u32 align); |
1198 | u32 *size, u32 align); | 1198 | extern void nv50_instmem_put(struct nouveau_gpuobj *); |
1199 | extern void nv50_instmem_clear(struct drm_device *, struct nouveau_gpuobj *); | 1199 | extern int nv50_instmem_map(struct nouveau_gpuobj *); |
1200 | extern int nv50_instmem_bind(struct drm_device *, struct nouveau_gpuobj *); | 1200 | extern void nv50_instmem_unmap(struct nouveau_gpuobj *); |
1201 | extern int nv50_instmem_unbind(struct drm_device *, struct nouveau_gpuobj *); | ||
1202 | extern void nv50_instmem_flush(struct drm_device *); | 1201 | extern void nv50_instmem_flush(struct drm_device *); |
1203 | extern void nv84_instmem_flush(struct drm_device *); | 1202 | extern void nv84_instmem_flush(struct drm_device *); |
1204 | extern void nv50_vm_flush(struct drm_device *, int engine); | 1203 | extern void nv50_vm_flush(struct drm_device *, int engine); |
@@ -1208,11 +1207,10 @@ extern int nvc0_instmem_init(struct drm_device *); | |||
1208 | extern void nvc0_instmem_takedown(struct drm_device *); | 1207 | extern void nvc0_instmem_takedown(struct drm_device *); |
1209 | extern int nvc0_instmem_suspend(struct drm_device *); | 1208 | extern int nvc0_instmem_suspend(struct drm_device *); |
1210 | extern void nvc0_instmem_resume(struct drm_device *); | 1209 | extern void nvc0_instmem_resume(struct drm_device *); |
1211 | extern int nvc0_instmem_populate(struct drm_device *, struct nouveau_gpuobj *, | 1210 | extern int nvc0_instmem_get(struct nouveau_gpuobj *, u32 size, u32 align); |
1212 | u32 *size, u32 align); | 1211 | extern void nvc0_instmem_put(struct nouveau_gpuobj *); |
1213 | extern void nvc0_instmem_clear(struct drm_device *, struct nouveau_gpuobj *); | 1212 | extern int nvc0_instmem_map(struct nouveau_gpuobj *); |
1214 | extern int nvc0_instmem_bind(struct drm_device *, struct nouveau_gpuobj *); | 1213 | extern void nvc0_instmem_unmap(struct nouveau_gpuobj *); |
1215 | extern int nvc0_instmem_unbind(struct drm_device *, struct nouveau_gpuobj *); | ||
1216 | extern void nvc0_instmem_flush(struct drm_device *); | 1214 | extern void nvc0_instmem_flush(struct drm_device *); |
1217 | 1215 | ||
1218 | /* nv04_mc.c */ | 1216 | /* nv04_mc.c */ |