You've already forked linux-apfs
mirror of
https://github.com/linux-apfs/linux-apfs.git
synced 2026-05-01 15:00:59 -07:00
[media] v4l2: replace video op g_mbus_fmt by pad op get_fmt
The g_mbus_fmt video op is a duplicate of the pad op. Replace all uses by the get_fmt pad op and remove the video op. Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com> Acked-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de> Acked-by: Prabhakar Lad <prabhakar.csengg@gmail.com> Cc: Kamil Debski <k.debski@samsung.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
This commit is contained in:
committed by
Mauro Carvalho Chehab
parent
ebcff5fce6
commit
da298c6d98
@@ -273,11 +273,16 @@ static int adv7170_enum_mbus_code(struct v4l2_subdev *sd,
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int adv7170_g_fmt(struct v4l2_subdev *sd,
|
||||
struct v4l2_mbus_framefmt *mf)
|
||||
static int adv7170_get_fmt(struct v4l2_subdev *sd,
|
||||
struct v4l2_subdev_pad_config *cfg,
|
||||
struct v4l2_subdev_format *format)
|
||||
{
|
||||
struct v4l2_mbus_framefmt *mf = &format->format;
|
||||
u8 val = adv7170_read(sd, 0x7);
|
||||
|
||||
if (format->pad)
|
||||
return -EINVAL;
|
||||
|
||||
if ((val & 0x40) == (1 << 6))
|
||||
mf->code = MEDIA_BUS_FMT_UYVY8_1X16;
|
||||
else
|
||||
@@ -323,11 +328,11 @@ static const struct v4l2_subdev_video_ops adv7170_video_ops = {
|
||||
.s_std_output = adv7170_s_std_output,
|
||||
.s_routing = adv7170_s_routing,
|
||||
.s_mbus_fmt = adv7170_s_fmt,
|
||||
.g_mbus_fmt = adv7170_g_fmt,
|
||||
};
|
||||
|
||||
static const struct v4l2_subdev_pad_ops adv7170_pad_ops = {
|
||||
.enum_mbus_code = adv7170_enum_mbus_code,
|
||||
.get_fmt = adv7170_get_fmt,
|
||||
};
|
||||
|
||||
static const struct v4l2_subdev_ops adv7170_ops = {
|
||||
|
||||
@@ -311,11 +311,16 @@ static int adv7175_enum_mbus_code(struct v4l2_subdev *sd,
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int adv7175_g_fmt(struct v4l2_subdev *sd,
|
||||
struct v4l2_mbus_framefmt *mf)
|
||||
static int adv7175_get_fmt(struct v4l2_subdev *sd,
|
||||
struct v4l2_subdev_pad_config *cfg,
|
||||
struct v4l2_subdev_format *format)
|
||||
{
|
||||
struct v4l2_mbus_framefmt *mf = &format->format;
|
||||
u8 val = adv7175_read(sd, 0x7);
|
||||
|
||||
if (format->pad)
|
||||
return -EINVAL;
|
||||
|
||||
if ((val & 0x40) == (1 << 6))
|
||||
mf->code = MEDIA_BUS_FMT_UYVY8_1X16;
|
||||
else
|
||||
@@ -376,11 +381,11 @@ static const struct v4l2_subdev_video_ops adv7175_video_ops = {
|
||||
.s_std_output = adv7175_s_std_output,
|
||||
.s_routing = adv7175_s_routing,
|
||||
.s_mbus_fmt = adv7175_s_fmt,
|
||||
.g_mbus_fmt = adv7175_g_fmt,
|
||||
};
|
||||
|
||||
static const struct v4l2_subdev_pad_ops adv7175_pad_ops = {
|
||||
.enum_mbus_code = adv7175_enum_mbus_code,
|
||||
.get_fmt = adv7175_get_fmt,
|
||||
};
|
||||
|
||||
static const struct v4l2_subdev_ops adv7175_ops = {
|
||||
|
||||
@@ -460,12 +460,16 @@ static int adv7183_s_mbus_fmt(struct v4l2_subdev *sd,
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int adv7183_g_mbus_fmt(struct v4l2_subdev *sd,
|
||||
struct v4l2_mbus_framefmt *fmt)
|
||||
static int adv7183_get_fmt(struct v4l2_subdev *sd,
|
||||
struct v4l2_subdev_pad_config *cfg,
|
||||
struct v4l2_subdev_format *format)
|
||||
{
|
||||
struct adv7183 *decoder = to_adv7183(sd);
|
||||
|
||||
*fmt = decoder->fmt;
|
||||
if (format->pad)
|
||||
return -EINVAL;
|
||||
|
||||
format->format = decoder->fmt;
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -517,12 +521,12 @@ static const struct v4l2_subdev_video_ops adv7183_video_ops = {
|
||||
.g_input_status = adv7183_g_input_status,
|
||||
.try_mbus_fmt = adv7183_try_mbus_fmt,
|
||||
.s_mbus_fmt = adv7183_s_mbus_fmt,
|
||||
.g_mbus_fmt = adv7183_g_mbus_fmt,
|
||||
.s_stream = adv7183_s_stream,
|
||||
};
|
||||
|
||||
static const struct v4l2_subdev_pad_ops adv7183_pad_ops = {
|
||||
.enum_mbus_code = adv7183_enum_mbus_code,
|
||||
.get_fmt = adv7183_get_fmt,
|
||||
};
|
||||
|
||||
static const struct v4l2_subdev_ops adv7183_ops = {
|
||||
|
||||
@@ -1878,11 +1878,16 @@ static int adv7842_enum_mbus_code(struct v4l2_subdev *sd,
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int adv7842_g_mbus_fmt(struct v4l2_subdev *sd,
|
||||
struct v4l2_mbus_framefmt *fmt)
|
||||
static int adv7842_fill_fmt(struct v4l2_subdev *sd,
|
||||
struct v4l2_subdev_pad_config *cfg,
|
||||
struct v4l2_subdev_format *format)
|
||||
{
|
||||
struct v4l2_mbus_framefmt *fmt = &format->format;
|
||||
struct adv7842_state *state = to_state(sd);
|
||||
|
||||
if (format->pad)
|
||||
return -EINVAL;
|
||||
|
||||
fmt->width = state->timings.bt.width;
|
||||
fmt->height = state->timings.bt.height;
|
||||
fmt->code = MEDIA_BUS_FMT_FIXED;
|
||||
@@ -2810,9 +2815,6 @@ static const struct v4l2_subdev_video_ops adv7842_video_ops = {
|
||||
.s_dv_timings = adv7842_s_dv_timings,
|
||||
.g_dv_timings = adv7842_g_dv_timings,
|
||||
.query_dv_timings = adv7842_query_dv_timings,
|
||||
.g_mbus_fmt = adv7842_g_mbus_fmt,
|
||||
.try_mbus_fmt = adv7842_g_mbus_fmt,
|
||||
.s_mbus_fmt = adv7842_g_mbus_fmt,
|
||||
};
|
||||
|
||||
static const struct v4l2_subdev_pad_ops adv7842_pad_ops = {
|
||||
@@ -2821,6 +2823,8 @@ static const struct v4l2_subdev_pad_ops adv7842_pad_ops = {
|
||||
.enum_dv_timings = adv7842_enum_dv_timings,
|
||||
.dv_timings_cap = adv7842_dv_timings_cap,
|
||||
.enum_mbus_code = adv7842_enum_mbus_code,
|
||||
.get_fmt = adv7842_fill_fmt,
|
||||
.set_fmt = adv7842_fill_fmt,
|
||||
};
|
||||
|
||||
static const struct v4l2_subdev_ops adv7842_ops = {
|
||||
|
||||
@@ -93,12 +93,17 @@ static int ak881x_s_register(struct v4l2_subdev *sd,
|
||||
}
|
||||
#endif
|
||||
|
||||
static int ak881x_try_g_mbus_fmt(struct v4l2_subdev *sd,
|
||||
struct v4l2_mbus_framefmt *mf)
|
||||
static int ak881x_fill_fmt(struct v4l2_subdev *sd,
|
||||
struct v4l2_subdev_pad_config *cfg,
|
||||
struct v4l2_subdev_format *format)
|
||||
{
|
||||
struct v4l2_mbus_framefmt *mf = &format->format;
|
||||
struct i2c_client *client = v4l2_get_subdevdata(sd);
|
||||
struct ak881x *ak881x = to_ak881x(client);
|
||||
|
||||
if (format->pad)
|
||||
return -EINVAL;
|
||||
|
||||
v4l_bound_align_image(&mf->width, 0, 720, 2,
|
||||
&mf->height, 0, ak881x->lines, 1, 0);
|
||||
mf->field = V4L2_FIELD_INTERLACED;
|
||||
@@ -108,16 +113,6 @@ static int ak881x_try_g_mbus_fmt(struct v4l2_subdev *sd,
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int ak881x_s_mbus_fmt(struct v4l2_subdev *sd,
|
||||
struct v4l2_mbus_framefmt *mf)
|
||||
{
|
||||
if (mf->field != V4L2_FIELD_INTERLACED ||
|
||||
mf->code != MEDIA_BUS_FMT_YUYV8_2X8)
|
||||
return -EINVAL;
|
||||
|
||||
return ak881x_try_g_mbus_fmt(sd, mf);
|
||||
}
|
||||
|
||||
static int ak881x_enum_mbus_code(struct v4l2_subdev *sd,
|
||||
struct v4l2_subdev_pad_config *cfg,
|
||||
struct v4l2_subdev_mbus_code_enum *code)
|
||||
@@ -212,9 +207,6 @@ static struct v4l2_subdev_core_ops ak881x_subdev_core_ops = {
|
||||
};
|
||||
|
||||
static struct v4l2_subdev_video_ops ak881x_subdev_video_ops = {
|
||||
.s_mbus_fmt = ak881x_s_mbus_fmt,
|
||||
.g_mbus_fmt = ak881x_try_g_mbus_fmt,
|
||||
.try_mbus_fmt = ak881x_try_g_mbus_fmt,
|
||||
.cropcap = ak881x_cropcap,
|
||||
.s_std_output = ak881x_s_std_output,
|
||||
.s_stream = ak881x_s_stream,
|
||||
@@ -222,6 +214,8 @@ static struct v4l2_subdev_video_ops ak881x_subdev_video_ops = {
|
||||
|
||||
static const struct v4l2_subdev_pad_ops ak881x_subdev_pad_ops = {
|
||||
.enum_mbus_code = ak881x_enum_mbus_code,
|
||||
.set_fmt = ak881x_fill_fmt,
|
||||
.get_fmt = ak881x_fill_fmt,
|
||||
};
|
||||
|
||||
static struct v4l2_subdev_ops ak881x_subdev_ops = {
|
||||
|
||||
@@ -203,10 +203,15 @@ static int ml86v7667_enum_mbus_code(struct v4l2_subdev *sd,
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int ml86v7667_mbus_fmt(struct v4l2_subdev *sd,
|
||||
struct v4l2_mbus_framefmt *fmt)
|
||||
static int ml86v7667_fill_fmt(struct v4l2_subdev *sd,
|
||||
struct v4l2_subdev_pad_config *cfg,
|
||||
struct v4l2_subdev_format *format)
|
||||
{
|
||||
struct ml86v7667_priv *priv = to_ml86v7667(sd);
|
||||
struct v4l2_mbus_framefmt *fmt = &format->format;
|
||||
|
||||
if (format->pad)
|
||||
return -EINVAL;
|
||||
|
||||
fmt->code = MEDIA_BUS_FMT_YUYV8_2X8;
|
||||
fmt->colorspace = V4L2_COLORSPACE_SMPTE170M;
|
||||
@@ -280,14 +285,13 @@ static struct v4l2_subdev_video_ops ml86v7667_subdev_video_ops = {
|
||||
.s_std = ml86v7667_s_std,
|
||||
.querystd = ml86v7667_querystd,
|
||||
.g_input_status = ml86v7667_g_input_status,
|
||||
.try_mbus_fmt = ml86v7667_mbus_fmt,
|
||||
.g_mbus_fmt = ml86v7667_mbus_fmt,
|
||||
.s_mbus_fmt = ml86v7667_mbus_fmt,
|
||||
.g_mbus_config = ml86v7667_g_mbus_config,
|
||||
};
|
||||
|
||||
static const struct v4l2_subdev_pad_ops ml86v7667_subdev_pad_ops = {
|
||||
.enum_mbus_code = ml86v7667_enum_mbus_code,
|
||||
.get_fmt = ml86v7667_fill_fmt,
|
||||
.set_fmt = ml86v7667_fill_fmt,
|
||||
};
|
||||
|
||||
static struct v4l2_subdev_core_ops ml86v7667_subdev_core_ops = {
|
||||
|
||||
@@ -554,10 +554,16 @@ static int saa6752hs_init(struct v4l2_subdev *sd, u32 leading_null_bytes)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int saa6752hs_g_mbus_fmt(struct v4l2_subdev *sd, struct v4l2_mbus_framefmt *f)
|
||||
static int saa6752hs_get_fmt(struct v4l2_subdev *sd,
|
||||
struct v4l2_subdev_pad_config *cfg,
|
||||
struct v4l2_subdev_format *format)
|
||||
{
|
||||
struct v4l2_mbus_framefmt *f = &format->format;
|
||||
struct saa6752hs_state *h = to_state(sd);
|
||||
|
||||
if (format->pad)
|
||||
return -EINVAL;
|
||||
|
||||
if (h->video_format == SAA6752HS_VF_UNKNOWN)
|
||||
h->video_format = SAA6752HS_VF_D1;
|
||||
f->width = v4l2_format_table[h->video_format].fmt.pix.width;
|
||||
@@ -649,12 +655,16 @@ static const struct v4l2_subdev_video_ops saa6752hs_video_ops = {
|
||||
.s_std = saa6752hs_s_std,
|
||||
.s_mbus_fmt = saa6752hs_s_mbus_fmt,
|
||||
.try_mbus_fmt = saa6752hs_try_mbus_fmt,
|
||||
.g_mbus_fmt = saa6752hs_g_mbus_fmt,
|
||||
};
|
||||
|
||||
static const struct v4l2_subdev_pad_ops saa6752hs_pad_ops = {
|
||||
.get_fmt = saa6752hs_get_fmt,
|
||||
};
|
||||
|
||||
static const struct v4l2_subdev_ops saa6752hs_ops = {
|
||||
.core = &saa6752hs_core_ops,
|
||||
.video = &saa6752hs_video_ops,
|
||||
.pad = &saa6752hs_pad_ops,
|
||||
};
|
||||
|
||||
static int saa6752hs_probe(struct i2c_client *client,
|
||||
|
||||
@@ -191,14 +191,19 @@ static int imx074_s_fmt(struct v4l2_subdev *sd,
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int imx074_g_fmt(struct v4l2_subdev *sd,
|
||||
struct v4l2_mbus_framefmt *mf)
|
||||
static int imx074_get_fmt(struct v4l2_subdev *sd,
|
||||
struct v4l2_subdev_pad_config *cfg,
|
||||
struct v4l2_subdev_format *format)
|
||||
{
|
||||
struct v4l2_mbus_framefmt *mf = &format->format;
|
||||
struct i2c_client *client = v4l2_get_subdevdata(sd);
|
||||
struct imx074 *priv = to_imx074(client);
|
||||
|
||||
const struct imx074_datafmt *fmt = priv->fmt;
|
||||
|
||||
if (format->pad)
|
||||
return -EINVAL;
|
||||
|
||||
mf->code = fmt->code;
|
||||
mf->colorspace = fmt->colorspace;
|
||||
mf->width = IMX074_WIDTH;
|
||||
@@ -278,7 +283,6 @@ static int imx074_g_mbus_config(struct v4l2_subdev *sd,
|
||||
static struct v4l2_subdev_video_ops imx074_subdev_video_ops = {
|
||||
.s_stream = imx074_s_stream,
|
||||
.s_mbus_fmt = imx074_s_fmt,
|
||||
.g_mbus_fmt = imx074_g_fmt,
|
||||
.try_mbus_fmt = imx074_try_fmt,
|
||||
.g_crop = imx074_g_crop,
|
||||
.cropcap = imx074_cropcap,
|
||||
@@ -291,6 +295,7 @@ static struct v4l2_subdev_core_ops imx074_subdev_core_ops = {
|
||||
|
||||
static const struct v4l2_subdev_pad_ops imx074_subdev_pad_ops = {
|
||||
.enum_mbus_code = imx074_enum_mbus_code,
|
||||
.get_fmt = imx074_get_fmt,
|
||||
};
|
||||
|
||||
static struct v4l2_subdev_ops imx074_subdev_ops = {
|
||||
|
||||
@@ -250,11 +250,16 @@ static int mt9m001_cropcap(struct v4l2_subdev *sd, struct v4l2_cropcap *a)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int mt9m001_g_fmt(struct v4l2_subdev *sd,
|
||||
struct v4l2_mbus_framefmt *mf)
|
||||
static int mt9m001_get_fmt(struct v4l2_subdev *sd,
|
||||
struct v4l2_subdev_pad_config *cfg,
|
||||
struct v4l2_subdev_format *format)
|
||||
{
|
||||
struct i2c_client *client = v4l2_get_subdevdata(sd);
|
||||
struct mt9m001 *mt9m001 = to_mt9m001(client);
|
||||
struct v4l2_mbus_framefmt *mf = &format->format;
|
||||
|
||||
if (format->pad)
|
||||
return -EINVAL;
|
||||
|
||||
mf->width = mt9m001->rect.width;
|
||||
mf->height = mt9m001->rect.height;
|
||||
@@ -613,7 +618,6 @@ static int mt9m001_s_mbus_config(struct v4l2_subdev *sd,
|
||||
static struct v4l2_subdev_video_ops mt9m001_subdev_video_ops = {
|
||||
.s_stream = mt9m001_s_stream,
|
||||
.s_mbus_fmt = mt9m001_s_fmt,
|
||||
.g_mbus_fmt = mt9m001_g_fmt,
|
||||
.try_mbus_fmt = mt9m001_try_fmt,
|
||||
.s_crop = mt9m001_s_crop,
|
||||
.g_crop = mt9m001_g_crop,
|
||||
@@ -628,6 +632,7 @@ static struct v4l2_subdev_sensor_ops mt9m001_subdev_sensor_ops = {
|
||||
|
||||
static const struct v4l2_subdev_pad_ops mt9m001_subdev_pad_ops = {
|
||||
.enum_mbus_code = mt9m001_enum_mbus_code,
|
||||
.get_fmt = mt9m001_get_fmt,
|
||||
};
|
||||
|
||||
static struct v4l2_subdev_ops mt9m001_subdev_ops = {
|
||||
|
||||
@@ -447,11 +447,16 @@ static int mt9m111_cropcap(struct v4l2_subdev *sd, struct v4l2_cropcap *a)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int mt9m111_g_fmt(struct v4l2_subdev *sd,
|
||||
struct v4l2_mbus_framefmt *mf)
|
||||
static int mt9m111_get_fmt(struct v4l2_subdev *sd,
|
||||
struct v4l2_subdev_pad_config *cfg,
|
||||
struct v4l2_subdev_format *format)
|
||||
{
|
||||
struct v4l2_mbus_framefmt *mf = &format->format;
|
||||
struct mt9m111 *mt9m111 = container_of(sd, struct mt9m111, subdev);
|
||||
|
||||
if (format->pad)
|
||||
return -EINVAL;
|
||||
|
||||
mf->width = mt9m111->width;
|
||||
mf->height = mt9m111->height;
|
||||
mf->code = mt9m111->fmt->code;
|
||||
@@ -867,7 +872,6 @@ static int mt9m111_g_mbus_config(struct v4l2_subdev *sd,
|
||||
|
||||
static struct v4l2_subdev_video_ops mt9m111_subdev_video_ops = {
|
||||
.s_mbus_fmt = mt9m111_s_fmt,
|
||||
.g_mbus_fmt = mt9m111_g_fmt,
|
||||
.try_mbus_fmt = mt9m111_try_fmt,
|
||||
.s_crop = mt9m111_s_crop,
|
||||
.g_crop = mt9m111_g_crop,
|
||||
@@ -877,6 +881,7 @@ static struct v4l2_subdev_video_ops mt9m111_subdev_video_ops = {
|
||||
|
||||
static const struct v4l2_subdev_pad_ops mt9m111_subdev_pad_ops = {
|
||||
.enum_mbus_code = mt9m111_enum_mbus_code,
|
||||
.get_fmt = mt9m111_get_fmt,
|
||||
};
|
||||
|
||||
static struct v4l2_subdev_ops mt9m111_subdev_ops = {
|
||||
|
||||
@@ -337,12 +337,17 @@ static int mt9t031_cropcap(struct v4l2_subdev *sd, struct v4l2_cropcap *a)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int mt9t031_g_fmt(struct v4l2_subdev *sd,
|
||||
struct v4l2_mbus_framefmt *mf)
|
||||
static int mt9t031_get_fmt(struct v4l2_subdev *sd,
|
||||
struct v4l2_subdev_pad_config *cfg,
|
||||
struct v4l2_subdev_format *format)
|
||||
{
|
||||
struct v4l2_mbus_framefmt *mf = &format->format;
|
||||
struct i2c_client *client = v4l2_get_subdevdata(sd);
|
||||
struct mt9t031 *mt9t031 = to_mt9t031(client);
|
||||
|
||||
if (format->pad)
|
||||
return -EINVAL;
|
||||
|
||||
mf->width = mt9t031->rect.width / mt9t031->xskip;
|
||||
mf->height = mt9t031->rect.height / mt9t031->yskip;
|
||||
mf->code = MEDIA_BUS_FMT_SBGGR10_1X10;
|
||||
@@ -714,7 +719,6 @@ static int mt9t031_s_mbus_config(struct v4l2_subdev *sd,
|
||||
static struct v4l2_subdev_video_ops mt9t031_subdev_video_ops = {
|
||||
.s_stream = mt9t031_s_stream,
|
||||
.s_mbus_fmt = mt9t031_s_fmt,
|
||||
.g_mbus_fmt = mt9t031_g_fmt,
|
||||
.try_mbus_fmt = mt9t031_try_fmt,
|
||||
.s_crop = mt9t031_s_crop,
|
||||
.g_crop = mt9t031_g_crop,
|
||||
@@ -729,6 +733,7 @@ static struct v4l2_subdev_sensor_ops mt9t031_subdev_sensor_ops = {
|
||||
|
||||
static const struct v4l2_subdev_pad_ops mt9t031_subdev_pad_ops = {
|
||||
.enum_mbus_code = mt9t031_enum_mbus_code,
|
||||
.get_fmt = mt9t031_get_fmt,
|
||||
};
|
||||
|
||||
static struct v4l2_subdev_ops mt9t031_subdev_ops = {
|
||||
|
||||
@@ -904,12 +904,17 @@ static int mt9t112_s_crop(struct v4l2_subdev *sd, const struct v4l2_crop *a)
|
||||
return mt9t112_set_params(priv, rect, priv->format->code);
|
||||
}
|
||||
|
||||
static int mt9t112_g_fmt(struct v4l2_subdev *sd,
|
||||
struct v4l2_mbus_framefmt *mf)
|
||||
static int mt9t112_get_fmt(struct v4l2_subdev *sd,
|
||||
struct v4l2_subdev_pad_config *cfg,
|
||||
struct v4l2_subdev_format *format)
|
||||
{
|
||||
struct v4l2_mbus_framefmt *mf = &format->format;
|
||||
struct i2c_client *client = v4l2_get_subdevdata(sd);
|
||||
struct mt9t112_priv *priv = to_mt9t112(client);
|
||||
|
||||
if (format->pad)
|
||||
return -EINVAL;
|
||||
|
||||
mf->width = priv->frame.width;
|
||||
mf->height = priv->frame.height;
|
||||
mf->colorspace = priv->format->colorspace;
|
||||
@@ -1011,7 +1016,6 @@ static int mt9t112_s_mbus_config(struct v4l2_subdev *sd,
|
||||
|
||||
static struct v4l2_subdev_video_ops mt9t112_subdev_video_ops = {
|
||||
.s_stream = mt9t112_s_stream,
|
||||
.g_mbus_fmt = mt9t112_g_fmt,
|
||||
.s_mbus_fmt = mt9t112_s_fmt,
|
||||
.try_mbus_fmt = mt9t112_try_fmt,
|
||||
.cropcap = mt9t112_cropcap,
|
||||
@@ -1023,6 +1027,7 @@ static struct v4l2_subdev_video_ops mt9t112_subdev_video_ops = {
|
||||
|
||||
static const struct v4l2_subdev_pad_ops mt9t112_subdev_pad_ops = {
|
||||
.enum_mbus_code = mt9t112_enum_mbus_code,
|
||||
.get_fmt = mt9t112_get_fmt,
|
||||
};
|
||||
|
||||
/************************************************************************
|
||||
|
||||
@@ -375,12 +375,17 @@ static int mt9v022_cropcap(struct v4l2_subdev *sd, struct v4l2_cropcap *a)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int mt9v022_g_fmt(struct v4l2_subdev *sd,
|
||||
struct v4l2_mbus_framefmt *mf)
|
||||
static int mt9v022_get_fmt(struct v4l2_subdev *sd,
|
||||
struct v4l2_subdev_pad_config *cfg,
|
||||
struct v4l2_subdev_format *format)
|
||||
{
|
||||
struct v4l2_mbus_framefmt *mf = &format->format;
|
||||
struct i2c_client *client = v4l2_get_subdevdata(sd);
|
||||
struct mt9v022 *mt9v022 = to_mt9v022(client);
|
||||
|
||||
if (format->pad)
|
||||
return -EINVAL;
|
||||
|
||||
mf->width = mt9v022->rect.width;
|
||||
mf->height = mt9v022->rect.height;
|
||||
mf->code = mt9v022->fmt->code;
|
||||
@@ -841,7 +846,6 @@ static int mt9v022_s_mbus_config(struct v4l2_subdev *sd,
|
||||
static struct v4l2_subdev_video_ops mt9v022_subdev_video_ops = {
|
||||
.s_stream = mt9v022_s_stream,
|
||||
.s_mbus_fmt = mt9v022_s_fmt,
|
||||
.g_mbus_fmt = mt9v022_g_fmt,
|
||||
.try_mbus_fmt = mt9v022_try_fmt,
|
||||
.s_crop = mt9v022_s_crop,
|
||||
.g_crop = mt9v022_g_crop,
|
||||
@@ -856,6 +860,7 @@ static struct v4l2_subdev_sensor_ops mt9v022_subdev_sensor_ops = {
|
||||
|
||||
static const struct v4l2_subdev_pad_ops mt9v022_subdev_pad_ops = {
|
||||
.enum_mbus_code = mt9v022_enum_mbus_code,
|
||||
.get_fmt = mt9v022_get_fmt,
|
||||
};
|
||||
|
||||
static struct v4l2_subdev_ops mt9v022_subdev_ops = {
|
||||
|
||||
@@ -845,12 +845,17 @@ err:
|
||||
return ret;
|
||||
}
|
||||
|
||||
static int ov2640_g_fmt(struct v4l2_subdev *sd,
|
||||
struct v4l2_mbus_framefmt *mf)
|
||||
static int ov2640_get_fmt(struct v4l2_subdev *sd,
|
||||
struct v4l2_subdev_pad_config *cfg,
|
||||
struct v4l2_subdev_format *format)
|
||||
{
|
||||
struct v4l2_mbus_framefmt *mf = &format->format;
|
||||
struct i2c_client *client = v4l2_get_subdevdata(sd);
|
||||
struct ov2640_priv *priv = to_ov2640(client);
|
||||
|
||||
if (format->pad)
|
||||
return -EINVAL;
|
||||
|
||||
if (!priv->win) {
|
||||
u32 width = SVGA_WIDTH, height = SVGA_HEIGHT;
|
||||
priv->win = ov2640_select_win(&width, &height);
|
||||
@@ -1032,7 +1037,6 @@ static int ov2640_g_mbus_config(struct v4l2_subdev *sd,
|
||||
|
||||
static struct v4l2_subdev_video_ops ov2640_subdev_video_ops = {
|
||||
.s_stream = ov2640_s_stream,
|
||||
.g_mbus_fmt = ov2640_g_fmt,
|
||||
.s_mbus_fmt = ov2640_s_fmt,
|
||||
.try_mbus_fmt = ov2640_try_fmt,
|
||||
.cropcap = ov2640_cropcap,
|
||||
@@ -1042,6 +1046,7 @@ static struct v4l2_subdev_video_ops ov2640_subdev_video_ops = {
|
||||
|
||||
static const struct v4l2_subdev_pad_ops ov2640_subdev_pad_ops = {
|
||||
.enum_mbus_code = ov2640_enum_mbus_code,
|
||||
.get_fmt = ov2640_get_fmt,
|
||||
};
|
||||
|
||||
static struct v4l2_subdev_ops ov2640_subdev_ops = {
|
||||
|
||||
@@ -822,14 +822,19 @@ static int ov5642_s_fmt(struct v4l2_subdev *sd,
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int ov5642_g_fmt(struct v4l2_subdev *sd,
|
||||
struct v4l2_mbus_framefmt *mf)
|
||||
static int ov5642_get_fmt(struct v4l2_subdev *sd,
|
||||
struct v4l2_subdev_pad_config *cfg,
|
||||
struct v4l2_subdev_format *format)
|
||||
{
|
||||
struct v4l2_mbus_framefmt *mf = &format->format;
|
||||
struct i2c_client *client = v4l2_get_subdevdata(sd);
|
||||
struct ov5642 *priv = to_ov5642(client);
|
||||
|
||||
const struct ov5642_datafmt *fmt = priv->fmt;
|
||||
|
||||
if (format->pad)
|
||||
return -EINVAL;
|
||||
|
||||
mf->code = fmt->code;
|
||||
mf->colorspace = fmt->colorspace;
|
||||
mf->width = priv->crop_rect.width;
|
||||
@@ -941,7 +946,6 @@ static int ov5642_s_power(struct v4l2_subdev *sd, int on)
|
||||
|
||||
static struct v4l2_subdev_video_ops ov5642_subdev_video_ops = {
|
||||
.s_mbus_fmt = ov5642_s_fmt,
|
||||
.g_mbus_fmt = ov5642_g_fmt,
|
||||
.try_mbus_fmt = ov5642_try_fmt,
|
||||
.s_crop = ov5642_s_crop,
|
||||
.g_crop = ov5642_g_crop,
|
||||
@@ -951,6 +955,7 @@ static struct v4l2_subdev_video_ops ov5642_subdev_video_ops = {
|
||||
|
||||
static const struct v4l2_subdev_pad_ops ov5642_subdev_pad_ops = {
|
||||
.enum_mbus_code = ov5642_enum_mbus_code,
|
||||
.get_fmt = ov5642_get_fmt,
|
||||
};
|
||||
|
||||
static struct v4l2_subdev_core_ops ov5642_subdev_core_ops = {
|
||||
|
||||
@@ -499,12 +499,17 @@ static int ov6650_cropcap(struct v4l2_subdev *sd, struct v4l2_cropcap *a)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int ov6650_g_fmt(struct v4l2_subdev *sd,
|
||||
struct v4l2_mbus_framefmt *mf)
|
||||
static int ov6650_get_fmt(struct v4l2_subdev *sd,
|
||||
struct v4l2_subdev_pad_config *cfg,
|
||||
struct v4l2_subdev_format *format)
|
||||
{
|
||||
struct v4l2_mbus_framefmt *mf = &format->format;
|
||||
struct i2c_client *client = v4l2_get_subdevdata(sd);
|
||||
struct ov6650 *priv = to_ov6650(client);
|
||||
|
||||
if (format->pad)
|
||||
return -EINVAL;
|
||||
|
||||
mf->width = priv->rect.width >> priv->half_scale;
|
||||
mf->height = priv->rect.height >> priv->half_scale;
|
||||
mf->code = priv->code;
|
||||
@@ -930,7 +935,6 @@ static int ov6650_s_mbus_config(struct v4l2_subdev *sd,
|
||||
|
||||
static struct v4l2_subdev_video_ops ov6650_video_ops = {
|
||||
.s_stream = ov6650_s_stream,
|
||||
.g_mbus_fmt = ov6650_g_fmt,
|
||||
.s_mbus_fmt = ov6650_s_fmt,
|
||||
.try_mbus_fmt = ov6650_try_fmt,
|
||||
.cropcap = ov6650_cropcap,
|
||||
@@ -944,6 +948,7 @@ static struct v4l2_subdev_video_ops ov6650_video_ops = {
|
||||
|
||||
static const struct v4l2_subdev_pad_ops ov6650_pad_ops = {
|
||||
.enum_mbus_code = ov6650_enum_mbus_code,
|
||||
.get_fmt = ov6650_get_fmt,
|
||||
};
|
||||
|
||||
static struct v4l2_subdev_ops ov6650_subdev_ops = {
|
||||
|
||||
@@ -876,11 +876,16 @@ static int ov772x_cropcap(struct v4l2_subdev *sd, struct v4l2_cropcap *a)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int ov772x_g_fmt(struct v4l2_subdev *sd,
|
||||
struct v4l2_mbus_framefmt *mf)
|
||||
static int ov772x_get_fmt(struct v4l2_subdev *sd,
|
||||
struct v4l2_subdev_pad_config *cfg,
|
||||
struct v4l2_subdev_format *format)
|
||||
{
|
||||
struct v4l2_mbus_framefmt *mf = &format->format;
|
||||
struct ov772x_priv *priv = to_ov772x(sd);
|
||||
|
||||
if (format->pad)
|
||||
return -EINVAL;
|
||||
|
||||
mf->width = priv->win->rect.width;
|
||||
mf->height = priv->win->rect.height;
|
||||
mf->code = priv->cfmt->code;
|
||||
@@ -1017,7 +1022,6 @@ static int ov772x_g_mbus_config(struct v4l2_subdev *sd,
|
||||
|
||||
static struct v4l2_subdev_video_ops ov772x_subdev_video_ops = {
|
||||
.s_stream = ov772x_s_stream,
|
||||
.g_mbus_fmt = ov772x_g_fmt,
|
||||
.s_mbus_fmt = ov772x_s_fmt,
|
||||
.try_mbus_fmt = ov772x_try_fmt,
|
||||
.cropcap = ov772x_cropcap,
|
||||
@@ -1027,6 +1031,7 @@ static struct v4l2_subdev_video_ops ov772x_subdev_video_ops = {
|
||||
|
||||
static const struct v4l2_subdev_pad_ops ov772x_subdev_pad_ops = {
|
||||
.enum_mbus_code = ov772x_enum_mbus_code,
|
||||
.get_fmt = ov772x_get_fmt,
|
||||
};
|
||||
|
||||
static struct v4l2_subdev_ops ov772x_subdev_ops = {
|
||||
|
||||
@@ -598,12 +598,17 @@ static int rj54n1_cropcap(struct v4l2_subdev *sd, struct v4l2_cropcap *a)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int rj54n1_g_fmt(struct v4l2_subdev *sd,
|
||||
struct v4l2_mbus_framefmt *mf)
|
||||
static int rj54n1_get_fmt(struct v4l2_subdev *sd,
|
||||
struct v4l2_subdev_pad_config *cfg,
|
||||
struct v4l2_subdev_format *format)
|
||||
{
|
||||
struct v4l2_mbus_framefmt *mf = &format->format;
|
||||
struct i2c_client *client = v4l2_get_subdevdata(sd);
|
||||
struct rj54n1 *rj54n1 = to_rj54n1(client);
|
||||
|
||||
if (format->pad)
|
||||
return -EINVAL;
|
||||
|
||||
mf->code = rj54n1->fmt->code;
|
||||
mf->colorspace = rj54n1->fmt->colorspace;
|
||||
mf->field = V4L2_FIELD_NONE;
|
||||
@@ -1251,7 +1256,6 @@ static int rj54n1_s_mbus_config(struct v4l2_subdev *sd,
|
||||
static struct v4l2_subdev_video_ops rj54n1_subdev_video_ops = {
|
||||
.s_stream = rj54n1_s_stream,
|
||||
.s_mbus_fmt = rj54n1_s_fmt,
|
||||
.g_mbus_fmt = rj54n1_g_fmt,
|
||||
.try_mbus_fmt = rj54n1_try_fmt,
|
||||
.g_crop = rj54n1_g_crop,
|
||||
.s_crop = rj54n1_s_crop,
|
||||
@@ -1262,6 +1266,7 @@ static struct v4l2_subdev_video_ops rj54n1_subdev_video_ops = {
|
||||
|
||||
static const struct v4l2_subdev_pad_ops rj54n1_subdev_pad_ops = {
|
||||
.enum_mbus_code = rj54n1_enum_mbus_code,
|
||||
.get_fmt = rj54n1_get_fmt,
|
||||
};
|
||||
|
||||
static struct v4l2_subdev_ops rj54n1_subdev_ops = {
|
||||
|
||||
@@ -691,12 +691,17 @@ static int tw9910_cropcap(struct v4l2_subdev *sd, struct v4l2_cropcap *a)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int tw9910_g_fmt(struct v4l2_subdev *sd,
|
||||
struct v4l2_mbus_framefmt *mf)
|
||||
static int tw9910_get_fmt(struct v4l2_subdev *sd,
|
||||
struct v4l2_subdev_pad_config *cfg,
|
||||
struct v4l2_subdev_format *format)
|
||||
{
|
||||
struct v4l2_mbus_framefmt *mf = &format->format;
|
||||
struct i2c_client *client = v4l2_get_subdevdata(sd);
|
||||
struct tw9910_priv *priv = to_tw9910(client);
|
||||
|
||||
if (format->pad)
|
||||
return -EINVAL;
|
||||
|
||||
if (!priv->scale) {
|
||||
priv->scale = tw9910_select_norm(priv->norm, 640, 480);
|
||||
if (!priv->scale)
|
||||
@@ -881,7 +886,6 @@ static struct v4l2_subdev_video_ops tw9910_subdev_video_ops = {
|
||||
.s_std = tw9910_s_std,
|
||||
.g_std = tw9910_g_std,
|
||||
.s_stream = tw9910_s_stream,
|
||||
.g_mbus_fmt = tw9910_g_fmt,
|
||||
.s_mbus_fmt = tw9910_s_fmt,
|
||||
.try_mbus_fmt = tw9910_try_fmt,
|
||||
.cropcap = tw9910_cropcap,
|
||||
@@ -893,6 +897,7 @@ static struct v4l2_subdev_video_ops tw9910_subdev_video_ops = {
|
||||
|
||||
static const struct v4l2_subdev_pad_ops tw9910_subdev_pad_ops = {
|
||||
.enum_mbus_code = tw9910_enum_mbus_code,
|
||||
.get_fmt = tw9910_get_fmt,
|
||||
};
|
||||
|
||||
static struct v4l2_subdev_ops tw9910_subdev_ops = {
|
||||
|
||||
@@ -483,15 +483,19 @@ static int sr030pc30_enum_mbus_code(struct v4l2_subdev *sd,
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int sr030pc30_g_fmt(struct v4l2_subdev *sd,
|
||||
struct v4l2_mbus_framefmt *mf)
|
||||
static int sr030pc30_get_fmt(struct v4l2_subdev *sd,
|
||||
struct v4l2_subdev_pad_config *cfg,
|
||||
struct v4l2_subdev_format *format)
|
||||
{
|
||||
struct v4l2_mbus_framefmt *mf;
|
||||
struct sr030pc30_info *info = to_sr030pc30(sd);
|
||||
int ret;
|
||||
|
||||
if (!mf)
|
||||
if (!format || format->pad)
|
||||
return -EINVAL;
|
||||
|
||||
mf = &format->format;
|
||||
|
||||
if (!info->curr_win || !info->curr_fmt) {
|
||||
ret = sr030pc30_set_params(sd);
|
||||
if (ret)
|
||||
@@ -639,13 +643,13 @@ static const struct v4l2_subdev_core_ops sr030pc30_core_ops = {
|
||||
};
|
||||
|
||||
static const struct v4l2_subdev_video_ops sr030pc30_video_ops = {
|
||||
.g_mbus_fmt = sr030pc30_g_fmt,
|
||||
.s_mbus_fmt = sr030pc30_s_fmt,
|
||||
.try_mbus_fmt = sr030pc30_try_fmt,
|
||||
};
|
||||
|
||||
static const struct v4l2_subdev_pad_ops sr030pc30_pad_ops = {
|
||||
.enum_mbus_code = sr030pc30_enum_mbus_code,
|
||||
.get_fmt = sr030pc30_get_fmt,
|
||||
};
|
||||
|
||||
static const struct v4l2_subdev_ops sr030pc30_ops = {
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user