Re: [PATCH v7 0/2] Pass down hot-plug CONNECTOR ID to user-space

From: Nicolas Frattaroli

Date: Wed Mar 11 2026 - 11:52:01 EST


On Tuesday, 17 February 2026 20:00:22 Central European Standard Time Nicolas Frattaroli wrote:
> I will be taking over this series from Marius Vlad.
>
> This series addresses a shortcoming whereby a hot plug event is sent
> without it being passed the actual connector that caused it. This takes
> into consideration both the polling path and the HPD (Hot Plug Detect)
> path. It also adds support for the vkms driver (using ConfigFS) for
> propagating the connector ID when changing the connector's status.
>
> The motivation is that user-space applications such as Weston would
> previously receive non-connector-specific hotplug events, and then have
> to figure out themselves which connector needs to have a modeset
> executed on. This notably did not work when the hotplug events came in
> too fast, resulting in Weston missing an on-off-on transition of a
> connector, seeing that its state was unchanged from "on" so can't be the
> one that was hotplugged, and skipping reinitialising it as it looks
> through the other connectors that could've caused it.
>
> The real world implication is that on setups with slightly sketchy HDMI
> connections, a brief flicker in the HPD signal could result in video
> output bidding farewell entirely until a manual proper re-plug was
> performed.
>
> By sending connector specific hotplug events, this ambiguity is
> resolved without any change to the user-space API.
>
> Signed-off-by: Nicolas Frattaroli <nicolas.frattaroli@xxxxxxxxxxxxx>
> ---
> Changes in v7:
> - Drop the two vkms patches, as I don't want them to be blocked on
> review. I still think they're correct, but they're not essential and
> don't need to block this series.
> - Link to v6: https://lore.kernel.org/r/20260123-hot-plug-passup-v6-0-aaaf61d960bb@xxxxxxxxxxxxx
>
> Changes in v6:
> - Rewrote cover letter to explain the motivation for this series more
> plainly
> - Rename "status_changed" to "pending_hp"
> - Set "pending_hp" in the existing path that would also affect
> epoch_counter
> - No longer set the boolean in drm_helper_probe_single_connector_modes,
> as it does not appear to be necessary
> - Reword commits to better justify the changes
> - Link to v5: https://lore.kernel.org/r/20251111162338.15141-1-marius.vlad@xxxxxxxxxxxxx/
>
> Changes in v5:
> - vkms: add support for sending the CONNECTOR ID when hot-plugging through
> ConfigFS - as reported by Louis, vkms can now make use of ConfigFS to
> simulate connector status.
> - vkms: add a small change to ignore previous/old drm connector status
> when sending out hot-plug uevent.
> - Link to v4: https://lore.kernel.org/r/20251103174558.7709-1-marius.vlad@xxxxxxxxxxxxx/
>
> Changes in v4:
> - removed the "This patch" bit - Dmitry
> - added a short note when the flag is set and cleared - Dmitry
> - address double dead-locking detected - kbot: https://lore.kernel.org/dri-devel/202509251410.fdfbcac3-lkp@xxxxxxxxx/
> - virtual connectors do not seem have any kind of hotplug - added
> polling in vkms - as noted by Ian
> - Link to v3: https://lore.kernel.org/r/20250923083636.4749-1-marius.vlad@xxxxxxxxxxxxx/
>
> Changes in v3:
> - Address comments from Dmitry:
> - guard connector status write with mode_config.mutex
> - avoid setting up the connector status and immediately unset it. Do the
> unset in drm_kms_helper_hotplug_event/drm_kms_helper_connector_hotplug_event
> - Link to v2: https://lore.kernel.org/r/20250729165708.9947-1-marius.vlad@xxxxxxxxxxxxx/
>
> Changes in v2:
> - Address comments from Daniel:
> - split patch into 2, one that introduces a bool to track connector
> connection status change and a patch that uses that to be able to send
> hot plug events with the proper CONNECTOR ID to udev and further pass
> that down to user-space
> - nuke out mutex when iterating connector list
> - fix typo
> - Link to v1: https://lore.kernel.org/r/20250627131751.2004-1-marius.vlad@xxxxxxxxxxxxx/
>
> Marius Vlad (4):
> drm: Introduce a new connector status
> drm: Propagate connector status change
> vkms: Do not send hotplug events for same connector status
> vkms: Pass the vkms connector as opposed to the vkms device
>
> drivers/gpu/drm/drm_connector.c | 1 +
> drivers/gpu/drm/drm_probe_helper.c | 39 +++++++++++++++++++++++----
> drivers/gpu/drm/drm_sysfs.c | 1 +
> drivers/gpu/drm/vkms/vkms_configfs.c | 12 +++++++--
> drivers/gpu/drm/vkms/vkms_connector.c | 6 ++---
> drivers/gpu/drm/vkms/vkms_connector.h | 4 +--
> include/drm/drm_connector.h | 3 +++
> 7 files changed, 54 insertions(+), 12 deletions(-)
>
> --
> 2.47.2

Oh dear, I didn't even realize I left a bogus diffstat in the cover
letter when importing. :(

>
> ---
> Marius Vlad (2):
> drm: Introduce pending_hp to drm_connector
> drm: Send per-connector hotplug events
>
> drivers/gpu/drm/drm_connector.c | 1 +
> drivers/gpu/drm/drm_probe_helper.c | 39 +++++++++++++++++++++++++++++++++-----
> drivers/gpu/drm/drm_sysfs.c | 2 ++
> include/drm/drm_connector.h | 3 +++
> 4 files changed, 40 insertions(+), 5 deletions(-)
> ---
> base-commit: e66c64e4f12e55cad35c680f1e328a7c7ee92cab
> change-id: 20260121-hot-plug-passup-f8ed03f7c202
>
> Best regards,
>

It's been 3 weeks since v7, and 6 weeks since v6 which is the same
code except with 2 more patches that have been dropped in v7. I don't
want to be too annoying, but I'll be happy to receive feedback on the
new approach so I know whether I'm taking this in the wrong direction.

Kind regards,
Nicolas Frattaroli