Message ID | b7ae30af-dcaa-f8ef-4171-e73cb0107884@xs4all.nl (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Em Fri, 29 Jun 2018 11:40:41 +0200 Hans Verkuil <hverkuil@xs4all.nl> escreveu: > 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. > > Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com> > --- > diff --git a/drivers/media/platform/vivid/vivid-ctrls.c b/drivers/media/platform/vivid/vivid-ctrls.c > index 6b0bfa091592..6eb8ad7fb12c 100644 > --- a/drivers/media/platform/vivid/vivid-ctrls.c > +++ b/drivers/media/platform/vivid/vivid-ctrls.c > @@ -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 / HZ) & 0xff; Manipulating jiffies directly like the above is not a good idea. Better to use, instead: dev->gain->val = (jiffies_to_msecs(jiffies) / 1000) & 0xff; I'll change the code when applying the patch. Thanks, Mauro
On 04/07/18 14:16, Mauro Carvalho Chehab wrote: > Em Fri, 29 Jun 2018 11:40:41 +0200 > Hans Verkuil <hverkuil@xs4all.nl> escreveu: > >> 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. >> >> Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com> >> --- >> diff --git a/drivers/media/platform/vivid/vivid-ctrls.c b/drivers/media/platform/vivid/vivid-ctrls.c >> index 6b0bfa091592..6eb8ad7fb12c 100644 >> --- a/drivers/media/platform/vivid/vivid-ctrls.c >> +++ b/drivers/media/platform/vivid/vivid-ctrls.c >> @@ -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 / HZ) & 0xff; > > Manipulating jiffies directly like the above is not a good idea. Why not? There are HZ jiffies in one second, so this changes the gain value once a second. Regards, Hans > > Better to use, instead: > > dev->gain->val = (jiffies_to_msecs(jiffies) / 1000) & 0xff; > > I'll change the code when applying the patch. > > > Thanks, > Mauro >
diff --git a/drivers/media/platform/vivid/vivid-ctrls.c b/drivers/media/platform/vivid/vivid-ctrls.c index 6b0bfa091592..6eb8ad7fb12c 100644 --- a/drivers/media/platform/vivid/vivid-ctrls.c +++ b/drivers/media/platform/vivid/vivid-ctrls.c @@ -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 / HZ) & 0xff; break; } return 0;
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. Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com> ---