On Fri, May 15, 2026 at 11:02:09AM +0200, Javier Martinez Canillas wrote: > +static enum drm_mode_status > +it66121_bridge_hdmi_tmds_char_rate_valid(const struct drm_bridge *bridge, > + const struct drm_display_mode *mode, > + unsigned long long tmds_rate) > +{ > + const struct it66121_ctx *ctx = > + container_of(bridge, const struct it66121_ctx, bridge); > + unsigned long max_clock; > + > + max_clock = (ctx->bus_width == 12) ? 74250 : 148500; > + > + if (mode->clock > max_clock) > + return MODE_CLOCK_HIGH; > + > + if (mode->clock < 25000) > + return MODE_CLOCK_LOW; > + > + return MODE_OK; > +} You must not use mode->clock here, use the tdms_rate passed as an argument. > static irqreturn_t it66121_irq_threaded_handler(int irq, void *dev_id) > @@ -1588,7 +1615,10 @@ static int it66121_probe(struct i2c_client *client) > > ctx->bridge.of_node = dev->of_node; > ctx->bridge.type = DRM_MODE_CONNECTOR_HDMIA; > - ctx->bridge.ops = DRM_BRIDGE_OP_DETECT | DRM_BRIDGE_OP_EDID; > + ctx->bridge.ops = DRM_BRIDGE_OP_DETECT | DRM_BRIDGE_OP_EDID | > + DRM_BRIDGE_OP_HDMI; > + ctx->bridge.vendor = "ITE"; > + ctx->bridge.product = "IT66121"; > if (client->irq > 0) { > ctx->bridge.ops |= DRM_BRIDGE_OP_HPD; It's not really for today, but ideally we should move to the audio helpers at some point too. Maxime