[media] v4l2-subdev: add support for the new enum_frame_size 'which' field

Support the new 'which' field in the enum_frame_size ops. Most drivers do not
need to be changed since they always returns the same enumeration regardless
of the 'which' field.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Acked-by: Lad, Prabhakar <prabhakar.csengg@gmail.com>
Tested-by: Lad, Prabhakar <prabhakar.csengg@gmail.com>
Acked-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Acked-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
Acked-by: Andrzej Hajda <a.hajda@samsung.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
This commit is contained in:
Hans Verkuil
2015-03-04 01:47:58 -08:00
committed by Mauro Carvalho Chehab
부모 3f1ccf16f3
커밋 5778e749c1
21개의 변경된 파일63개의 추가작업 그리고 46개의 파일을 삭제

파일 보기

@@ -1251,6 +1251,7 @@ static int s5c73m3_oif_enum_frame_size(struct v4l2_subdev *sd,
struct v4l2_subdev_pad_config *cfg,
struct v4l2_subdev_frame_size_enum *fse)
{
struct s5c73m3 *state = oif_sd_to_s5c73m3(sd);
int idx;
if (fse->pad == OIF_SOURCE_PAD) {
@@ -1260,11 +1261,25 @@ static int s5c73m3_oif_enum_frame_size(struct v4l2_subdev *sd,
switch (fse->code) {
case S5C73M3_JPEG_FMT:
case S5C73M3_ISP_FMT: {
struct v4l2_mbus_framefmt *mf =
v4l2_subdev_get_try_format(sd, cfg, OIF_ISP_PAD);
unsigned w, h;
fse->max_width = fse->min_width = mf->width;
fse->max_height = fse->min_height = mf->height;
if (fse->which == V4L2_SUBDEV_FORMAT_TRY) {
struct v4l2_mbus_framefmt *mf;
mf = v4l2_subdev_get_try_format(sd, cfg,
OIF_ISP_PAD);
w = mf->width;
h = mf->height;
} else {
const struct s5c73m3_frame_size *fs;
fs = state->oif_pix_size[RES_ISP];
w = fs->width;
h = fs->height;
}
fse->max_width = fse->min_width = w;
fse->max_height = fse->min_height = h;
return 0;
}
default: