drm/bridge: tc358768: fix TXTAGOCNT computation
authorFrancesco Dolcini <francesco.dolcini@toradex.com>
Thu, 27 Apr 2023 14:29:32 +0000 (16:29 +0200)
committerRobert Foss <rfoss@kernel.org>
Fri, 5 May 2023 18:11:48 +0000 (20:11 +0200)
Correct computation of TXTAGOCNT register.

This register must be set to a value that ensure that the
TTA-GO period = (4 x TLPX)

with the actual value of TTA-GO being

4 x (TXTAGOCNT + 1) x (HSByteClk cycle)

Fixes: ff1ca6397b1d ("drm/bridge: Add tc358768 driver")
Signed-off-by: Francesco Dolcini <francesco.dolcini@toradex.com>
Reviewed-by: Robert Foss <rfoss@kernel.org>
Signed-off-by: Robert Foss <rfoss@kernel.org>
Link: https://patchwork.freedesktop.org/patch/msgid/20230427142934.55435-8-francesco@dolcini.it
drivers/gpu/drm/bridge/tc358768.c

index e3f456b..d820943 100644 (file)
@@ -796,7 +796,7 @@ static void tc358768_bridge_pre_enable(struct drm_bridge *bridge)
 
        /* TXTAGOCNT[26:16] RXTASURECNT[10:0] */
        val = tc358768_to_ns((lptxcnt + 1) * dsibclk_nsk * 4);
-       val = tc358768_ns_to_cnt(val, dsibclk_nsk) - 1;
+       val = tc358768_ns_to_cnt(val, dsibclk_nsk) / 4 - 1;
        val2 = tc358768_ns_to_cnt(tc358768_to_ns((lptxcnt + 1) * dsibclk_nsk),
                                  dsibclk_nsk) - 2;
        val = val << 16 | val2;