diff options
author | Ben Skeggs <bskeggs@redhat.com> | 2010-10-21 20:26:24 -0400 |
---|---|---|
committer | Ben Skeggs <bskeggs@redhat.com> | 2010-11-17 23:38:45 -0500 |
commit | 56ac7475350ee646f5f7316abcdf65d3be94da1c (patch) | |
tree | 3a8c51089766a366ee39482834b74e9de0551e98 /drivers/gpu/drm/nouveau/nouveau_drv.h | |
parent | 06ef3e61dd44f76fef89d8e7ad5d6c845f3f345e (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.h | 5 |
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 | ||
312 | struct nouveau_pgraph_object_method { | 313 | struct 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 *); | |||
1014 | extern void nv50_fifo_destroy_context(struct nouveau_channel *); | 1016 | extern void nv50_fifo_destroy_context(struct nouveau_channel *); |
1015 | extern int nv50_fifo_load_context(struct nouveau_channel *); | 1017 | extern int nv50_fifo_load_context(struct nouveau_channel *); |
1016 | extern int nv50_fifo_unload_context(struct drm_device *); | 1018 | extern int nv50_fifo_unload_context(struct drm_device *); |
1019 | extern void nv50_fifo_tlb_flush(struct drm_device *dev); | ||
1017 | 1020 | ||
1018 | /* nvc0_fifo.c */ | 1021 | /* nvc0_fifo.c */ |
1019 | extern int nvc0_fifo_init(struct drm_device *); | 1022 | extern int nvc0_fifo_init(struct drm_device *); |
@@ -1091,6 +1094,8 @@ extern int nv50_graph_load_context(struct nouveau_channel *); | |||
1091 | extern int nv50_graph_unload_context(struct drm_device *); | 1094 | extern int nv50_graph_unload_context(struct drm_device *); |
1092 | extern void nv50_graph_context_switch(struct drm_device *); | 1095 | extern void nv50_graph_context_switch(struct drm_device *); |
1093 | extern int nv50_grctx_init(struct nouveau_grctx *); | 1096 | extern int nv50_grctx_init(struct nouveau_grctx *); |
1097 | extern void nv50_graph_tlb_flush(struct drm_device *dev); | ||
1098 | extern void nv86_graph_tlb_flush(struct drm_device *dev); | ||
1094 | 1099 | ||
1095 | /* nvc0_graph.c */ | 1100 | /* nvc0_graph.c */ |
1096 | extern int nvc0_graph_init(struct drm_device *); | 1101 | extern int nvc0_graph_init(struct drm_device *); |