From: Heiko Stuebner <heiko@sntech.de>
To: Tim Surber <me@timsurber.de>
Cc: "Tim Surber" <me@timsurber.de>, "Rob Herring" <robh@kernel.org>,
"Krzysztof Kozlowski" <krzk+dt@kernel.org>,
"Conor Dooley" <conor+dt@kernel.org>,
"Valentin Hăloiu" <valentin.haloiu@gmail.com>,
devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH 1/1] arm64: dts: rockchip: fix HDMI RX 5V detection pin on CM3588 NAS
Date: Fri, 13 Nov 2026 20:33:09 +0100 [thread overview]
Message-ID: <7ONBekS7Tj-N3VFFry-6aA@sntech.de> (raw)
In-Reply-To: <20261111210059.3489502-2-me@timsurber.de>
Hi Tim,
Am Mittwoch, 11. November 2026, 22:00:27 Mitteleuropäische Normalzeit schrieb Tim Surber:
> The HDMI receiver node uses GPIO3_D4 both as the receiver's HPD output
> (hdmim1_rx_hpdin) and as its 5V detection input (hpd-gpios and the
> hdmirx_hpd pin group). Both pin groups are in the same pinctrl state and
> the later one wins, so the pin ends up as a GPIO input with pull-up.
> The controller can then never drive HPD: the source sees HPD asserted
> all the time, and the 5V detection reads back the HPD line instead of
> the source's 5V.
>
> The driver relies on HPD being low while it writes the EDID, at probe
> and on VIDIOC_S_EDID. With HPD stuck high, a source may read the EDID
> while it is being written. A source that does so at boot keeps the
> damaged copy, as it never sees the HPD pulse that should make it read
> the EDID again. On a CM3588 NAS with HDMI0 looped back into HDMI RX
> this happened on 3 of 10 boots: HDMI0 logged "EDID has corrupt header",
> found no valid EDID and fell back to 1024x768. Changing the EDID with
> VIDIOC_S_EDID was not noticed by the source at all.
>
> FriendlyElec's vendor device tree for the CM3588 uses GPIO1_D5, active
> low with pull-up, for the 5V detection. The NanoPC-T6 uses the same pin
> upstream. Use that pin and leave GPIO3_D4 to the HPD function.
>
> With this change the pin multiplexing shows GPIO3_D4 in the HPD
> function, the source's HPD interrupt fires on every EDID update, and a
> changed EDID reaches the source within 0.5 s. In 10 boots (5 power
> cycles, 5 reboots) the EDID read by HDMI0 always matched the one
> written by the receiver, and HDMI0 came up at its native mode every
> time. The receiver still detects the source's 5V and locks to its
> signal.
>
> Using the pin in two groups also made pinctrl warn on every unbind of
> the receiver ("not freeing pin 124 (gpio3-28) as part of deactivating
> group hdmim1-rx-hpdin - it is already used for some other setting"),
> and in earlier testing the following bind sometimes failed with
> -EINVAL. With this change the warning is gone.
you're fixing _one_ gpio, this does not need a novel size explanation.
Please make sure you're writing commit descriptions yourself and not
let an LLM run amok on it please.
Thanks
Heiko
prev parent reply other threads:[~2026-11-13 19:33 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-11-11 21:00 [PATCH 0/1] arm64: dts: rockchip: fix HDMI RX HPD " Tim Surber
2026-11-11 21:00 ` [PATCH 1/1] arm64: dts: rockchip: fix HDMI RX 5V detection pin " Tim Surber
2026-11-13 19:33 ` Heiko Stuebner [this message]
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=7ONBekS7Tj-N3VFFry-6aA@sntech.de \
--to=heiko@sntech.de \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=krzk+dt@kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-rockchip@lists.infradead.org \
--cc=me@timsurber.de \
--cc=robh@kernel.org \
--cc=valentin.haloiu@gmail.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®