drm/legacy: move init/destroy of struct members into legacy file
authorDave Airlie <airlied@redhat.com>
Mon, 22 Apr 2019 23:47:27 +0000 (09:47 +1000)
committerDave Airlie <airlied@redhat.com>
Wed, 24 Apr 2019 02:32:18 +0000 (12:32 +1000)
This introduces drm_legacy_misc.c as a place for some misc legacy code,
eventually I want to give the option to remove this from the build.

Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Dave Airlie <airlied@redhat.com>
drivers/gpu/drm/Makefile
drivers/gpu/drm/drm_drv.c
drivers/gpu/drm/drm_legacy.h
drivers/gpu/drm/drm_legacy_misc.c [new file with mode: 0644]

index 7ebae3d455059c55187e23be0f5e8f150fd68d6b..0361ad93f6b9af9083dfbc564c63f883d406eea5 100644 (file)
@@ -19,7 +19,7 @@ drm-y       :=        drm_auth.o drm_bufs.o drm_cache.o \
                drm_plane.o drm_color_mgmt.o drm_print.o \
                drm_dumb_buffers.o drm_mode_config.o drm_vblank.o \
                drm_syncobj.o drm_lease.o drm_writeback.o drm_client.o \
-               drm_atomic_uapi.o
+               drm_atomic_uapi.o drm_legacy_misc.o
 
 drm-$(CONFIG_DRM_LIB_RANDOM) += lib/drm_random.o
 drm-$(CONFIG_DRM_VM) += drm_vm.o
index 34109a0b31449c920997d03b799f5fcc49b530e2..862621494a93eb38c6f9a85b1914969d1bd1d4eb 100644 (file)
@@ -659,20 +659,16 @@ int drm_dev_init(struct drm_device *dev,
        /* no per-device feature limits by default */
        dev->driver_features = ~0u;
 
+       drm_legacy_init_members(dev);
        INIT_LIST_HEAD(&dev->filelist);
        INIT_LIST_HEAD(&dev->filelist_internal);
        INIT_LIST_HEAD(&dev->clientlist);
-       INIT_LIST_HEAD(&dev->ctxlist);
-       INIT_LIST_HEAD(&dev->vmalist);
-       INIT_LIST_HEAD(&dev->maplist);
        INIT_LIST_HEAD(&dev->vblank_event_list);
 
-       spin_lock_init(&dev->buf_lock);
        spin_lock_init(&dev->event_lock);
        mutex_init(&dev->struct_mutex);
        mutex_init(&dev->filelist_mutex);
        mutex_init(&dev->clientlist_mutex);
-       mutex_init(&dev->ctxlist_mutex);
        mutex_init(&dev->master_mutex);
 
        dev->anon_inode = drm_fs_inode_new();
@@ -725,10 +721,10 @@ err_minors:
 err_free:
        put_device(dev->dev);
        mutex_destroy(&dev->master_mutex);
-       mutex_destroy(&dev->ctxlist_mutex);
        mutex_destroy(&dev->clientlist_mutex);
        mutex_destroy(&dev->filelist_mutex);
        mutex_destroy(&dev->struct_mutex);
+       drm_legacy_destroy_members(dev);
        return ret;
 }
 EXPORT_SYMBOL(drm_dev_init);
@@ -801,10 +797,10 @@ void drm_dev_fini(struct drm_device *dev)
        put_device(dev->dev);
 
        mutex_destroy(&dev->master_mutex);
-       mutex_destroy(&dev->ctxlist_mutex);
        mutex_destroy(&dev->clientlist_mutex);
        mutex_destroy(&dev->filelist_mutex);
        mutex_destroy(&dev->struct_mutex);
+       drm_legacy_destroy_members(dev);
        kfree(dev->unique);
 }
 EXPORT_SYMBOL(drm_dev_fini);
index ef419d500e51f200cec116c8669e098752353e69..4f6319d2bb03ccf3dcb953f3495bf03e72a1cbc5 100644 (file)
@@ -136,5 +136,8 @@ int drm_legacy_sg_alloc(struct drm_device *dev, void *data,
 int drm_legacy_sg_free(struct drm_device *dev, void *data,
                       struct drm_file *file_priv);
 
+void drm_legacy_init_members(struct drm_device *dev);
+void drm_legacy_destroy_members(struct drm_device *dev);
+
 void drm_legacy_lock_master_cleanup(struct drm_device *dev, struct drm_master *master);
 #endif /* __DRM_LEGACY_H__ */
diff --git a/drivers/gpu/drm/drm_legacy_misc.c b/drivers/gpu/drm/drm_legacy_misc.c
new file mode 100644 (file)
index 0000000..9497388
--- /dev/null
@@ -0,0 +1,52 @@
+/**
+ * \file drm_legacy_misc.c
+ * Misc legacy support functions.
+ *
+ * \author Rickard E. (Rik) Faith <faith@valinux.com>
+ * \author Gareth Hughes <gareth@valinux.com>
+ */
+
+/*
+ * Created: Tue Feb  2 08:37:54 1999 by faith@valinux.com
+ *
+ * Copyright 1999 Precision Insight, Inc., Cedar Park, Texas.
+ * Copyright 2000 VA Linux Systems, Inc., Sunnyvale, California.
+ * All Rights Reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * VA LINUX SYSTEMS AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
+ * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ * OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+#include <drm/drmP.h>
+#include "drm_internal.h"
+#include "drm_legacy.h"
+
+void drm_legacy_init_members(struct drm_device *dev)
+{
+       INIT_LIST_HEAD(&dev->ctxlist);
+       INIT_LIST_HEAD(&dev->vmalist);
+       INIT_LIST_HEAD(&dev->maplist);
+       spin_lock_init(&dev->buf_lock);
+       mutex_init(&dev->ctxlist_mutex);
+}
+
+void drm_legacy_destroy_members(struct drm_device *dev)
+{
+       mutex_destroy(&dev->ctxlist_mutex);
+}