summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Tretter <m.tretter@pengutronix.de>2020-01-08 18:36:53 +0100
committerMichael Tretter <m.tretter@pengutronix.de>2020-03-03 17:47:06 +0100
commitb3b66f30f6c4a22d6133fd73d0db509acabe42c1 (patch)
tree435063575c97f1ff1ba8d98528a4e49d84f07e41
parent0e545c9fecdd759e889d356d1abd3eeb88fb3e98 (diff)
downloadlinux-0-day-b3b66f30f6c4a22d6133fd73d0db509acabe42c1.tar.gz
linux-0-day-b3b66f30f6c4a22d6133fd73d0db509acabe42c1.tar.xz
media: allegro: handle dependency of bitrate and bitrate_peak
The peak bitrate must not be smaller than the configured bitrate. Update the other control whenever one of the controls changes to reflect this dependency. Signed-off-by: Michael Tretter <m.tretter@pengutronix.de>
-rw-r--r--drivers/staging/media/allegro-dvt/allegro-core.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/staging/media/allegro-dvt/allegro-core.c b/drivers/staging/media/allegro-dvt/allegro-core.c
index 6a492de52987d..d994a53e73cf5 100644
--- a/drivers/staging/media/allegro-dvt/allegro-core.c
+++ b/drivers/staging/media/allegro-dvt/allegro-core.c
@@ -2423,9 +2423,15 @@ static int allegro_s_ctrl(struct v4l2_ctrl *ctrl)
break;
case V4L2_CID_MPEG_VIDEO_BITRATE:
channel->bitrate = ctrl->val;
+ if (channel->bitrate > channel->bitrate_peak)
+ __v4l2_ctrl_s_ctrl(channel->mpeg_video_bitrate_peak,
+ channel->bitrate);
break;
case V4L2_CID_MPEG_VIDEO_BITRATE_PEAK:
channel->bitrate_peak = ctrl->val;
+ if (channel->bitrate_peak < channel->bitrate)
+ __v4l2_ctrl_s_ctrl(channel->mpeg_video_bitrate,
+ channel->bitrate_peak);
break;
case V4L2_CID_MPEG_VIDEO_H264_CPB_SIZE:
channel->cpb_size = ctrl->val;