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