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 <[email protected]>
> ---
> 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/[email protected]
> 
> 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/[email protected]/
> 
> 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/[email protected]/
> 
> 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/[email protected]/
> - 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/[email protected]/
> 
> 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/[email protected]/
> 
> 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/[email protected]/
> 
> 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


Reply via email to