video: tegra20: dsi: make SOL delay calculation mode independent

Move SOL delay calculation outside of video mode conditions.

Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com>
This commit is contained in:
Svyatoslav Ryhel
2024-12-02 08:08:03 +02:00
parent 785787b7f0
commit aa9fa8c1ad

View File

@@ -712,9 +712,6 @@ static void tegra_dsi_configure(struct udevice *dev,
writel(hact << 16 | hbp, &len->dsi_pkt_len_2_3);
writel(hfp, &len->dsi_pkt_len_4_5);
writel(0x0f0f << 16, &len->dsi_pkt_len_6_7);
/* set SOL delay (for non-burst mode only) */
writel(8 * mul / div, &misc->dsi_sol_delay);
} else {
if (priv->master || priv->slave) {
/*
@@ -734,6 +731,7 @@ static void tegra_dsi_configure(struct udevice *dev,
value = MIPI_DCS_WRITE_MEMORY_START << 8 |
MIPI_DCS_WRITE_MEMORY_CONTINUE;
writel(value, &len->dsi_dcs_cmds);
}
/* set SOL delay */
if (priv->master || priv->slave) {
@@ -752,12 +750,11 @@ static void tegra_dsi_configure(struct udevice *dev,
bclk_ganged = DIV_ROUND_UP(bclk * lanes / 2, lanes);
value = bclk - bclk_ganged + delay + 20;
} else {
/* TODO: revisit for non-ganged mode */
/* set SOL delay (for non-burst mode only) */
value = 8 * mul / div;
}
writel(value, &misc->dsi_sol_delay);
}
if (priv->slave) {
tegra_dsi_configure(priv->slave, mode_flags);