media: vimc: cap: check v4l2_fill_pixfmt return value
[ Upstream commit 77ae46e11df5c96bb4582633851f838f5d954df4 ] v4l2_fill_pixfmt() returns -EINVAL if the pixelformat used as parameter is invalid or if the user is trying to use a multiplanar format with the singleplanar API. Currently, the vimc_cap_try_fmt_vid_cap() returns such value, but vimc_cap_s_fmt_vid_cap() is ignoring it. Fix that and returns an error value if vimc_cap_try_fmt_vid_cap() has failed. Signed-off-by: André Almeida <andrealmeid@collabora.com> Suggested-by: Helen Koike <helen.koike@collabora.com> Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl> Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org> Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
parent
493a15ad47
commit
a315ea1cec
@ -131,12 +131,15 @@ static int vimc_cap_s_fmt_vid_cap(struct file *file, void *priv,
|
||||
struct v4l2_format *f)
|
||||
{
|
||||
struct vimc_cap_device *vcap = video_drvdata(file);
|
||||
int ret;
|
||||
|
||||
/* Do not change the format while stream is on */
|
||||
if (vb2_is_busy(&vcap->queue))
|
||||
return -EBUSY;
|
||||
|
||||
vimc_cap_try_fmt_vid_cap(file, priv, f);
|
||||
ret = vimc_cap_try_fmt_vid_cap(file, priv, f);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
dev_dbg(vcap->dev, "%s: format update: "
|
||||
"old:%dx%d (0x%x, %d, %d, %d, %d) "
|
||||
|
Loading…
x
Reference in New Issue
Block a user