|
@@ -44,10 +44,18 @@
|
|
|
*
|
|
|
* Allocate and initialize a drm_device_dma structure.
|
|
|
*/
|
|
|
-int drm_dma_setup(struct drm_device *dev)
|
|
|
+int drm_legacy_dma_setup(struct drm_device *dev)
|
|
|
{
|
|
|
int i;
|
|
|
|
|
|
+ if (!drm_core_check_feature(dev, DRIVER_HAVE_DMA) ||
|
|
|
+ drm_core_check_feature(dev, DRIVER_MODESET)) {
|
|
|
+ return 0;
|
|
|
+ }
|
|
|
+
|
|
|
+ dev->buf_use = 0;
|
|
|
+ atomic_set(&dev->buf_alloc, 0);
|
|
|
+
|
|
|
dev->dma = kzalloc(sizeof(*dev->dma), GFP_KERNEL);
|
|
|
if (!dev->dma)
|
|
|
return -ENOMEM;
|
|
@@ -66,11 +74,16 @@ int drm_dma_setup(struct drm_device *dev)
|
|
|
* Free all pages associated with DMA buffers, the buffers and pages lists, and
|
|
|
* finally the drm_device::dma structure itself.
|
|
|
*/
|
|
|
-void drm_dma_takedown(struct drm_device *dev)
|
|
|
+void drm_legacy_dma_takedown(struct drm_device *dev)
|
|
|
{
|
|
|
struct drm_device_dma *dma = dev->dma;
|
|
|
int i, j;
|
|
|
|
|
|
+ if (!drm_core_check_feature(dev, DRIVER_HAVE_DMA) ||
|
|
|
+ drm_core_check_feature(dev, DRIVER_MODESET)) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
if (!dma)
|
|
|
return;
|
|
|
|