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
