aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/drm_debugfs.c
diff options
context:
space:
mode:
authorLiviu Dudau <Liviu.Dudau@arm.com>2016-11-17 11:41:29 +0000
committerSean Paul <seanpaul@chromium.org>2016-11-21 13:22:08 -0500
commit8c0b55e22aff84cb6938a993d86c3ce02006236e (patch)
treedd707a1724fffe633a9c42924a9b92add14e3bd5 /drivers/gpu/drm/drm_debugfs.c
parentvgaarb: Downgrade userspace-triggerable messages to debug (diff)
downloadlinux-dev-8c0b55e22aff84cb6938a993d86c3ce02006236e.tar.xz
linux-dev-8c0b55e22aff84cb6938a993d86c3ce02006236e.zip
drm/atomic: cleanup debugfs entries on un-registering the driver.
Cleanup the debugfs entries created by commit 6559c901cb48: drm/atomic: add debugfs file to dump out atomic state when the driver's minor gets un-registered. Without it, DRM drivers compiled as modules cannot be rmmod-ed and modprobed again. Tested-by: Brian Starkey <brian.starkey@arm.com> Signed-off-by: Liviu Dudau <Liviu.Dudau@arm.com> Signed-off-by: Sean Paul <seanpaul@chromium.org> Link: http://patchwork.freedesktop.org/patch/msgid/20161117114129.2627-1-Liviu.Dudau@arm.com Fixes: 6559c901cb48 ("drm/atomic: add debugfs file to dump out atomic state")
Diffstat (limited to 'drivers/gpu/drm/drm_debugfs.c')
-rw-r--r--drivers/gpu/drm/drm_debugfs.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/drivers/gpu/drm/drm_debugfs.c b/drivers/gpu/drm/drm_debugfs.c
index 206a4fe7ea26..2e3e46a53805 100644
--- a/drivers/gpu/drm/drm_debugfs.c
+++ b/drivers/gpu/drm/drm_debugfs.c
@@ -228,6 +228,7 @@ EXPORT_SYMBOL(drm_debugfs_remove_files);
int drm_debugfs_cleanup(struct drm_minor *minor)
{
struct drm_device *dev = minor->dev;
+ int ret;
if (!minor->debugfs_root)
return 0;
@@ -235,6 +236,14 @@ int drm_debugfs_cleanup(struct drm_minor *minor)
if (dev->driver->debugfs_cleanup)
dev->driver->debugfs_cleanup(minor);
+ if (drm_core_check_feature(dev, DRIVER_ATOMIC)) {
+ ret = drm_atomic_debugfs_cleanup(minor);
+ if (ret) {
+ DRM_ERROR("DRM: Failed to remove atomic debugfs entries\n");
+ return ret;
+ }
+ }
+
drm_debugfs_remove_files(drm_debugfs_list, DRM_DEBUGFS_ENTRIES, minor);
debugfs_remove(minor->debugfs_root);