]> git.baikalelectronics.ru Git - kernel.git/commit
drm: bridge/dw_hdmi: replace CTS calculation for the ACR
authorRussell King <rmk+kernel@arm.linux.org.uk>
Wed, 22 Jul 2015 15:54:37 +0000 (16:54 +0100)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Fri, 9 Oct 2015 16:21:21 +0000 (17:21 +0100)
commit72aa3a280e4d68350dde714751b1cb5be39a26da
tree67ada3df9e4736c00eaa0cc9038b2ca26728c04f
parentb88eb4c8b5418f58cc3a8ce70a284b74b0952155
drm: bridge/dw_hdmi: replace CTS calculation for the ACR

Given the TDMS clock, audio sample rate, and the N parameter, we can
calculate the CTS value for the audio clock regenerator (ACR) using the
following calculation given in the HDMI specification:

CTS = ftdms * N / (128 * fs)

The specification says that the CTS value is an average value, which is
true if the source hardware measures it.  Where source hardware needs it
to be programmed, it is particularly difficult to alternate between two
values correctly to ensure that we achieve a correct "average"
fractional value at the sink.

Also, there's the problem that our "ftdms" is not a fully accurate
value; it is rounded to a kHz value.  This introduces an unnecessary
(and harmless) fractional value into the above equation for combinations
like 148.5MHz/1.001 for 44100Hz - we still calculate the correct CTS
value.

Tested-by: Fabio Estevam <fabio.estevam@freescale.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
drivers/gpu/drm/bridge/dw_hdmi.c