From: sashiko-bot@kernel.org
To: "Leonardo Costa" <leoreis.costa@gmail.com>
Cc: dri-devel@lists.freedesktop.org, devicetree@vger.kernel.org,
imx@lists.linux.dev, robh@kernel.org, conor+dt@kernel.org,
Frank.Li@kernel.org
Subject: Re: [PATCH v2 3/3] ARM: dts: imx6q-apalis: Add VGA overlay
Date: Mon, 19 Oct 2026 10:36:09 +0000 [thread overview]
Message-ID: <sashiko-outbox-177001@kernel.org> (raw)
In-Reply-To: <20261019-v2-apalis-imx6-enable-vga-v2-3-ef6a3a780472@toradex.com>
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [High] ARM: dts: imx6q-apalis: VGA data-enable-active ignored by simple-bridge
--
commit a66c8dd73182954ba43ed81cada90ae73edf93a0
Author: Leonardo Costa <leonardo.costa@toradex.com>
ARM: dts: imx6q-apalis: Add VGA overlay
This commit adds a device tree overlay for the VGA output on the Apalis
Evaluation Board, connecting the parallel RGB display interface to a
non-programmable video DAC and VGA connector with an active-low data-enable
signal, and wires up composite DTB targets in the Makefile.
> diff --git a/arch/arm/boot/dts/nxp/imx/imx6q-apalis-eval-vga.dtso b/arch/arm/boot/dts/nxp/imx/imx6q-apalis-eval-vga.dtso
> new file mode 100644
> index 0000000000000..991c2b7c27773
> --- /dev/null
> +++ b/arch/arm/boot/dts/nxp/imx/imx6q-apalis-eval-vga.dtso
> @@ -0,0 +1,80 @@
[ ... ]
> + vga-encoder {
> + compatible = "dumb-vga-dac";
> +
> + ports {
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + port@0 {
> + reg = <0>;
> +
> + vga_enc_in: endpoint {
> + data-enable-active = <0>;
> + remote-endpoint = <&vga_display_out>;
> + };
> + };
[Severity: High]
Does data-enable-active = <0> on vga_enc_in actually reach the IPUv3
CRTC?
In simple_bridge_probe() in drivers/gpu/drm/bridge/simple-bridge.c, the
data-enable-active property is parsed into timings->input_bus_flags:
if (de_present && !sbridge->bridge.timings) {
struct drm_bridge_timings *timings;
timings = devm_kzalloc(&pdev->dev, sizeof(*timings), GFP_KERNEL);
if (!timings)
return -ENOMEM;
timings->input_bus_flags = de ? DRM_BUS_FLAG_DE_HIGH :
DRM_BUS_FLAG_DE_LOW;
sbridge->bridge.timings = timings;
}
However, simple_bridge_bridge_funcs registers atomic bridge state
callbacks without an .atomic_check callback:
static const struct drm_bridge_funcs simple_bridge_bridge_funcs = {
.atomic_create_state = drm_atomic_helper_bridge_create_state,
.atomic_destroy_state = drm_atomic_helper_bridge_destroy_state,
.atomic_duplicate_state = drm_atomic_helper_bridge_duplicate_state,
.attach = simple_bridge_attach,
.atomic_enable = simple_bridge_enable,
.atomic_disable = simple_bridge_disable,
};
During drm_atomic_bridge_chain_check() ->
drm_atomic_bridge_propagate_bus_flags(), sbridge's
bridge_state->input_bus_cfg.flags is overwritten with the downstream
display-connector bridge's input_bus_cfg.flags (which is 0), and
sbridge->bridge.timings->input_bus_flags is never copied into
bridge_state->input_bus_cfg.flags.
Then, upstream in imx_pd_bridge_atomic_check() in
drivers/gpu/drm/imx/ipuv3/parallel-display.c:
if (next_bridge)
next_bridge_state = drm_atomic_get_new_bridge_state(crtc_state->state,
next_bridge);
if (next_bridge_state)
bus_flags = next_bridge_state->input_bus_cfg.flags;
else
bus_flags = di->bus_flags;
Because next_bridge_state is non-NULL, bus_flags is read as 0 from
next_bridge_state->input_bus_cfg.flags without consulting
next_bridge->timings->input_bus_flags.
When ipu_crtc_mode_set_nofb() -> ipu_di_init_sync_panel() runs,
sig_cfg.enable_pol = !(imx_crtc_state->bus_flags & DRM_BUS_FLAG_DE_LOW)
evaluates to 1, driving the data-enable pin active-high instead of
active-low and gating off the VGA DAC output during active video.
Should simple-bridge implement .atomic_check to populate
bridge_state->input_bus_cfg.flags from bridge->timings->input_bus_flags
so the active-low polarity is propagated to imx-parallel-display?
[ ... ]
--
Sashiko AI review · https://sashiko.dev/#/patchset/20261019-v2-apalis-imx6-enable-vga-v2-0-ef6a3a780472@toradex.com?part=3
next prev parent reply other threads:[~2026-10-19 10:36 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-10-19 10:17 [PATCH v2 0/3] Add VGA support for Apalis iMX6 Leonardo Costa
2026-10-19 10:17 ` [PATCH v2 1/3] dt-bindings: display: bridge: simple: Add data-enable-active to dumb-vga-dac Leonardo Costa
2026-10-19 19:42 ` Frank Li
2026-10-19 10:17 ` [PATCH v2 2/3] drm/bridge: simple-bridge: Support data-enable-active endpoint property Leonardo Costa
2026-10-19 10:34 ` sashiko-bot
2026-10-19 19:50 ` Frank Li
2026-10-19 10:17 ` [PATCH v2 3/3] ARM: dts: imx6q-apalis: Add VGA overlay Leonardo Costa
2026-10-19 10:36 ` sashiko-bot [this message]
2026-10-20 10:04 ` Leonardo Costa
2026-10-19 19:37 ` Frank Li
2026-10-20 10:33 ` Leonardo Costa
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=sashiko-outbox-177001@kernel.org \
--to=sashiko-bot@kernel.org \
--cc=Frank.Li@kernel.org \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=dri-devel@lists.freedesktop.org \
--cc=imx@lists.linux.dev \
--cc=leoreis.costa@gmail.com \
--cc=robh@kernel.org \
--cc=sashiko-reviews@lists.linux.dev \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.