From mboxrd@z Thu Jan 1 00:00:00 1970 From: Claude Code Review Bot To: dri-devel-reviews@example.com Subject: Claude review: drm/bridge: imx8mp-hdmi-tx: add an hdmi-connector when missing using a DT overlay at boot time Date: Sun, 22 Mar 2026 03:48:38 +1000 Message-ID: In-Reply-To: <20260320-drm-lcdif-dbanc-v1-7-479a04133e70@bootlin.com> References: <20260320-drm-lcdif-dbanc-v1-0-479a04133e70@bootlin.com> <20260320-drm-lcdif-dbanc-v1-7-479a04133e70@bootlin.com> X-Mailer: Claude Code Patch Reviewer Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Patch Review This is the most complex and controversial patch. The approach is reasonabl= e and has precedent (`drm/tilcdc`). **Observations on the C code (`imx8mp-hdmi-tx-connector-fixup.c`):** 1. The hardcoded path `/soc@0/bus@32c00000/hdmi@32fd8000` is fragile =E2=80= =94 it only works for i.MX8MP and assumes a specific DT structure. However,= since the Kconfig already ties this to `DRM_IMX8MP_DW_HDMI_BRIDGE`, this i= s acceptable. 2. The `hdmi_conn` lookup after overlay application seems unnecessary: ```c hdmi_conn =3D of_find_node_by_name(NULL, "fixup-hdmi-connector"); if (!hdmi_conn) { err =3D -ENODEV; goto overlay_remove; } ``` If the overlay applied successfully, the node should always exist. This = looks like a sanity check, but the `hdmi_conn` variable is declared with `_= _free(device_node)` and then never used beyond the NULL check. This is fine= for validation but could use a comment explaining it's a sanity check. 3. The overlay is never removed on module exit / cleanup (no `module_exit`)= . Since this is `bool` (not tristate) in Kconfig, there's no module unload = path, which is fine. But this means the overlay ID `ovcs_id` is a dead stor= e if the function succeeds =E2=80=94 not a real issue but worth noting. 4. Using `subsys_initcall` is the right level to ensure this runs before de= vice probing. **On the DT overlay (`imx8mp-hdmi-tx-connector-fixup.dtso`):** The overlay looks correct. It adds the `fixup-hdmi-connector` node at the r= oot and links it bidirectionally to `port@1` of the HDMI TX. **One-line change in `imx8mp-hdmi-tx.c`:** ```c plat_data->output_port =3D 1; ``` This enables the "case B" mode in dw-hdmi. This is correct and is the key c= hange that makes the HDMI pipeline work with `DRM_BRIDGE_ATTACH_NO_CONNECTO= R`. However, this change also affects the non-`DRM_BRIDGE_ATTACH_NO_CONNECT= OR` path =E2=80=94 in the current tree, dw-hdmi will now call `dw_hdmi_pars= e_dt()` at probe time, which will look for a remote on port@1. For boards t= hat already have an hdmi-connector in DT this is fine, but for boards that = don't (and don't have the fixup), `dw_hdmi_parse_dt()` would return `-ENODE= V` and **probe would fail**. This is only safe because patch 6 removes `dw_= hdmi_parse_dt()` entirely =E2=80=94 so patches 6 and 7 must be applied toge= ther (bisectability concern if the `output_port =3D 1` line were in a separ= ate patch from patch 6, but since patch 6 comes first, bisecting should be = fine). --- Generated by Claude Code Patch Reviewer