Hi Chris,

On Tue, 28 Oct 2025 16:17:51 +0000
Chris Brandt <[email protected]> wrote:

> Hi Hugo,
> 
> Thank you again for the review.
> :)
> 
> 
> On Thu, Oct 23, 2025 2:32 PM, Hugo Villeneuve wrote:
> > > +                 if ((b + 1) << a == dsi_div_ab) {
> > > +                         priv->mux_dsi_div_params.dsi_div_a = a;
> > > +                         priv->mux_dsi_div_params.dsi_div_b = b;
> > > +
> > > +                         goto calc_pll_clk;
> > > +                 }
> > > +         }
> > > + }
> >
> > If we arrive at this point, it seems that these values:
> >     priv->mux_dsi_div_params.dsi_div_a
> >     priv->mux_dsi_div_params.dsi_div_b
> >
> > were not initialised by the previous loop. Is this expected? If yes, maybe 
> > a comment would help?

So are the uninitialised values valid at all?

> 
> Actually, I think I want to print out a warning.
> 
> dev_warn(priv->dev, "Failed to calculate DIV_DSI A,B\n");
> 
> I could not find a monitor that would cause this, but it's possible.
> So to be kind to the users, I will print out a message so if something does 
> not work, at least
> they will have an idea what is wrong.

So is it ok to continue in this case?

If yes, then maybe your message could specify: "Failed to calculate
DIV_DSI A,B, using defaults\n" ?


> 
> > > +calc_pll_clk:
> > > + /*
> > > +  * Below conditions must be set for PLL5 parameters:
> > > +  * - REFDIV must be between 1 and 2.
> >
> > I am assuming this means PLL5_POSTDIV_MIN and PLL5_POSTDIV_MAX? If these 
> > macros change, then that mean you would also need to change your comment, 
> > not very practical and error-prone. I would suggest to remove this comment 
> > altogether.
> 
> "REFDIV" is the term used in the hardware manual to reference the signal.
> 
> > > +  * - POSTDIV1/2 must be between 1 and 7.
> > > +  * - INTIN must be between 20 and 320.
> > > +  * - FOUTVCO must be between 800MHz and 3000MHz.
> >
> > Same here.
> 
> While I doubt the hardware design will change, your point is valid that I'm 
> not giving the reader
> any more info than they could get from the code.
> 
> Kind of like the classic source code comment:
> 
>     value = 5;   /* Set value to 5 */
> 
> I'll remove it.

Ok :)


> 
> > +   /* Set defaults since valid clock was not found */
> > +   params->pl5_intin = PLL5_INTIN_DEF;
> > +   params->pl5_fracin = PLL5_FRACIN_DEF;
> > +   params->pl5_refdiv = PLL5_REFDIV_DEF;
> > +   params->pl5_postdiv1 = PLL5_POSTDIV_DEF;
> > +   params->pl5_postdiv2 = PLL5_POSTDIV_DEF;
> 
> I'm going to print out a warning here too.
> 
> dev_warn(priv->dev, "Failed to calculate exact PLL5 settings\n");

Similar to my comment above, would it be a good idea to add something
like "Failed to calculate exact PLL5 settings, using defaults\n" ?

> 
> 
> > > - foutpostdiv_rate = DIV_ROUND_CLOSEST_ULL(foutvco_rate,
> > > -                                          params->pl5_postdiv1 * 
> > > params->pl5_postdiv2);
> > > +
> > > + /* If foutvco is above 1.5GHz, change parent and recalculate */
> >
> > Similar suggestion for hardcoded values in comments, maybe replace "above 
> > 1.5GHz" with "too high"...
> 
> This one I'm OK with because that's the design specification of the hardware 
> IP that's used in all the devices.
> If for some reason they re-design the hardware in future devices, something 
> going to have to change and
> the driver will need to be updated. So we'll deal with it at that point.
> 
> Cheers
> 
> Chris
> 


-- 
Hugo Villeneuve

Reply via email to