From d23a615de0a1fbf5040b10b98f33fbb79f1741d7 Mon Sep 17 00:00:00 2001 From: Algea Cao Date: Fri, 12 Aug 2022 17:59:13 +0800 Subject: [PATCH] drm/bridge: synopsys: dw-hdmi-qp: Send VSI once per frame Signed-off-by: Algea Cao Change-Id: I7ae4aab3d9f705182e34ee9755d55575382b6318 --- drivers/gpu/drm/bridge/synopsys/dw-hdmi-qp.c | 3 +++ drivers/gpu/drm/bridge/synopsys/dw-hdmi-qp.h | 1 + 2 files changed, 4 insertions(+) diff --git a/drivers/gpu/drm/bridge/synopsys/dw-hdmi-qp.c b/drivers/gpu/drm/bridge/synopsys/dw-hdmi-qp.c index 8b3cd7f28881..1c4f4419325a 100644 --- a/drivers/gpu/drm/bridge/synopsys/dw-hdmi-qp.c +++ b/drivers/gpu/drm/bridge/synopsys/dw-hdmi-qp.c @@ -1186,6 +1186,7 @@ static void hdmi_config_vendor_specific_infoframe(struct dw_hdmi_qp *hdmi, ssize_t err; int i, reg; + hdmi_modb(hdmi, 0, PKTSCHED_VSI_TX_EN, PKTSCHED_PKT_EN); err = drm_hdmi_vendor_infoframe_from_display_mode(&frame, connector, mode); if (err < 0) @@ -1226,6 +1227,8 @@ static void hdmi_config_vendor_specific_infoframe(struct dw_hdmi_qp *hdmi, } hdmi_writel(hdmi, 0, PKT_VSI_CONTENTS7); + + hdmi_modb(hdmi, 0, PKTSCHED_VSI_FIELDRATE, PKTSCHED_PKT_CONFIG1); hdmi_modb(hdmi, PKTSCHED_VSI_TX_EN, PKTSCHED_VSI_TX_EN, PKTSCHED_PKT_EN); } diff --git a/drivers/gpu/drm/bridge/synopsys/dw-hdmi-qp.h b/drivers/gpu/drm/bridge/synopsys/dw-hdmi-qp.h index 036a2855f603..225bfaa69701 100644 --- a/drivers/gpu/drm/bridge/synopsys/dw-hdmi-qp.h +++ b/drivers/gpu/drm/bridge/synopsys/dw-hdmi-qp.h @@ -197,6 +197,7 @@ #define PKTSCHED_PRQUEUE2_CONFIG2 0xa94 #define PKTSCHED_PKT_CONFIG0 0xa98 #define PKTSCHED_PKT_CONFIG1 0xa9c +#define PKTSCHED_VSI_FIELDRATE BIT(14) #define PKTSCHED_DRMI_FIELDRATE BIT(13) #define PKTSCHED_AVI_FIELDRATE BIT(12) #define PKTSCHED_PKT_CONFIG2 0xaa0