diff options
author | Ben Skeggs <bskeggs@redhat.com> | 2011-07-20 11:44:52 +1000 |
---|---|---|
committer | Ben Skeggs <bskeggs@redhat.com> | 2011-07-25 09:43:38 +1000 |
commit | 9962cc6eba013607d6199b723afca23301df7b47 (patch) | |
tree | 2114c4aee75c09241f3935b02df0e1ff4113f171 /drivers/gpu/drm/nouveau/nv10_graph.c | |
parent | 6c320fef5835240bf414b54e697e517a160663f4 (diff) | |
download | op-kernel-dev-9962cc6eba013607d6199b723afca23301df7b47.zip op-kernel-dev-9962cc6eba013607d6199b723afca23301df7b47.tar.gz |
drm/nouveau/gr: disable fifo access and idle before suspend ctx unload
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Diffstat (limited to 'drivers/gpu/drm/nouveau/nv10_graph.c')
-rw-r--r-- | drivers/gpu/drm/nouveau/nv10_graph.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/gpu/drm/nouveau/nv10_graph.c b/drivers/gpu/drm/nouveau/nv10_graph.c index f22b323..7255e4a 100644 --- a/drivers/gpu/drm/nouveau/nv10_graph.c +++ b/drivers/gpu/drm/nouveau/nv10_graph.c @@ -959,6 +959,11 @@ nv10_graph_init(struct drm_device *dev, int engine) static int nv10_graph_fini(struct drm_device *dev, int engine, bool suspend) { + nv_mask(dev, NV04_PGRAPH_FIFO, 0x00000001, 0x00000000); + if (!nv_wait(dev, NV04_PGRAPH_STATUS, ~0, 0) && suspend) { + nv_mask(dev, NV04_PGRAPH_FIFO, 0x00000001, 0x00000001); + return -EBUSY; + } nv10_graph_unload_context(dev); nv_wr32(dev, NV03_PGRAPH_INTR_EN, 0x00000000); return 0; |