From: "Ville Syrjälä" <ville.syrjala@linux.intel.com>
To: Kory Maincent <kory.maincent@bootlin.com>
Cc: Jani Nikula <jani.nikula@linux.intel.com>,
Rodrigo Vivi <rodrigo.vivi@intel.com>,
Joonas Lahtinen <joonas.lahtinen@linux.intel.com>,
Tvrtko Ursulin <tursulin@ursulin.net>,
David Airlie <airlied@gmail.com>, Simona Vetter <simona@ffwll.ch>,
Dave Airlie <airlied@redhat.com>,
Jesse Barnes <jbarnes@virtuousgeek.org>,
Eric Anholt <eric@anholt.net>,
Maarten Lankhorst <maarten.lankhorst@linux.intel.com>,
Maxime Ripard <mripard@kernel.org>,
Thomas Zimmermann <tzimmermann@suse.de>,
Andrzej Hajda <andrzej.hajda@intel.com>,
Neil Armstrong <neil.armstrong@linaro.org>,
Robert Foss <rfoss@kernel.org>,
Laurent Pinchart <Laurent.pinchart@ideasonboard.com>,
Jonas Karlman <jonas@kwiboo.se>,
Jernej Skrabec <jernej.skrabec@gmail.com>,
Chun-Kuang Hu <chunkuang.hu@kernel.org>,
Philipp Zabel <p.zabel@pengutronix.de>,
Matthias Brugger <matthias.bgg@gmail.com>,
AngeloGioacchino Del Regno
<angelogioacchino.delregno@collabora.com>,
Chris Wilson <chris@chris-wilson.co.uk>,
Thomas Petazzoni <thomas.petazzoni@bootlin.com>,
Mark Yacoub <markyacoub@google.com>,
Sean Paul <seanpaul@google.com>,
Louis Chauvet <louis.chauvet@bootlin.com>,
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 <simona.vetter@ffwll.ch>
Subject: Re: [PATCH RFC 00/12] Add support for DisplayPort link training information report
Date: Thu, 9 Apr 2026 23:36:21 +0300 [thread overview]
Message-ID: <adgNxaFhbQaxC5E_@intel.com> (raw)
In-Reply-To: <20260409-feat_link_cap-v1-0-7069e8199ce2@bootlin.com>
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@bootlin.com>
> ---
> 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
next prev parent reply other threads:[~2026-04-09 20:36 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-04-09 17:08 [PATCH RFC 00/12] Add support for DisplayPort link training information report Kory Maincent
2026-04-09 17:08 ` [PATCH RFC 01/12] drm/i915/display/intel_sdvo: Fix double connector destroy in error paths Kory Maincent
2026-04-09 17:08 ` [PATCH RFC 02/12] drm/i915/display/intel_lvds: Drop redundant manual cleanup on init failure Kory Maincent
2026-04-09 17:08 ` [PATCH RFC 03/12] drm/i915/display/intel_dp: Drop redundant intel_dp_aux_fini() " Kory Maincent
2026-04-09 17:08 ` [PATCH RFC 04/12] drm/i915/display: Switch to drmm_mode_config_init() and drop manual cleanup Kory Maincent
2026-04-09 17:08 ` [PATCH RFC 05/12] drm/i915/display: Switch to managed for crtc Kory Maincent
2026-04-09 17:08 ` [PATCH RFC 06/12] drm/i915/display: Switch to managed for plane Kory Maincent
2026-04-09 17:08 ` [PATCH RFC 07/12] drm/i915/display: Switch to managed for encoder Kory Maincent
2026-04-09 17:08 ` [PATCH RFC 08/12] drm/i915/display: Switch to managed for connector Kory Maincent
2026-04-09 17:08 ` [PATCH RFC 09/12] drm: Introduce drmm_connector_dp_init() with link training state properties Kory Maincent
2026-04-09 21:53 ` Dmitry Baryshkov
2026-04-13 12:59 ` Kory Maincent
2026-04-13 13:59 ` Dmitry Baryshkov
2026-04-13 15:30 ` Kory Maincent
2026-04-10 16:20 ` Jani Nikula
2026-04-09 17:08 ` [PATCH RFC 10/12] drm/i915/display/dp: Adopt dp_connector helpers to expose link training state Kory Maincent
2026-04-10 16:26 ` Jani Nikula
2026-04-13 12:34 ` Kory Maincent
2026-04-13 13:05 ` Jani Nikula
2026-04-13 13:34 ` Kory Maincent
2026-04-13 13:44 ` Jani Nikula
2026-04-09 17:08 ` [PATCH RFC 11/12] drm/bridge: Wire drmm_connector_dp_init() via new DRM_BRIDGE_OP_DP flag Kory Maincent
2026-04-09 17:08 ` [PATCH RFC 12/12] drm/mediatek: Use dp_connector helpers to report link training state Kory Maincent
2026-04-09 20:36 ` Ville Syrjälä [this message]
2026-04-09 21:36 ` [PATCH RFC 00/12] Add support for DisplayPort link training information report Dmitry Baryshkov
2026-04-13 12:10 ` Kory Maincent
2026-04-13 13:29 ` Jani Nikula
2026-05-27 7:20 ` Manasi Navare
2026-05-27 7:24 ` Manasi Navare
2026-04-13 19:59 ` ✗ Fi.CI.BUILD: failure for " Patchwork
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=adgNxaFhbQaxC5E_@intel.com \
--to=ville.syrjala@linux.intel.com \
--cc=Laurent.pinchart@ideasonboard.com \
--cc=airlied@gmail.com \
--cc=airlied@redhat.com \
--cc=andrzej.hajda@intel.com \
--cc=angelogioacchino.delregno@collabora.com \
--cc=chris@chris-wilson.co.uk \
--cc=chunkuang.hu@kernel.org \
--cc=dri-devel@lists.freedesktop.org \
--cc=eric@anholt.net \
--cc=intel-gfx@lists.freedesktop.org \
--cc=intel-xe@lists.freedesktop.org \
--cc=jani.nikula@linux.intel.com \
--cc=jbarnes@virtuousgeek.org \
--cc=jernej.skrabec@gmail.com \
--cc=jonas@kwiboo.se \
--cc=joonas.lahtinen@linux.intel.com \
--cc=kory.maincent@bootlin.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mediatek@lists.infradead.org \
--cc=louis.chauvet@bootlin.com \
--cc=maarten.lankhorst@linux.intel.com \
--cc=markyacoub@google.com \
--cc=matthias.bgg@gmail.com \
--cc=mripard@kernel.org \
--cc=neil.armstrong@linaro.org \
--cc=p.zabel@pengutronix.de \
--cc=rfoss@kernel.org \
--cc=rodrigo.vivi@intel.com \
--cc=seanpaul@google.com \
--cc=simona.vetter@ffwll.ch \
--cc=simona@ffwll.ch \
--cc=thomas.petazzoni@bootlin.com \
--cc=tursulin@ursulin.net \
--cc=tzimmermann@suse.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.