Re: [PATCH v2 6/8] media: i2c: ds90ub953: Restructure clkout management

From: Tomi Valkeinen
Date: Fri Jul 21 2023 - 09:25:45 EST


On 21/07/2023 13:29, Andy Shevchenko wrote:
On Thu, Jul 20, 2023 at 01:30:37PM +0300, Tomi Valkeinen wrote:
Separate clkout calculations and register writes into two functions:
ub953_calc_clkout_params and ub953_write_clkout_regs, and add a struct
ub953_clkout_data that is used to store the clkout parameters.

This simplifies the clkout management.

...

+struct ub953_clkout_data {
+ u32 hs_div;
+ u32 m;
+ u32 n;

I don't think it makes driver worse. The V4L2 UAPI has similar struct which is
used widely, hence I see no issues in using u32_fract here.

I think it makes sense to use u32_fract in common code. My argument for not using it here is:

- There is no actual functionality that u32_fract brings, so it's really only about field naming
- m and n matches the terms in the HW documentation, making it easier to compare the code and the docs
- This is private to the driver
- I'm (currently) the most likely person to edit the driver, and I would have to check which one that numerator/denominator was again when looking at this part of the code (but maybe I would learn eventually)

So, in my view, the change doesn't really have any pros but does have cons.

That said, it's not a biggie. If others chime in and say it's a good idea to use u32_fract, I'm fine doing that change.

Tomi