[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <Ztvbd4XqY95YMAZd@atmark-techno.com>
Date: Sat, 7 Sep 2024 13:49:59 +0900
From: Dominique Martinet <dominique.martinet@...ark-techno.com>
To: Frieder Schrempf <frieder@...s.de>
Cc: Adam Ford <aford173@...il.com>, linux-phy@...ts.infradead.org,
linux-imx@....com, festevam@...il.com, frieder.schrempf@...tron.de,
aford@...conembedded.com, Sandor.yu@....com,
Vinod Koul <vkoul@...nel.org>,
Kishon Vijay Abraham I <kishon@...nel.org>,
Marco Felsch <m.felsch@...gutronix.de>,
Lucas Stach <l.stach@...gutronix.de>,
Uwe Kleine-König <u.kleine-koenig@...gutronix.de>,
linux-kernel@...r.kernel.org
Subject: Re: [PATCH V6 4/5] phy: freescale: fsl-samsung-hdmi: Use closest
divider
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
Thank you both!
--
Dominique
Powered by blists - more mailing lists