From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from sender4-pp-f112.zoho.com (sender4-pp-f112.zoho.com [136.143.188.112]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 80B7325CC74 for ; Wed, 11 Mar 2026 15:51:58 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=pass smtp.client-ip=136.143.188.112 ARC-Seal:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773244319; cv=pass; b=gyFaovBghtBsMUNG9i6J5Z7I9qlWvx2jeaaqMIRPTeTC6iHasK6wnVu3D/Eq2Ia5v/HjkAAR/GJWEf+VSN4i6nVqTZ1UDnVp13Pg6gbfN7FXP+vyP29f8cgQVDrc5XZ2u8YOFXuZ17MGMHY9IiacoZcww21H61ODEYIoBIBGkbU= ARC-Message-Signature:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773244319; c=relaxed/simple; bh=OP+5JsIF23BD6aj2WJLgjwJn7z6hLSPbSg+UsEKu0HI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=IhDBNVnXRQSrOZNj5EF938Ln5WwPrrG08KdSpTZGPw9sz4TVg3dq9omuZeUgmvM5mn0T8al222x6TPypuQZelgNt8F8MLCgchyww/1/Mz/gZeGyUkJkwd117H+8QZrLRcwey21Erd2cy0BVmI623g0xAz5364KR+2r+IegF5QgU= ARC-Authentication-Results:i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com; spf=pass smtp.mailfrom=collabora.com; dkim=pass (1024-bit key) header.d=collabora.com header.i=nicolas.frattaroli@collabora.com header.b=J3S4Xlp9; arc=pass smtp.client-ip=136.143.188.112 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=collabora.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=collabora.com header.i=nicolas.frattaroli@collabora.com header.b="J3S4Xlp9" ARC-Seal: i=1; a=rsa-sha256; t=1773244289; cv=none; d=zohomail.com; s=zohoarc; b=dkN0KZCxN7DEa1Mk+mcFLEh+ElDdt7UJfHkOYoR/9ZFHug0Q6oeyO5SbvEkGh1ahOvv2CiWkHsf9f0GfdhO1Gvo3NQ8fpIJipOlZY599KlRng3SmVwB13ilEpBg4DVbVeYK3zAn0sxOQVBVvPORXz1y8jF7tcW9DjWW9FRsVY84= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1773244289; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:MIME-Version:Message-ID:References:Subject:Subject:To:To:Message-Id:Reply-To; bh=zVOJSS9XVfrjBWE0hMJnc5b0uHKPyFpTlLkPBG8sN0Q=; b=jvqmvvBGFdmHxg5wGhVFdLd0j0rY+KLhif+0GzdrodvNMXXaF5oi6WtfC8tilhRhFz/rRAT4UcDap9JqFcbEO0puvcvFvAP526xaU9kjvxHmN8laTzYJWajdzKD9nGVn6mu0pt6AvWpLe8GTJm0NbugwR/rgj7EPQHVi/1IlqaM= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass header.i=collabora.com; spf=pass smtp.mailfrom=nicolas.frattaroli@collabora.com; dmarc=pass header.from= DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1773244289; s=zohomail; d=collabora.com; i=nicolas.frattaroli@collabora.com; h=From:From:To:To:Cc:Cc:Subject:Subject:Date:Date:Message-ID:In-Reply-To:References:MIME-Version:Content-Transfer-Encoding:Content-Type:Message-Id:Reply-To; bh=zVOJSS9XVfrjBWE0hMJnc5b0uHKPyFpTlLkPBG8sN0Q=; b=J3S4Xlp9xGrj7Vkir5ikQHXbyApu160z9sUqGQT8BFMoUqC4CqfJHgPec9bEF5KY D7eQ51wfwq3tTWxOxAj8GoOGaO7eXgD7osXDGnZyBljsGDEDRGHz2HfoJ9XAlpQY0Tp 9r5gb37zClt8lPVXC/Ko7UIr7lV6Cc7QJMUGOojA= Received: by mx.zohomail.com with SMTPS id 1773244288244370.8544550958395; Wed, 11 Mar 2026 08:51:28 -0700 (PDT) From: Nicolas Frattaroli To: Ville =?UTF-8?B?U3lyasOkbMOk?= , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , Louis Chauvet , Haneen Mohammed , Melissa Wen , Daniel Stone , Ian Forbes , Dmitry Baryshkov Cc: dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, kernel@collabora.com, Marius Vlad Subject: Re: [PATCH v7 0/2] Pass down hot-plug CONNECTOR ID to user-space Date: Wed, 11 Mar 2026 16:51:22 +0100 Message-ID: <6837439.DvuYhMxLoT@workhorse> In-Reply-To: <20260217-hot-plug-passup-v7-0-f8221b2aab51@collabora.com> References: <20260217-hot-plug-passup-v7-0-f8221b2aab51@collabora.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="utf-8" 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 > --- > 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@collabora.com > > 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@collabora.com/ > > 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@collabora.com/ > > 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@intel.com/ > - 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@collabora.com/ > > 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@collabora.com/ > > 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@collabora.com/ > > 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