mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-11-30 00:46:39 +07:00
drm: Nerf the preclose callback for modern drivers
With all drivers converted there's only legacy dri1 drivers using it. Not going to touch those, instead just hide it like we've done with other dri1 driver hooks like firstopen. In all this I didn't find any real reason why we'd needed 2 hooks, and having symmetry between open and close just appeases my OCD better. Yeah, someone else could do an s/postclose/close/, but that's for someone who understands cocci. And maybe after this series is reviewed and landed, to avoid patch-regen churn. v2: s/last/post/close in the kernel-doc (Sean). Reviewed-by: Sean Paul <seanpaul@chromium.org> Reviewed-by: Liviu Dudau <Liviu.Dudau@arm.com> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com> Link: http://patchwork.freedesktop.org/patch/msgid/20170508082633.4214-4-daniel.vetter@ffwll.ch
This commit is contained in:
parent
b13b4d1b81
commit
45c3d213a4
@ -351,9 +351,8 @@ void drm_lastclose(struct drm_device * dev)
|
||||
*
|
||||
* This function must be used by drivers as their &file_operations.release
|
||||
* method. It frees any resources associated with the open file, and calls the
|
||||
* &drm_driver.preclose and &drm_driver.lastclose driver callbacks. If this is
|
||||
* the last open file for the DRM device also proceeds to call the
|
||||
* &drm_driver.lastclose driver callback.
|
||||
* &drm_driver.postclose driver callback. If this is the last open file for the
|
||||
* DRM device also proceeds to call the &drm_driver.lastclose driver callback.
|
||||
*
|
||||
* RETURNS:
|
||||
*
|
||||
@ -373,7 +372,8 @@ int drm_release(struct inode *inode, struct file *filp)
|
||||
list_del(&file_priv->lhead);
|
||||
mutex_unlock(&dev->filelist_mutex);
|
||||
|
||||
if (dev->driver->preclose)
|
||||
if (drm_core_check_feature(dev, DRIVER_LEGACY) &&
|
||||
dev->driver->preclose)
|
||||
dev->driver->preclose(dev, file_priv);
|
||||
|
||||
/* ========================================================
|
||||
|
@ -103,23 +103,6 @@ struct drm_driver {
|
||||
*/
|
||||
int (*open) (struct drm_device *, struct drm_file *);
|
||||
|
||||
/**
|
||||
* @preclose:
|
||||
*
|
||||
* One of the driver callbacks when a new &struct drm_file is closed.
|
||||
* Useful for tearing down driver-private data structures allocated in
|
||||
* @open like buffer allocators, execution contexts or similar things.
|
||||
*
|
||||
* Since the display/modeset side of DRM can only be owned by exactly
|
||||
* one &struct drm_file (see &drm_file.is_master and &drm_device.master)
|
||||
* there should never be a need to tear down any modeset related
|
||||
* resources in this callback. Doing so would be a driver design bug.
|
||||
*
|
||||
* FIXME: It is not really clear why there's both @preclose and
|
||||
* @postclose. Without a really good reason, use @postclose only.
|
||||
*/
|
||||
void (*preclose) (struct drm_device *, struct drm_file *file_priv);
|
||||
|
||||
/**
|
||||
* @postclose:
|
||||
*
|
||||
@ -131,9 +114,6 @@ struct drm_driver {
|
||||
* one &struct drm_file (see &drm_file.is_master and &drm_device.master)
|
||||
* there should never be a need to tear down any modeset related
|
||||
* resources in this callback. Doing so would be a driver design bug.
|
||||
*
|
||||
* FIXME: It is not really clear why there's both @preclose and
|
||||
* @postclose. Without a really good reason, use @postclose only.
|
||||
*/
|
||||
void (*postclose) (struct drm_device *, struct drm_file *);
|
||||
|
||||
@ -150,7 +130,7 @@ struct drm_driver {
|
||||
* state changes, e.g. in conjunction with the :ref:`vga_switcheroo`
|
||||
* infrastructure.
|
||||
*
|
||||
* This is called after @preclose and @postclose have been called.
|
||||
* This is called after @postclose hook has been called.
|
||||
*
|
||||
* NOTE:
|
||||
*
|
||||
@ -516,6 +496,7 @@ struct drm_driver {
|
||||
/* List of devices hanging off this driver with stealth attach. */
|
||||
struct list_head legacy_dev_list;
|
||||
int (*firstopen) (struct drm_device *);
|
||||
void (*preclose) (struct drm_device *, struct drm_file *file_priv);
|
||||
int (*dma_ioctl) (struct drm_device *dev, void *data, struct drm_file *file_priv);
|
||||
int (*dma_quiescent) (struct drm_device *);
|
||||
int (*context_dtor) (struct drm_device *dev, int context);
|
||||
|
Loading…
Reference in New Issue
Block a user