Commit 49b20d98 authored by Hans Verkuil's avatar Hans Verkuil Committed by Mauro Carvalho Chehab

media: imx274: fix frame interval handling

1) the numerator and/or denominator might be 0, in that case
   fall back to the default frame interval. This is per the spec
   and this caused a v4l2-compliance failure.

2) the updated frame interval wasn't returned in the s_frame_interval
   subdev op.
Signed-off-by: default avatarHans Verkuil <hverkuil-cisco@xs4all.nl>
Reviewed-by: default avatarLuca Ceresoli <luca@lucaceresoli.net>
Signed-off-by: default avatarSakari Ailus <sakari.ailus@linux.intel.com>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab+huawei@kernel.org>
parent 52438c44
......@@ -1235,6 +1235,8 @@ static int imx274_s_frame_interval(struct v4l2_subdev *sd,
ret = imx274_set_frame_interval(imx274, fi->interval);
if (!ret) {
fi->interval = imx274->frame_interval;
/*
* exposure time range is decided by frame interval
* need to update it after frame interval changes
......@@ -1730,9 +1732,9 @@ static int imx274_set_frame_interval(struct stimx274 *priv,
__func__, frame_interval.numerator,
frame_interval.denominator);
if (frame_interval.numerator == 0) {
err = -EINVAL;
goto fail;
if (frame_interval.numerator == 0 || frame_interval.denominator == 0) {
frame_interval.denominator = IMX274_DEF_FRAME_RATE;
frame_interval.numerator = 1;
}
req_frame_rate = (u32)(frame_interval.denominator
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment