mirror of
https://github.com/torvalds/linux.git
synced 2026-05-31 10:33:41 +02:00
media: usb: uvcvideo: Store v4l2_fh pointer in file->private_data
Most V4L2 drivers store the v4l2_fh pointer in file->private_data. The uvcvideo driver instead stores the pointer to the driver-specific structure that embeds the v4l2_fh. Switch to storing the v4l2_fh pointer itself to standardize behaviour across drivers. This also prepares for future refactoring that depends on v4l2_fh being stored in private_data. Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com> Signed-off-by: Hans Verkuil <hverkuil+cisco@kernel.org>
This commit is contained in:
parent
4a538a1c5f
commit
7b6cf051df
|
|
@ -603,14 +603,14 @@ static int uvc_v4l2_open(struct file *file)
|
|||
v4l2_fh_add(&handle->vfh);
|
||||
handle->chain = stream->chain;
|
||||
handle->stream = stream;
|
||||
file->private_data = handle;
|
||||
file->private_data = &handle->vfh;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int uvc_v4l2_release(struct file *file)
|
||||
{
|
||||
struct uvc_fh *handle = file->private_data;
|
||||
struct uvc_fh *handle = to_uvc_fh(file);
|
||||
struct uvc_streaming *stream = handle->stream;
|
||||
|
||||
uvc_dbg(stream->dev, CALLS, "%s\n", __func__);
|
||||
|
|
@ -626,7 +626,7 @@ static int uvc_v4l2_release(struct file *file)
|
|||
static int uvc_ioctl_querycap(struct file *file, void *fh,
|
||||
struct v4l2_capability *cap)
|
||||
{
|
||||
struct uvc_fh *handle = file->private_data;
|
||||
struct uvc_fh *handle = to_uvc_fh(file);
|
||||
struct uvc_video_chain *chain = handle->chain;
|
||||
struct uvc_streaming *stream = handle->stream;
|
||||
|
||||
|
|
@ -1170,7 +1170,7 @@ static int uvc_v4l2_put_xu_query(const struct uvc_xu_control_query *kp,
|
|||
static long uvc_v4l2_compat_ioctl32(struct file *file,
|
||||
unsigned int cmd, unsigned long arg)
|
||||
{
|
||||
struct uvc_fh *handle = file->private_data;
|
||||
struct uvc_fh *handle = to_uvc_fh(file);
|
||||
union {
|
||||
struct uvc_xu_control_mapping xmap;
|
||||
struct uvc_xu_control_query xqry;
|
||||
|
|
@ -1221,7 +1221,7 @@ static long uvc_v4l2_compat_ioctl32(struct file *file,
|
|||
static long uvc_v4l2_unlocked_ioctl(struct file *file,
|
||||
unsigned int cmd, unsigned long arg)
|
||||
{
|
||||
struct uvc_fh *handle = file->private_data;
|
||||
struct uvc_fh *handle = to_uvc_fh(file);
|
||||
unsigned int converted_cmd = v4l2_translate_cmd(cmd);
|
||||
int ret;
|
||||
|
||||
|
|
|
|||
|
|
@ -637,6 +637,11 @@ struct uvc_fh {
|
|||
unsigned int pending_async_ctrls;
|
||||
};
|
||||
|
||||
static inline struct uvc_fh *to_uvc_fh(struct file *filp)
|
||||
{
|
||||
return container_of(filp->private_data, struct uvc_fh, vfh);
|
||||
}
|
||||
|
||||
/* ------------------------------------------------------------------------
|
||||
* Debugging, printing and logging
|
||||
*/
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user