aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/nouveau/nouveau_drv.h
diff options
context:
space:
mode:
authorBen Skeggs <bskeggs@redhat.com>2010-10-21 20:26:24 -0400
committerBen Skeggs <bskeggs@redhat.com>2010-11-17 23:38:45 -0500
commit56ac7475350ee646f5f7316abcdf65d3be94da1c (patch)
tree3a8c51089766a366ee39482834b74e9de0551e98 /drivers/gpu/drm/nouveau/nouveau_drv.h
parent06ef3e61dd44f76fef89d8e7ad5d6c845f3f345e (diff)
drm/nv50: implement possible workaround for NV86 PGRAPH TLB flush hang
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.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/gpu/drm/nouveau/nouveau_drv.h b/drivers/gpu/drm/nouveau/nouveau_drv.h
index 60a54fae90c1..10a8d4e78e58 100644
--- a/drivers/gpu/drm/nouveau/nouveau_drv.h
+++ b/drivers/gpu/drm/nouveau/nouveau_drv.h
@@ -307,6 +307,7 @@ struct nouveau_fifo_engine {
307 void (*destroy_context)(struct nouveau_channel *); 307 void (*destroy_context)(struct nouveau_channel *);
308 int (*load_context)(struct nouveau_channel *); 308 int (*load_context)(struct nouveau_channel *);
309 int (*unload_context)(struct drm_device *); 309 int (*unload_context)(struct drm_device *);
310 void (*tlb_flush)(struct drm_device *dev);
310}; 311};
311 312
312struct nouveau_pgraph_object_method { 313struct nouveau_pgraph_object_method {
@@ -339,6 +340,7 @@ struct nouveau_pgraph_engine {
339 void (*destroy_context)(struct nouveau_channel *); 340 void (*destroy_context)(struct nouveau_channel *);
340 int (*load_context)(struct nouveau_channel *); 341 int (*load_context)(struct nouveau_channel *);
341 int (*unload_context)(struct drm_device *); 342 int (*unload_context)(struct drm_device *);
343 void (*tlb_flush)(struct drm_device *dev);
342 344
343 void (*set_region_tiling)(struct drm_device *dev, int i, uint32_t addr, 345 void (*set_region_tiling)(struct drm_device *dev, int i, uint32_t addr,
344 uint32_t size, uint32_t pitch); 346 uint32_t size, uint32_t pitch);
@@ -1014,6 +1016,7 @@ extern int nv50_fifo_create_context(struct nouveau_channel *);
1014extern void nv50_fifo_destroy_context(struct nouveau_channel *); 1016extern void nv50_fifo_destroy_context(struct nouveau_channel *);
1015extern int nv50_fifo_load_context(struct nouveau_channel *); 1017extern int nv50_fifo_load_context(struct nouveau_channel *);
1016extern int nv50_fifo_unload_context(struct drm_device *); 1018extern int nv50_fifo_unload_context(struct drm_device *);
1019extern void nv50_fifo_tlb_flush(struct drm_device *dev);
1017 1020
1018/* nvc0_fifo.c */ 1021/* nvc0_fifo.c */
1019extern int nvc0_fifo_init(struct drm_device *); 1022extern int nvc0_fifo_init(struct drm_device *);
@@ -1091,6 +1094,8 @@ extern int nv50_graph_load_context(struct nouveau_channel *);
1091extern int nv50_graph_unload_context(struct drm_device *); 1094extern int nv50_graph_unload_context(struct drm_device *);
1092extern void nv50_graph_context_switch(struct drm_device *); 1095extern void nv50_graph_context_switch(struct drm_device *);
1093extern int nv50_grctx_init(struct nouveau_grctx *); 1096extern int nv50_grctx_init(struct nouveau_grctx *);
1097extern void nv50_graph_tlb_flush(struct drm_device *dev);
1098extern void nv86_graph_tlb_flush(struct drm_device *dev);
1094 1099
1095/* nvc0_graph.c */ 1100/* nvc0_graph.c */
1096extern int nvc0_graph_init(struct drm_device *); 1101extern int nvc0_graph_init(struct drm_device *);