Re: [PATCH V6 4/5] phy: freescale: fsl-samsung-hdmi: Use closest divider

From: Adam Ford
Date: Mon Sep 09 2024 - 08:46:59 EST


On Fri, Sep 6, 2024 at 11:50 PM Dominique Martinet
<dominique.martinet@xxxxxxxxxxxxxxxxx> wrote:
>
> Frieder Schrempf wrote on Fri, Sep 06, 2024 at 10:28:59PM +0200:
> > I think I managed to get behind the calculation of the fractional-n divider
> > parameters. I came up with a spreadsheet to calculate the output frequency
> > from existing register values and I have a crude Python script that can be
> > used to search for parameters for a given pixel clock.
> >
> > I tested this with three different non-CEA-861 pixel clock values (supported
> > by my HDMI USB grabber) for which the integer PLL yielded deviations >0.5%.
> > With the new LUT entries those modes work now.
> >
> > I will clean things up a bit and then share what I have. I hope that this
> > allows anyone to calculate parameters for their non-standard displays if
> > required.
> >
> > If someone feels extra motivated they could try to calculate the fractional
> > parameters at runtime. However I'm not sure that this is feasible. The
> > numerical computation of a large number of parameters is quite heavy and
> > it's probably not easy to strip the algorithm down to something that can be
> > run on the target without too much overhead.
>
> I think keeping the LUT is perfectly fine if we know where the values
> come from - perhaps having your python program in a comment above the
> LUT so anyone can check the values match?
>
> My main problem with the LUT is just that -- there's no way of
> checking. If the values come from somewhere sensible and can be verified
> I think it makes sense to keep it to fill the holes where the integer
> divider isn't enough.
>
> > > This way, the calling function can determine if it needs to be
> > > multiplied by 5. I haven't fully determined how the fractional
> > > calculator determines what frequency it wants for a target frequency,
> > > and using the values for P, M and S from the fractional divider
> > > doesn't seem to always yield 5x like they did for the table entries
> > > using the integer divider.
> >
> > For what I found out the factor of 5 always applies. For the integer part
> > and also for the fractional part.
>
> In that case I'm definitely in favor of moving it inside the function as
> part of the calculation

I'll do a V7 with the 5x factor moved into the integer calculator.
I'll also try to rearrange the flow a bit as you requested. Depending
on how much changes, I may strip off any s-o-b notes.
I was traveling over the weekend and I'm likely traveling the next
weekends, so I will try to get to it this week before I go, but I
can't promise anything quickly.

adam

>
> Thank you both!
> --
> Dominique