[PATCH v3 1/2] drm/bridge: ite-it66121: Set TX mode in the .atomic_enable callback
From: Javier Martinez Canillas
Date: Tue May 12 2026 - 09:41:00 EST
The HDMI transmission mode set and AVI infoframes enable are done in the
.mode_set callback, but it is more correct to do this in .atomic_enable.
Because the information about the sink type is in the struct drm_connector
display_info.is_hdmi and this might not be available when the .mode_set
callback is executed.
Currently the driver is not checking display info to determine whether the
mode has to be set to HDMI or DVI, but this is a bug that will be fixed by
a follow-up change.
Signed-off-by: Javier Martinez Canillas <javierm@xxxxxxxxxx>
---
(no changes since v1)
drivers/gpu/drm/bridge/ite-it66121.c | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)
diff --git a/drivers/gpu/drm/bridge/ite-it66121.c b/drivers/gpu/drm/bridge/ite-it66121.c
index 19a027d75b61..648ca50712df 100644
--- a/drivers/gpu/drm/bridge/ite-it66121.c
+++ b/drivers/gpu/drm/bridge/ite-it66121.c
@@ -669,6 +669,22 @@ static int it66121_set_mute(struct it66121_ctx *ctx, bool mute)
IT66121_PKT_GEN_CTRL_ON | IT66121_PKT_GEN_CTRL_RPT);
}
+static void it66121_set_tx_mode(struct it66121_ctx *ctx)
+{
+ mutex_lock(&ctx->lock);
+
+ /* Enable AVI infoframe */
+ if (regmap_write(ctx->regmap, IT66121_AVI_INFO_PKT_REG,
+ IT66121_AVI_INFO_PKT_ON | IT66121_AVI_INFO_PKT_RPT))
+ goto unlock;
+
+ /* Set TX mode to HDMI */
+ regmap_write(ctx->regmap, IT66121_HDMI_MODE_REG, IT66121_HDMI_MODE_HDMI);
+
+unlock:
+ mutex_unlock(&ctx->lock);
+}
+
#define MAX_OUTPUT_SEL_FORMATS 1
static u32 *it66121_bridge_atomic_get_output_bus_fmts(struct drm_bridge *bridge,
@@ -729,6 +745,8 @@ static void it66121_bridge_enable(struct drm_bridge *bridge,
ctx->connector = drm_atomic_get_new_connector_for_encoder(state, bridge->encoder);
it66121_set_mute(ctx, false);
+
+ it66121_set_tx_mode(ctx);
}
static void it66121_bridge_disable(struct drm_bridge *bridge,
--
2.54.0