V4L/DVB (13549): v4l: Add video_device_node_name function
Many drivers access the device number (video_device::v4l2_devnode::num) in order to print the video device node name. Add and use a helper function to retrieve the video_device node name. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
This commit is contained in:
parent
a3a9e287da
commit
eac8ea536a
@ -561,6 +561,8 @@ video_device helper functions
|
||||
|
||||
There are a few useful helper functions:
|
||||
|
||||
- file/video_device private data
|
||||
|
||||
You can set/get driver private data in the video_device struct using:
|
||||
|
||||
void *video_get_drvdata(struct video_device *vdev);
|
||||
@ -575,8 +577,7 @@ struct video_device *video_devdata(struct file *file);
|
||||
|
||||
returns the video_device belonging to the file struct.
|
||||
|
||||
The final helper function combines video_get_drvdata with
|
||||
video_devdata:
|
||||
The video_drvdata function combines video_get_drvdata with video_devdata:
|
||||
|
||||
void *video_drvdata(struct file *file);
|
||||
|
||||
@ -584,6 +585,17 @@ You can go from a video_device struct to the v4l2_device struct using:
|
||||
|
||||
struct v4l2_device *v4l2_dev = vdev->v4l2_dev;
|
||||
|
||||
- Device node name
|
||||
|
||||
The video_device node kernel name can be retrieved using
|
||||
|
||||
const char *video_device_node_name(struct video_device *vdev);
|
||||
|
||||
The name is used as a hint by userspace tools such as udev. The function
|
||||
should be used where possible instead of accessing the video_device::num and
|
||||
video_device::minor fields.
|
||||
|
||||
|
||||
video buffer helper functions
|
||||
-----------------------------
|
||||
|
||||
|
@ -551,8 +551,8 @@ static int __video_register_device(struct video_device *vdev, int type, int nr,
|
||||
vdev->dev.release = v4l2_device_release;
|
||||
|
||||
if (nr != -1 && nr != vdev->num && warn_if_nr_in_use)
|
||||
printk(KERN_WARNING "%s: requested %s%d, got %s%d\n",
|
||||
__func__, name_base, nr, name_base, vdev->num);
|
||||
printk(KERN_WARNING "%s: requested %s%d, got %s\n", __func__,
|
||||
name_base, nr, video_device_node_name(vdev));
|
||||
|
||||
/* Part 5: Activate this minor. The char device can now be used. */
|
||||
mutex_lock(&videodev_lock);
|
||||
|
@ -141,6 +141,11 @@ static inline void *video_drvdata(struct file *file)
|
||||
return video_get_drvdata(video_devdata(file));
|
||||
}
|
||||
|
||||
static inline const char *video_device_node_name(struct video_device *vdev)
|
||||
{
|
||||
return dev_name(&vdev->dev);
|
||||
}
|
||||
|
||||
static inline int video_is_unregistered(struct video_device *vdev)
|
||||
{
|
||||
return test_bit(V4L2_FL_UNREGISTERED, &vdev->flags);
|
||||
|
Loading…
Reference in New Issue
Block a user