Hi Fabio, Am Dienstag, den 02.09.2014, 10:31 -0300 schrieb Fabio Estevam: > For debug purposes it is useful to know how far away the generated pixelclock is > from the desired rate, so print the amount of error. > > After adding this patch and with debug enabled we have: > > imx-ipuv3 2400000.ipu: disp 0: panel size = 1920 x 1080 > imx-ipuv3 2400000.ipu: Clocks: IPU 264000000Hz DI 24000000Hz Needed 138500000Hz > imx-ipuv3 2400000.ipu: IPU clock can give 132000000 with divider 2, error -4.3% > imx-ipuv3 2400000.ipu: Want 138500000Hz IPU 264000000Hz DI 138500000Hz using DI, 138500000Hz, error 0.0% > imx-ipuv3 2400000.ipu: disp 1: panel size = 1024 x 768 > imx-ipuv3 2400000.ipu: Clocks: IPU 264000000Hz DI 64999999Hz Needed 65000000Hz > imx-ipuv3 2400000.ipu: Want 65000000Hz IPU 264000000Hz DI 64999999Hz using DI, 64999999Hz, error 0.9% As this example shows ... [...] > - dev_dbg(di->ipu->dev, "Want %luHz IPU %luHz DI %luHz using %s, %luHz\n", > + error = (clk_get_rate(di->clk_di_pixel) / (clkgen0 >> 4)) / (sig->pixelclock / 1000); > + > + dev_dbg(di->ipu->dev, "Want %luHz IPU %luHz DI %luHz using %s, %luHz, error %d.%u%%\n", > sig->pixelclock, > clk_get_rate(di->clk_ipu), > clk_get_rate(di->clk_di), > clk == di->clk_di ? "DI" : "IPU", > - clk_get_rate(di->clk_di_pixel) / (clkgen0 >> 4)); > + clk_get_rate(di->clk_di_pixel) / (clkgen0 >> 4), > + (signed)(error - 1000) / 10, error % 10); ... this only works for positive deviations. If error < 1000, error % 10 will return the wrong value and for 990 < error < 1000 the sign is missing. Also you are losing a lot of presicion. the real error in the example is more like 0.000002%, so I wonder how useful this really is. regards Philipp _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/dri-devel