media: vivid: fix gain when autogain is on
authorHans Verkuil <hverkuil@xs4all.nl>
Fri, 29 Jun 2018 09:40:41 +0000 (05:40 -0400)
committerMauro Carvalho Chehab <mchehab+samsung@kernel.org>
Wed, 4 Jul 2018 12:18:33 +0000 (08:18 -0400)
In the vivid driver you want gain to continuous change while autogain
is on. However, dev->jiffies_vid_cap doesn't actually change. It probably
did in the past, but changes in the code caused this to be a fixed value
that is only set when you start streaming.

Replace it by jiffies, which is always changing.

[mchehab@kernel.org: use jiffies_to_msecs() instead of dividing by HZ]

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
drivers/media/platform/vivid/vivid-ctrls.c

index 6b0bfa0..5429193 100644 (file)
@@ -295,7 +295,7 @@ static int vivid_user_vid_g_volatile_ctrl(struct v4l2_ctrl *ctrl)
 
        switch (ctrl->id) {
        case V4L2_CID_AUTOGAIN:
-               dev->gain->val = dev->jiffies_vid_cap & 0xff;
+               dev->gain->val = (jiffies_to_msecs(jiffies) / 1000) & 0xff;
                break;
        }
        return 0;