drm/legacy: move init/destroy of struct members into legacy file
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>hifive-unleashed-5.2
parent
fabb0e2a25
commit
8437dd73b3
|
@ -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_plane.o drm_color_mgmt.o drm_print.o \
|
||||||
drm_dumb_buffers.o drm_mode_config.o drm_vblank.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_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_LIB_RANDOM) += lib/drm_random.o
|
||||||
drm-$(CONFIG_DRM_VM) += drm_vm.o
|
drm-$(CONFIG_DRM_VM) += drm_vm.o
|
||||||
|
|
|
@ -659,20 +659,16 @@ int drm_dev_init(struct drm_device *dev,
|
||||||
/* no per-device feature limits by default */
|
/* no per-device feature limits by default */
|
||||||
dev->driver_features = ~0u;
|
dev->driver_features = ~0u;
|
||||||
|
|
||||||
|
drm_legacy_init_members(dev);
|
||||||
INIT_LIST_HEAD(&dev->filelist);
|
INIT_LIST_HEAD(&dev->filelist);
|
||||||
INIT_LIST_HEAD(&dev->filelist_internal);
|
INIT_LIST_HEAD(&dev->filelist_internal);
|
||||||
INIT_LIST_HEAD(&dev->clientlist);
|
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);
|
INIT_LIST_HEAD(&dev->vblank_event_list);
|
||||||
|
|
||||||
spin_lock_init(&dev->buf_lock);
|
|
||||||
spin_lock_init(&dev->event_lock);
|
spin_lock_init(&dev->event_lock);
|
||||||
mutex_init(&dev->struct_mutex);
|
mutex_init(&dev->struct_mutex);
|
||||||
mutex_init(&dev->filelist_mutex);
|
mutex_init(&dev->filelist_mutex);
|
||||||
mutex_init(&dev->clientlist_mutex);
|
mutex_init(&dev->clientlist_mutex);
|
||||||
mutex_init(&dev->ctxlist_mutex);
|
|
||||||
mutex_init(&dev->master_mutex);
|
mutex_init(&dev->master_mutex);
|
||||||
|
|
||||||
dev->anon_inode = drm_fs_inode_new();
|
dev->anon_inode = drm_fs_inode_new();
|
||||||
|
@ -725,10 +721,10 @@ err_minors:
|
||||||
err_free:
|
err_free:
|
||||||
put_device(dev->dev);
|
put_device(dev->dev);
|
||||||
mutex_destroy(&dev->master_mutex);
|
mutex_destroy(&dev->master_mutex);
|
||||||
mutex_destroy(&dev->ctxlist_mutex);
|
|
||||||
mutex_destroy(&dev->clientlist_mutex);
|
mutex_destroy(&dev->clientlist_mutex);
|
||||||
mutex_destroy(&dev->filelist_mutex);
|
mutex_destroy(&dev->filelist_mutex);
|
||||||
mutex_destroy(&dev->struct_mutex);
|
mutex_destroy(&dev->struct_mutex);
|
||||||
|
drm_legacy_destroy_members(dev);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL(drm_dev_init);
|
EXPORT_SYMBOL(drm_dev_init);
|
||||||
|
@ -801,10 +797,10 @@ void drm_dev_fini(struct drm_device *dev)
|
||||||
put_device(dev->dev);
|
put_device(dev->dev);
|
||||||
|
|
||||||
mutex_destroy(&dev->master_mutex);
|
mutex_destroy(&dev->master_mutex);
|
||||||
mutex_destroy(&dev->ctxlist_mutex);
|
|
||||||
mutex_destroy(&dev->clientlist_mutex);
|
mutex_destroy(&dev->clientlist_mutex);
|
||||||
mutex_destroy(&dev->filelist_mutex);
|
mutex_destroy(&dev->filelist_mutex);
|
||||||
mutex_destroy(&dev->struct_mutex);
|
mutex_destroy(&dev->struct_mutex);
|
||||||
|
drm_legacy_destroy_members(dev);
|
||||||
kfree(dev->unique);
|
kfree(dev->unique);
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL(drm_dev_fini);
|
EXPORT_SYMBOL(drm_dev_fini);
|
||||||
|
|
|
@ -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,
|
int drm_legacy_sg_free(struct drm_device *dev, void *data,
|
||||||
struct drm_file *file_priv);
|
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);
|
void drm_legacy_lock_master_cleanup(struct drm_device *dev, struct drm_master *master);
|
||||||
#endif /* __DRM_LEGACY_H__ */
|
#endif /* __DRM_LEGACY_H__ */
|
||||||
|
|
|
@ -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);
|
||||||
|
}
|
Loading…
Reference in New Issue