Program Cmtg Sync to Port Sync. Set before enabling the timing generator.
While cmtg start running this bit will be cleared.

Signed-off-by: Animesh Manna <[email protected]>
---
 drivers/gpu/drm/i915/display/intel_cmtg.c      | 3 +++
 drivers/gpu/drm/i915/display/intel_cmtg_regs.h | 2 ++
 2 files changed, 5 insertions(+)

diff --git a/drivers/gpu/drm/i915/display/intel_cmtg.c 
b/drivers/gpu/drm/i915/display/intel_cmtg.c
index 0a804554f16d..d5793842815f 100644
--- a/drivers/gpu/drm/i915/display/intel_cmtg.c
+++ b/drivers/gpu/drm/i915/display/intel_cmtg.c
@@ -274,4 +274,7 @@ void intel_cmtg_enable(const struct intel_crtc_state 
*crtc_state)
 
        /* Program CMTG MN */
        intel_cpu_cmtg_transcoder_set_m_n(crtc_state);
+
+       /* Program Cmtg Sync to Port Sync, TRANS_CMTG_CTL */
+       intel_de_rmw(display, TRANS_CMTG_CTL(cpu_transcoder), 
CMTG_SYNC_TO_PORT, CMTG_SYNC_TO_PORT);
 }
diff --git a/drivers/gpu/drm/i915/display/intel_cmtg_regs.h 
b/drivers/gpu/drm/i915/display/intel_cmtg_regs.h
index 1bbdb66ee587..aace1490a741 100644
--- a/drivers/gpu/drm/i915/display/intel_cmtg_regs.h
+++ b/drivers/gpu/drm/i915/display/intel_cmtg_regs.h
@@ -24,7 +24,9 @@ enum cmtg {
 
 #define TRANS_CMTG_CTL_A               _MMIO(0x6fa88)
 #define TRANS_CMTG_CTL_B               _MMIO(0x6fb88)
+#define TRANS_CMTG_CTL(id)             _MMIO(0x6fa88 + (id) * 0x100)
 #define  CMTG_ENABLE                   REG_BIT(31)
+#define  CMTG_SYNC_TO_PORT             REG_BIT(29)
 
 #define TRANS_HTOTAL_CMTG(id)          _MMIO(0x6F000 + (id) * 0x100)
 #define TRANS_HBLANK_CMTG(id)          _MMIO(0x6F004 + (id) * 0x100)
-- 
2.29.0

Reply via email to