Commit ccb32f23 authored by Hans Verkuil's avatar Hans Verkuil Committed by Mauro Carvalho Chehab
Browse files

media: v4l2-core: add v4l2_debugfs_root()



This new function returns the dentry of the top-level debugfs "v4l2"
directory. If it does not exist yet, then it is created first.

Signed-off-by: default avatarHans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab+huawei@kernel.org>
parent bfe703ac
Loading
Loading
Loading
Loading
+14 −0
Original line number Diff line number Diff line
@@ -93,6 +93,8 @@ static struct attribute *video_device_attrs[] = {
};
ATTRIBUTE_GROUPS(video_device);

static struct dentry *v4l2_debugfs_root_dir;

/*
 *	Active devices
 */
@@ -1118,6 +1120,16 @@ void video_unregister_device(struct video_device *vdev)
}
EXPORT_SYMBOL(video_unregister_device);

#ifdef CONFIG_DEBUG_FS
struct dentry *v4l2_debugfs_root(void)
{
	if (!v4l2_debugfs_root_dir)
		v4l2_debugfs_root_dir = debugfs_create_dir("v4l2", NULL);
	return v4l2_debugfs_root_dir;
}
EXPORT_SYMBOL_GPL(v4l2_debugfs_root);
#endif

#if defined(CONFIG_MEDIA_CONTROLLER)

__must_check int video_device_pipeline_start(struct video_device *vdev,
@@ -1222,6 +1234,8 @@ static void __exit videodev_exit(void)

	class_unregister(&video_class);
	unregister_chrdev_region(dev, VIDEO_NUM_DEVICES);
	debugfs_remove_recursive(v4l2_debugfs_root_dir);
	v4l2_debugfs_root_dir = NULL;
}

subsys_initcall(videodev_init);
+15 −0
Original line number Diff line number Diff line
@@ -62,6 +62,7 @@ struct v4l2_ioctl_callbacks;
struct video_device;
struct v4l2_device;
struct v4l2_ctrl_handler;
struct dentry;

/**
 * enum v4l2_video_device_flags - Flags used by &struct video_device
@@ -539,6 +540,20 @@ static inline int video_is_registered(struct video_device *vdev)
	return test_bit(V4L2_FL_REGISTERED, &vdev->flags);
}

/**
 * v4l2_debugfs_root - returns the dentry of the top-level "v4l2" debugfs dir
 *
 * If this directory does not yet exist, then it will be created.
 */
#ifdef CONFIG_DEBUG_FS
struct dentry *v4l2_debugfs_root(void);
#else
static inline struct dentry *v4l2_debugfs_root(void)
{
	return NULL;
}
#endif

#if defined(CONFIG_MEDIA_CONTROLLER)

/**