disp: msm: sde: program read pointer after configuring vsync_counter_en

Program the read pointer after configuring the tearcheck registers.
The read pointer register should be configured after VSYNC_COUNTER_EN
is set as per hw programming sequence.

Change-Id: Idc410867aa92760b43117552b00914481c0ba6d3
Signed-off-by: Jayaprakash Madisetty <quic_jmadiset@quicinc.com>
Dieser Commit ist enthalten in:
Jayaprakash Madisetty
2023-09-21 15:43:36 +05:30
Ursprung 75727e2f3a
Commit 29852fa715

Datei anzeigen

@@ -763,9 +763,6 @@ static int sde_hw_intf_setup_te_config(struct sde_hw_intf *intf,
*/
spin_lock(&tearcheck_spinlock);
val = te->start_pos + te->sync_threshold_start + 1;
if (intf->cap->features & BIT(SDE_INTF_TE_32BIT))
SDE_REG_WRITE(c, INTF_TEAR_SYNC_WRCOUNT_EXT, (val >> 16));
SDE_REG_WRITE(c, INTF_TEAR_SYNC_WRCOUNT, (val & 0xffff));
SDE_REG_WRITE(c, INTF_TEAR_SYNC_CONFIG_VSYNC, cfg);
wmb(); /* disable vsync counter before updating single buffer registers */
SDE_REG_WRITE(c, INTF_TEAR_SYNC_CONFIG_HEIGHT, te->sync_cfg_height);
@@ -783,6 +780,11 @@ static int sde_hw_intf_setup_te_config(struct sde_hw_intf *intf,
(te->sync_threshold_start & 0xffff)));
cfg |= BIT(19); /* VSYNC_COUNTER_EN */
SDE_REG_WRITE(c, INTF_TEAR_SYNC_CONFIG_VSYNC, cfg);
wmb(); /* ensure vsync_counter_en is written */
if (intf->cap->features & BIT(SDE_INTF_TE_32BIT))
SDE_REG_WRITE(c, INTF_TEAR_SYNC_WRCOUNT_EXT, (val >> 16));
SDE_REG_WRITE(c, INTF_TEAR_SYNC_WRCOUNT, (val & 0xffff));
spin_unlock(&tearcheck_spinlock);
return 0;