From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 287E8F364BC for ; Thu, 9 Apr 2026 20:36:46 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:In-Reply-To: Content-Transfer-Encoding:Content-Type:MIME-Version:References:Message-ID: Subject:Cc:To:From:Date:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=QkLdAaMDjOfhMVF4WNfz8y+R/V14WgJPGVdFaHyIJ4s=; b=UFnIFokduDdc2DGPVQGsAJPOMw j06aTSBV3qLlsJXQJHVrv+V6oPsk/Z+mWuWbz76Fou6gqVnQz2eOTPrjMx4V8UJBh8+80pmswxLEd KnmJo7h4zywGveYnAdKxvZuLOLnv7b6mv9dJgC0N0l4ftcnUdHtWE4ACoDLAxvNCbVKbK5mdJw1fT cYm3AkpZ0ASHPEFwtKVfMahuyNasZv1vKF8UH9kxk9/yNaNCp+wGflY+bU9U82TiJ7uJLIhsHBRd/ WlHrU+NwiYyc6pDK93HjE0f8AjdHwACml73ePBb8kfyx1NX2a/T0X+tm4rbXqIIERQytqCzR6Ng3X 7aDPnZiQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98.2 #2 (Red Hat Linux)) id 1wAw7C-0000000BBr5-2mSf; Thu, 09 Apr 2026 20:36:38 +0000 Received: from mgamail.intel.com ([192.198.163.11]) by bombadil.infradead.org with esmtps (Exim 4.98.2 #2 (Red Hat Linux)) id 1wAw79-0000000BBqV-1DeE; Thu, 09 Apr 2026 20:36:37 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1775766995; x=1807302995; h=date:from:to:cc:subject:message-id:references: mime-version:content-transfer-encoding:in-reply-to; bh=7gfLzB8DThL8+awFaM0AEeeHbksinJ+rqvsNTvEFvlE=; b=GsZyGA7oZTp3+f8IBpl/yJU/AXsdTSu+1D/jK/jx1ADH0F+npluyEmiG JFiMUiwYrHGhMbZSdEVpqX1C2eI4GmUSJqLmdgeekwrj8i291a5aj8TmM V/F5aaK4BlklV6BbnJrjagSU+z43EBKFOJ5hmRnmA0xLh7QCnQMezKqS+ A77/H+ppVHMHzpc3gZaKwJEHkdmgJrJVVqbJEU9YEmD41fVVwpphfo/mN HRRMpijHFuS1Cd76eUAmqzjRRloSLTXLvt/kHK775Ys8vGw5cEW5ZGHsK tyvgobyHrH4tVhlN3nZF8WCqK4tHHFANseeifOvtbJpOKBb5mF2/C+8Te g==; X-CSE-ConnectionGUID: HXaz0GKPSCGUo1aNQwZgaw== X-CSE-MsgGUID: wAp9LlUnQ3SPl65iEwwXmw== X-IronPort-AV: E=McAfee;i="6800,10657,11754"; a="87410709" X-IronPort-AV: E=Sophos;i="6.23,170,1770624000"; d="scan'208";a="87410709" Received: from orviesa007.jf.intel.com ([10.64.159.147]) by fmvoesa105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Apr 2026 13:36:32 -0700 X-CSE-ConnectionGUID: c13WNi39SJCjK+TGxfSMKA== X-CSE-MsgGUID: S/n0EwMKQ0S41l0IShj9Zw== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.23,170,1770624000"; d="scan'208";a="229161704" Received: from hrotuna-mobl2.ger.corp.intel.com (HELO localhost) ([10.245.245.216]) by orviesa007-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Apr 2026 13:36:24 -0700 Date: Thu, 9 Apr 2026 23:36:21 +0300 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= To: Kory Maincent Cc: Jani Nikula , Rodrigo Vivi , Joonas Lahtinen , Tvrtko Ursulin , David Airlie , Simona Vetter , Dave Airlie , Jesse Barnes , Eric Anholt , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , Andrzej Hajda , Neil Armstrong , Robert Foss , Laurent Pinchart , Jonas Karlman , Jernej Skrabec , Chun-Kuang Hu , Philipp Zabel , Matthias Brugger , AngeloGioacchino Del Regno , Chris Wilson , Thomas Petazzoni , Mark Yacoub , Sean Paul , Louis Chauvet , intel-gfx@lists.freedesktop.org, intel-xe@lists.freedesktop.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, linux-mediatek@lists.infradead.org, linux-arm-kernel@lists.infradead.org, Simona Vetter Subject: Re: [PATCH RFC 00/12] Add support for DisplayPort link training information report Message-ID: References: <20260409-feat_link_cap-v1-0-7069e8199ce2@bootlin.com> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20260409-feat_link_cap-v1-0-7069e8199ce2@bootlin.com> X-Patchwork-Hint: comment Organization: Intel Finland Oy - BIC 0357606-4 - c/o Alberga Business Park, 6 krs Bertel Jungin Aukio 5, 02600 Espoo, Finland X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20260409_133635_365920_B38AB04D X-CRM114-Status: GOOD ( 24.86 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org On Thu, Apr 09, 2026 at 07:08:16PM +0200, Kory Maincent wrote: > DisplayPort link training negotiates the physical-layer parameters needed > for a reliable connection: lane count, link rate, voltage swing, > pre-emphasis, and optionally Display Stream Compression (DSC). Currently, > each driver exposes this state in its own way, often through > driver-specific debugfs entries, with no standard interface for userspace > diagnostic and monitoring tools. > > This series introduces a generic, DRM-managed framework for exposing DP > link training state as standard connector properties, modeled after the > existing HDMI helper drmm_connector_hdmi_init(). > > The new drmm_connector_dp_init() helper initializes a DP connector and > registers the following connector properties to expose the negotiated link > state to userspace: > > - num_lanes: negotiated lane count (1, 2 or 4) > - link_rate: negotiated link rate > - dsc_en: whether Display Stream Compression is active > - voltage_swingN: per-lane voltage swing level (lanes 0-3) > - pre_emphasisN: per-lane pre-emphasis level (lanes 0-3) I don't see why any real userspace would be interested in those (apart from maybe DSC). If this is just for diagnostics and whatnot then I think sysfs/debugfs could be a better fit. > > Two runtime helpers update and clear these properties when link training > completes or the link goes down: > - drm_connector_dp_set_link_train_properties() > - drm_connector_dp_reset_link_train_properties() > > Two drivers are updated as reference implementations: i915 (direct > connector path) and MediaTek (via the bridge connector framework using a > new DRM_BRIDGE_OP_DP flag). The i915 patches are preceded by a series of > conversions to DRM managed resources, which are required before adopting > drmm_connector_dp_init(). > > The MST case in i915 driver is not supported yet. > > Patches 1-3: Fix two error-path cleanup bugs in i915 sdvo and lvds > [Will probably be sent standalone] > Patches 4-8: Convert i915 display resources to DRM managed lifetime > Patch 9: Introduce the core drmm_connector_dp_init() framework > Patch 10: Wire the i915 DP connector to use the new helpers > Patch 11: Introduce DRM_BRIDGE_OP_DP and wire bridge connectors > Patch 12: Wire the MediaTek DP bridge to the new helpers [untested] > > Signed-off-by: Kory Maincent > --- > Kory Maincent (12): > drm/i915/display/intel_sdvo: Fix double connector destroy in error paths > drm/i915/display/intel_lvds: Drop redundant manual cleanup on init failure > drm/i915/display/intel_dp: Drop redundant intel_dp_aux_fini() on init failure > drm/i915/display: Switch to drmm_mode_config_init() and drop manual cleanup > drm/i915/display: Switch to managed for crtc > drm/i915/display: Switch to managed for plane > drm/i915/display: Switch to managed for encoder > drm/i915/display: Switch to managed for connector > drm: Introduce drmm_connector_dp_init() with link training state properties > drm/i915/display/dp: Adopt dp_connector helpers to expose link training state > drm/bridge: Wire drmm_connector_dp_init() via new DRM_BRIDGE_OP_DP flag > drm/mediatek: Use dp_connector helpers to report link training state > > drivers/gpu/drm/Makefile | 1 + > drivers/gpu/drm/display/drm_bridge_connector.c | 26 +- > drivers/gpu/drm/drm_dp_connector.c | 344 +++++++++++++++++++++ > drivers/gpu/drm/i915/display/g4x_dp.c | 39 +-- > drivers/gpu/drm/i915/display/g4x_hdmi.c | 27 +- > drivers/gpu/drm/i915/display/i9xx_plane.c | 97 +++--- > drivers/gpu/drm/i915/display/icl_dsi.c | 50 ++- > drivers/gpu/drm/i915/display/intel_connector.c | 26 +- > drivers/gpu/drm/i915/display/intel_connector.h | 5 +- > drivers/gpu/drm/i915/display/intel_crt.c | 28 +- > drivers/gpu/drm/i915/display/intel_crtc.c | 102 +++--- > drivers/gpu/drm/i915/display/intel_cursor.c | 41 ++- > drivers/gpu/drm/i915/display/intel_ddi.c | 64 ++-- > drivers/gpu/drm/i915/display/intel_display.c | 8 - > drivers/gpu/drm/i915/display/intel_display.h | 1 - > .../gpu/drm/i915/display/intel_display_driver.c | 37 ++- > drivers/gpu/drm/i915/display/intel_dp.c | 43 ++- > .../gpu/drm/i915/display/intel_dp_link_training.c | 25 ++ > drivers/gpu/drm/i915/display/intel_dp_mst.c | 33 +- > drivers/gpu/drm/i915/display/intel_dvo.c | 43 +-- > drivers/gpu/drm/i915/display/intel_encoder.c | 6 +- > drivers/gpu/drm/i915/display/intel_encoder.h | 3 +- > drivers/gpu/drm/i915/display/intel_hdmi.c | 15 +- > drivers/gpu/drm/i915/display/intel_lvds.c | 45 ++- > drivers/gpu/drm/i915/display/intel_plane.c | 45 +-- > drivers/gpu/drm/i915/display/intel_plane.h | 5 +- > drivers/gpu/drm/i915/display/intel_sdvo.c | 134 +++----- > drivers/gpu/drm/i915/display/intel_sprite.c | 119 ++++--- > drivers/gpu/drm/i915/display/intel_tv.c | 26 +- > drivers/gpu/drm/i915/display/skl_universal_plane.c | 102 +++--- > drivers/gpu/drm/i915/display/vlv_dsi.c | 42 +-- > drivers/gpu/drm/mediatek/mtk_dp.c | 34 +- > include/drm/drm_bridge.h | 13 + > include/drm/drm_connector.h | 38 +++ > include/drm/drm_dp_connector.h | 109 +++++++ > 35 files changed, 1125 insertions(+), 651 deletions(-) > --- > base-commit: db5a75cfd29766536be62aece9f19c6e7a858fa6 > change-id: 20260226-feat_link_cap-20cbb6f31d40 > > Best regards, > -- > Köry Maincent, Bootlin > Embedded Linux and kernel engineering > https://bootlin.com -- Ville Syrjälä Intel