summaryrefslogtreecommitdiff
path: root/shared-core/via_mm.c
diff options
context:
space:
mode:
Diffstat (limited to 'shared-core/via_mm.c')
-rw-r--r--shared-core/via_mm.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/shared-core/via_mm.c b/shared-core/via_mm.c
index be6184ca..fa37e782 100644
--- a/shared-core/via_mm.c
+++ b/shared-core/via_mm.c
@@ -171,6 +171,16 @@ int via_final_context(struct drm_device *dev, int context)
global_ppriv[i].used = 0;
}
+
+#if defined(__linux__)
+ /* Linux specific until context tracking code gets ported to BSD */
+ /* Last context, perform cleanup */
+ if (dev->ctx_count == 1 && dev->dev_private) {
+ if (dev->irq) DRM(irq_uninstall)(dev);
+
+ via_do_cleanup_map(dev);
+ }
+#endif
return 1;
}