drm: mark dma setup/teardown as legacy systems
authorDaniel Vetter <daniel.vetter@ffwll.ch>
Thu, 8 Aug 2013 13:41:19 +0000 (15:41 +0200)
committerDave Airlie <airlied@redhat.com>
Mon, 19 Aug 2013 00:04:21 +0000 (10:04 +1000)
And hide the checks a bit better. This was already disallowed for
modesetting drivers, so no functinal change here.

Reviewed-by: Eric Anholt <eric@anholt.net>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Dave Airlie <airlied@redhat.com>
drivers/gpu/drm/drm_dma.c
drivers/gpu/drm/drm_drv.c
drivers/gpu/drm/drm_fops.c
include/drm/drmP.h

index 495b5fd..8a140a9 100644 (file)
  *
  * 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;
 
index 743b24d..5b949a7 100644 (file)
@@ -205,9 +205,7 @@ int drm_lastclose(struct drm_device * dev)
                kfree(vma);
        }
 
-       if (drm_core_check_feature(dev, DRIVER_HAVE_DMA) &&
-           !drm_core_check_feature(dev, DRIVER_MODESET))
-               drm_dma_takedown(dev);
+       drm_legacy_dma_takedown(dev);
 
        dev->dev_mapping = NULL;
        mutex_unlock(&dev->struct_mutex);
index 72acae9..f343234 100644 (file)
@@ -60,15 +60,9 @@ static int drm_setup(struct drm_device * dev)
        atomic_set(&dev->ioctl_count, 0);
        atomic_set(&dev->vma_count, 0);
 
-       if (drm_core_check_feature(dev, DRIVER_HAVE_DMA) &&
-           !drm_core_check_feature(dev, DRIVER_MODESET)) {
-               dev->buf_use = 0;
-               atomic_set(&dev->buf_alloc, 0);
-
-               i = drm_dma_setup(dev);
-               if (i < 0)
-                       return i;
-       }
+       i = drm_legacy_dma_setup(dev);
+       if (i < 0)
+               return i;
 
        for (i = 0; i < ARRAY_SIZE(dev->counts); i++)
                atomic_set(&dev->counts[i], 0);
index 10d9f83..1da2530 100644 (file)
@@ -1374,8 +1374,8 @@ extern int drm_mapbufs(struct drm_device *dev, void *data,
                       struct drm_file *file_priv);
 
                                /* DMA support (drm_dma.h) */
-extern int drm_dma_setup(struct drm_device *dev);
-extern void drm_dma_takedown(struct drm_device *dev);
+extern int drm_legacy_dma_setup(struct drm_device *dev);
+extern void drm_legacy_dma_takedown(struct drm_device *dev);
 extern void drm_free_buffer(struct drm_device *dev, struct drm_buf * buf);
 extern void drm_core_reclaim_buffers(struct drm_device *dev,
                                     struct drm_file *filp);