Re: [PATCH] media: ov5675: use group write to update digital gain

Bingbu Cao
2022-01-27T03:20:39Z

Sakari,

I agree with Tomasz, the group write will not cause timing issues, instead it will help
on that. So we did not need to group hold exposure and digital gain along with analog
gain. Driver can not make the policy that the exposure, a-gain and d-gain are applied
together.

On 1/11/22 12:27 PM, Tomasz Figa wrote:
> Hi Sakari,
>
> On Mon, Jan 10, 2022 at 8:32 PM Sakari Ailus
> <sakari.ailus@linux.intel.com> wrote:
>>
>> On Wed, Dec 29, 2021 at 10:00:43AM +0000, Cao, Bingbu wrote:
>>> Hi Sakari,
>>>
>>> Thanks for your review.
>>>
>>> ________________________
>>> BRs,
>>> Bingbu Cao
>>>
>>>> -----Original Message-----
>>>> From: Sakari Ailus <sakari.ailus@linux.intel.com>
>>>> Sent: Wednesday, December 29, 2021 5:42 PM
>>>> To: Cao, Bingbu <bingbu.cao@intel.com>
>>>> Cc: linux-media@vger.kernel.org; Tu, ShawnX <shawnx.tu@intel.com>;
>>>> senozhatsky@chromium.org; tfiga@chromium.org; bingbu.cao@linux.intel.com;
>>>> Yeh, Andy <andy.yeh@intel.com>
>>>> Subject: Re: [PATCH] media: ov5675: use group write to update digital
>>>> gain
>>>>
>>>> Hi Bingbu,
>>>>
>>>> On Wed, Dec 29, 2021 at 04:57:39PM +0800, Bingbu Cao wrote:
>>>>> MWB gain register are used to set gain for each mwb channel mannually.
>>>>> However, it will involve some artifacts at low light environment as
>>>>> gain cannot be applied to each channel synchronously. Update the
>>>>> driver to use group write for digital gain to make the sure RGB
>>>>> digital gain be applied together at frame boundary.
>>>>
>>>> How about the analogue gain and exposure time?
>>>>
>>>> Shouldn't they be applied similarly as well? Adding two more writes
>>>> increases the probability of missing a frame there.
>>>
>>> We did not meet issue related to analog gain as the it was applied by only
>>> 1 reg write, it looks like same issue we found on ov8856, changing to set
>>> digital gain by only 1 global gain write will fix the problem.
>>
>> That device is different in its support for global digital gain. This patch
>> sets the gain for each component separately.
>
> That's not what the patch does. The existing code programs the 3
> per-component registers separately. This patch made it happen under
> one write group. It doesn't increase the likelihood of the frame
> having wrong parameters - given the same timeline, before this patch,
> the frame would just have an even worse, partial gain setting, while
> with this patch it can either have the old or new gain.
>
> Best regards,
> Tomasz
>
>>
>> Adding more writes on a given frame increases the probability of slipping
>> to the following frame. Doing the exposure and gain updates in the same
>> group write would alleviate that a little.
>>
>>>
>>>>
>>>> This is of course a trick since the control framework doesn't really
>>>> support this, but I think this support should be added.
>>>>
>>>> --
>>>> Regards,
>>>>
>>>> Sakari Ailus
>>
>> --
>> Sakari Ailus

--
Best regards,
Bingbu Cao