media: drivers/media: don't set pix->priv = 0
The priv field of struct v4l2_pix_format shouldn't be set by drivers, it's set by the v4l2 core instead to V4L2_PIX_FMT_PRIV_MAGIC. Drop this from the few media drivers that still do this. Note that the gspca patch is slightly more involved since some of the sub-gspca drivers use the priv field internally. Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> [hverkuil-cisco@xs4all.nl: fix clash in gspca between priv arg and priv variable] Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
This commit is contained in:

committed by
Mauro Carvalho Chehab

parent
7708065f5d
commit
b61789f53d
@@ -1027,15 +1027,15 @@ static int vidioc_enum_fmt_vid_cap(struct file *file, void *priv,
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int vidioc_g_fmt_vid_cap(struct file *file, void *priv,
|
||||
struct v4l2_format *fmt)
|
||||
static int vidioc_g_fmt_vid_cap(struct file *file, void *_priv,
|
||||
struct v4l2_format *fmt)
|
||||
{
|
||||
struct gspca_dev *gspca_dev = video_drvdata(file);
|
||||
u32 priv = fmt->fmt.pix.priv;
|
||||
|
||||
fmt->fmt.pix = gspca_dev->pixfmt;
|
||||
/* some drivers use priv internally, zero it before giving it back to
|
||||
the core */
|
||||
fmt->fmt.pix.priv = 0;
|
||||
/* some drivers use priv internally, so keep the original value */
|
||||
fmt->fmt.pix.priv = priv;
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -1070,27 +1070,27 @@ static int try_fmt_vid_cap(struct gspca_dev *gspca_dev,
|
||||
fmt->fmt.pix.height = h;
|
||||
gspca_dev->sd_desc->try_fmt(gspca_dev, fmt);
|
||||
}
|
||||
/* some drivers use priv internally, zero it before giving it back to
|
||||
the core */
|
||||
fmt->fmt.pix.priv = 0;
|
||||
return mode; /* used when s_fmt */
|
||||
}
|
||||
|
||||
static int vidioc_try_fmt_vid_cap(struct file *file,
|
||||
void *priv,
|
||||
struct v4l2_format *fmt)
|
||||
static int vidioc_try_fmt_vid_cap(struct file *file, void *_priv,
|
||||
struct v4l2_format *fmt)
|
||||
{
|
||||
struct gspca_dev *gspca_dev = video_drvdata(file);
|
||||
u32 priv = fmt->fmt.pix.priv;
|
||||
|
||||
if (try_fmt_vid_cap(gspca_dev, fmt) < 0)
|
||||
return -EINVAL;
|
||||
/* some drivers use priv internally, so keep the original value */
|
||||
fmt->fmt.pix.priv = priv;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int vidioc_s_fmt_vid_cap(struct file *file, void *priv,
|
||||
struct v4l2_format *fmt)
|
||||
static int vidioc_s_fmt_vid_cap(struct file *file, void *_priv,
|
||||
struct v4l2_format *fmt)
|
||||
{
|
||||
struct gspca_dev *gspca_dev = video_drvdata(file);
|
||||
u32 priv = fmt->fmt.pix.priv;
|
||||
int mode;
|
||||
|
||||
if (vb2_is_busy(&gspca_dev->queue))
|
||||
@@ -1106,6 +1106,8 @@ static int vidioc_s_fmt_vid_cap(struct file *file, void *priv,
|
||||
gspca_dev->pixfmt = fmt->fmt.pix;
|
||||
else
|
||||
gspca_dev->pixfmt = gspca_dev->cam.cam_mode[mode];
|
||||
/* some drivers use priv internally, so keep the original value */
|
||||
fmt->fmt.pix.priv = priv;
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user