summaryrefslogtreecommitdiff
path: root/drivers/media/platform/rockchip
diff options
context:
space:
mode:
authorCai YiWei <cyw@rock-chips.com>2019-02-26 17:06:50 +0800
committerTao Huang <huangtao@rock-chips.com>2019-03-01 19:47:09 +0800
commit8f0bbf8ba81d76035e23b3883d90fe51220565a9 (patch)
treeef6b7a7338fcdf5d2f5d445d61283f62d31e3ac5 /drivers/media/platform/rockchip
parentb3e05022d089dbb82734118e66dbf15cae30d7f0 (diff)
media: rockchip: isp1: check for capture S_FMT
Change-Id: I10e75e18cd9f42ac02b4fd0f049851cdf96e8ccf Signed-off-by: Cai YiWei <cyw@rock-chips.com>
Diffstat (limited to 'drivers/media/platform/rockchip')
-rw-r--r--drivers/media/platform/rockchip/isp1/capture.c23
1 files changed, 14 insertions, 9 deletions
diff --git a/drivers/media/platform/rockchip/isp1/capture.c b/drivers/media/platform/rockchip/isp1/capture.c
index 334c75290386..28b759243918 100644
--- a/drivers/media/platform/rockchip/isp1/capture.c
+++ b/drivers/media/platform/rockchip/isp1/capture.c
@@ -1592,7 +1592,7 @@ static int rkisp_init_vb2_queue(struct vb2_queue *q,
return vb2_queue_init(q);
}
-static void rkisp1_set_fmt(struct rkisp1_stream *stream,
+static int rkisp1_set_fmt(struct rkisp1_stream *stream,
struct v4l2_pix_format_mplane *pixm,
bool try)
{
@@ -1605,8 +1605,15 @@ static void rkisp1_set_fmt(struct rkisp1_stream *stream,
unsigned int i;
fmt = find_fmt(stream, pixm->pixelformat);
- if (!fmt)
- fmt = config->fmts;
+ if (!fmt) {
+ v4l2_err(&stream->ispdev->v4l2_dev,
+ "nonsupport pixelformat:%c%c%c%c\n",
+ pixm->pixelformat,
+ pixm->pixelformat >> 8,
+ pixm->pixelformat >> 16,
+ pixm->pixelformat >> 24);
+ return -EINVAL;
+ }
if (stream->id != RKISP1_STREAM_RAW) {
other_stream =
@@ -1686,6 +1693,8 @@ static void rkisp1_set_fmt(struct rkisp1_stream *stream,
stream->id, pixm->width, pixm->height,
stream->out_fmt.width, stream->out_fmt.height);
}
+
+ return 0;
}
static int rkisp1_dma_attach_device(struct rkisp1_device *rkisp1_dev)
@@ -1828,9 +1837,7 @@ static int rkisp1_try_fmt_vid_cap_mplane(struct file *file, void *fh,
{
struct rkisp1_stream *stream = video_drvdata(file);
- rkisp1_set_fmt(stream, &f->fmt.pix_mp, true);
-
- return 0;
+ return rkisp1_set_fmt(stream, &f->fmt.pix_mp, true);
}
static int rkisp1_enum_fmt_vid_cap_mplane(struct file *file, void *priv,
@@ -1861,9 +1868,7 @@ static int rkisp1_s_fmt_vid_cap_mplane(struct file *file,
return -EBUSY;
}
- rkisp1_set_fmt(stream, &f->fmt.pix_mp, false);
-
- return 0;
+ return rkisp1_set_fmt(stream, &f->fmt.pix_mp, false);
}
static int rkisp1_g_fmt_vid_cap_mplane(struct file *file, void *fh,