Re: [PATCH] drm/omap: Migrate minimum FCK/PCK ratio from Kconfig to dts

From: Tomi Valkeinen
Date: Mon Sep 30 2019 - 02:45:33 EST


Hi,

On 27/09/2019 18:47, Tomi Valkeinen wrote:
On 27/09/2019 18:37, Tero Kristo wrote:

If you can provide details about what clock framework / driver does wrong (sample clk_set_xyz call sequence, expected results via clk_get_xyz, and what fails), I can take a look at it. Just reporting arbitrary display driver issues I won't be able to debug at all (I don't have access to any of the displays, nor do I want to waste time debugging them without absolutely no knowledge whatsoever.)

I used your hack patches to allow changing rates via debugfs. And set dss1_alwon_fck_3430es2 to 27000000 or 27870967. The end result was that DSS gets some very high clock from dss1_alwon_fck_3430es2, as the frame rate jumps to many hundreds fps.

So, these numbers are not real, but to give the idea what I saw. Running first with 50 MHz, I can see, say, 40 fps. Then I set the clock to 30 MHz, and fps dropped to, say, 30fps, as expected with lower clock. Then I set the clock to 27MHz (or the other one), expecting a bit lower fps, but instead I saw hundreds of fps.

I don't know if there's any other way to observe the wrong clock rate but have the dss enabled and running kmstest or similar. I can help you set that up next week, should be trivial. You don't need a display for that.

Here's how to reproduce. I have the attached patches. Three of them are the clk-debug ones, and one of mine to make it easy to test without a display, and without underflow flood halting the device. There are on top of v5.3. Kernel config also attached.

kmstest is from kms++ project (https://github.com/tomba/kmsxx). It should be straightforward to compile, but kmstest binary is also included in TI's rootfs.

I boot up, and run this in one terminal:

# kmstest -c dvi -r 640x480 --flip

It shows ~60 fps, as expected:

Connector 0: fps 60.499982, slowest 16.72 ms

In another terminal:

# cd /debug/clk/dss1_alwon_fck_3430es2/
# cat clk_rate
50823530
# echo 30000000 > clk_rate

Now with lower clock, the fps dropped as expected:

Connector 0: fps 35.468961, slowest 28.41 ms

Then:

# echo 27000000 > clk_rate

And fps goes through the roof and underflows start to come:

Connector 0: fps 514.734527, slowest 2.11 ms

I don't know what exactly goes on here, but 514 fps matches quite exactly the PLL/2 rate:

864000000/2/2/((640+16+96+48)*(480+10+2+33)) = 514.2857142857143

(The second /2 there is DSS's internal pclk divider)

Tomi

--
Texas Instruments Finland Oy, Porkkalankatu 22, 00180 Helsinki.
Y-tunnus/Business ID: 0615521-4. Kotipaikka/Domicile: Helsinki