[media] v4l2: replace try_mbus_fmt by set_fmt
The try_mbus_fmt video op is a duplicate of the pad op. Replace all uses in sub-devices by the set_fmt() pad op. Since try_mbus_fmt and s_mbus_fmt both map to the set_fmt pad op (but with a different 'which' argument), this patch will replace both try_mbus_fmt and s_mbus_fmt by set_fmt. Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com> Cc: Guennadi Liakhovetski <g.liakhovetski@gmx.de> Cc: Jonathan Corbet <corbet@lwn.net> Cc: Kamil Debski <k.debski@samsung.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
此提交包含在:
@@ -335,9 +335,14 @@ static int mt9v011_enum_mbus_code(struct v4l2_subdev *sd,
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int mt9v011_try_mbus_fmt(struct v4l2_subdev *sd, struct v4l2_mbus_framefmt *fmt)
|
||||
static int mt9v011_set_fmt(struct v4l2_subdev *sd,
|
||||
struct v4l2_subdev_pad_config *cfg,
|
||||
struct v4l2_subdev_format *format)
|
||||
{
|
||||
if (fmt->code != MEDIA_BUS_FMT_SGRBG8_1X8)
|
||||
struct v4l2_mbus_framefmt *fmt = &format->format;
|
||||
struct mt9v011 *core = to_mt9v011(sd);
|
||||
|
||||
if (format->pad || fmt->code != MEDIA_BUS_FMT_SGRBG8_1X8)
|
||||
return -EINVAL;
|
||||
|
||||
v4l_bound_align_image(&fmt->width, 48, 639, 1,
|
||||
@@ -345,6 +350,15 @@ static int mt9v011_try_mbus_fmt(struct v4l2_subdev *sd, struct v4l2_mbus_framefm
|
||||
fmt->field = V4L2_FIELD_NONE;
|
||||
fmt->colorspace = V4L2_COLORSPACE_SRGB;
|
||||
|
||||
if (format->which == V4L2_SUBDEV_FORMAT_ACTIVE) {
|
||||
core->width = fmt->width;
|
||||
core->height = fmt->height;
|
||||
|
||||
set_res(sd);
|
||||
} else {
|
||||
cfg->try_fmt = *fmt;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -386,23 +400,6 @@ static int mt9v011_s_parm(struct v4l2_subdev *sd, struct v4l2_streamparm *parms)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int mt9v011_s_mbus_fmt(struct v4l2_subdev *sd, struct v4l2_mbus_framefmt *fmt)
|
||||
{
|
||||
struct mt9v011 *core = to_mt9v011(sd);
|
||||
int rc;
|
||||
|
||||
rc = mt9v011_try_mbus_fmt(sd, fmt);
|
||||
if (rc < 0)
|
||||
return -EINVAL;
|
||||
|
||||
core->width = fmt->width;
|
||||
core->height = fmt->height;
|
||||
|
||||
set_res(sd);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
#ifdef CONFIG_VIDEO_ADV_DEBUG
|
||||
static int mt9v011_g_register(struct v4l2_subdev *sd,
|
||||
struct v4l2_dbg_register *reg)
|
||||
@@ -470,14 +467,13 @@ static const struct v4l2_subdev_core_ops mt9v011_core_ops = {
|
||||
};
|
||||
|
||||
static const struct v4l2_subdev_video_ops mt9v011_video_ops = {
|
||||
.try_mbus_fmt = mt9v011_try_mbus_fmt,
|
||||
.s_mbus_fmt = mt9v011_s_mbus_fmt,
|
||||
.g_parm = mt9v011_g_parm,
|
||||
.s_parm = mt9v011_s_parm,
|
||||
};
|
||||
|
||||
static const struct v4l2_subdev_pad_ops mt9v011_pad_ops = {
|
||||
.enum_mbus_code = mt9v011_enum_mbus_code,
|
||||
.set_fmt = mt9v011_set_fmt,
|
||||
};
|
||||
|
||||
static const struct v4l2_subdev_ops mt9v011_ops = {
|
||||
|
新增問題並參考
封鎖使用者