drm: As a workaround don't tear down sg with a modesetting driver.
authorMaarten Maathuis <madman2003@gmail.com>
Sat, 19 Jul 2008 22:09:06 +0000 (00:09 +0200)
committerMaarten Maathuis <madman2003@gmail.com>
Sat, 19 Jul 2008 22:09:06 +0000 (00:09 +0200)
- This allows me to maintain a useful prototype driver.

linux-core/drm_drv.c

index deb8eb9..4e7c531 100644 (file)
@@ -242,7 +242,10 @@ int drm_lastclose(struct drm_device * dev)
                dev->agp->acquired = 0;
                dev->agp->enabled = 0;
        }
                dev->agp->acquired = 0;
                dev->agp->enabled = 0;
        }
-       if (drm_core_check_feature(dev, DRIVER_SG) && dev->sg) {
+
+       /* You're supposed to have a real memory manager for modesetting, but this'll suffice as a temporary workaround. */
+       /* This assumes sgdma is inited at load time. */
+       if (drm_core_check_feature(dev, DRIVER_SG) && !drm_core_check_feature(dev, DRIVER_MODESET) && dev->sg) {
                drm_sg_cleanup(dev->sg);
                dev->sg = NULL;
        }
                drm_sg_cleanup(dev->sg);
                dev->sg = NULL;
        }