NACK[G]: [PATCH 00/38][SRU][G/H] Add DRM support for LTTPR non-transparent link training mode
Stefan Bader
stefan.bader at canonical.com
Tue Nov 24 13:13:18 UTC 2020
On 24.11.20 11:42, You-Sheng Yang wrote:
> BugLink: https://bugs.launchpad.net/bugs/1903969
>
> [Impact]
>
> On platforms supported DP tunneling over USB 3.2 or so, a Retimer is
> required on the host side to cover insertion loss. On such platforms the
> rtimer firmware maybe configured to use LTTPR (Link Training Tunable PHY
> Repeater) non-transparent mode only, which is only supported in drm-tip
> currently. Without LTTPR support, link training may fail with following
> error messages depending on the data path configuration:
>
> i915 0000:00:02.0: [drm] *ERROR* Link Training Unsuccessful
> i915 0000:00:02.0: [drm] *ERROR* CPU pipe A FIFO underrun
>
> [Fix]
>
> Patchset https://www.spinics.net/lists/intel-gfx/msg248700.html
> ("drm/i915: Add support for LTTPR non-transparent link training mode")
> is required to fix this issue. It has been landed to drm-tip and will
> only included to mainline in v5.11.
>
> Following patchsets were pulled to satisfy conflicts/link training basis:
> * Patchset https://patchwork.freedesktop.org/series/76993/ ("Plumb crtc
> state to link training code")
> * Patch https://patchwork.freedesktop.org/series/82277/ ("drm/i915: Fix
> TGL DKL PHY DP vswing handling")
> * Patchset https://patchwork.freedesktop.org/series/81083/ ("tgl/ehl:
> Update voltage swing table")
> * Patchset https://patchwork.freedesktop.org/series/80404/
> ("drm/i915/tgl: Add new voltage swing table")
> * Patchset https://patchwork.freedesktop.org/series/79265/
> ("drm/i915/display: Implement HOBL")
> * Patchset https://patchwork.freedesktop.org/series/79481/
> ("drm/i915/ddi: Don't rewrite DDI_BUF_CTL reg during DP link
> training")
> * Patchset https://patchwork.freedesktop.org/series/77198/ ("drm/i915:
> DP vswing/preemph fixes")
> * Patch https://patchwork.freedesktop.org/patch/373469/
> ("drm/i915/display: prefer dig_port to reference intel_digital_port")
> * Patch https://patchwork.freedesktop.org/series/76917/
> ("drm/i915: HDCP: retry link integrity check on failure")
> * Patch https://patchwork.freedesktop.org/series/77934/ ("drm/i915/tgl:
> Add HBR and HBR2+ voltage swing table")
> * Patch https://patchwork.freedesktop.org/series/77806/ ("drm/i915/tgl:
> Update TC DP vswing table")
>
> [Test Case]
>
> On Dell OptiPlex and WD19 docking station, use following steps to verify:
> 1. disconnect WD19 from OptiPlex, disconnect OptiPlex's power
> 2. attach OptiPlex's power cord
> 3. attach WD19's power cord
> 4. attach DP to WD19
> 5. attach WD19 to OptiPlex
> 6. boot up and check if boot to GUI directly
> 7. `dmesg` and check if aforementioned DRM link training error appears
>
> [Regression Potential]
>
> The patchsets pulled for dependency are mostly about updating voltage
> swing tables, refactoring some translation functions, along with a few
> function fixes. Aside from those, HOBL (Hours of Battery Life) is also
> pulled.
>
> For the major part, LTTPR support, when LTTPR is either not detected or
> not supported, it will fall back to use transparent mode as it was.
> Otherwise, DP Standard recommends to use LTTPR non-transparent mode for
> link training, so this should be the right way to have best hardware
> support.
>
> Imre Deak (8):
> drm/i915/ddi: Don't frob the DP link scramble disabling flag
> drm/i915/ddi: Don't rewrite DDI_BUF_CTL reg during DP link training
> drm/i915: Fix DP link training pattern mask
> drm/i915: Simplify the link training functions
> drm/i915: Factor out a helper to disable the DPCD training pattern
> drm/dp: Add LTTPR helpers
> drm/i915: Switch to LTTPR transparent mode link training
> drm/i915: Switch to LTTPR non-transparent mode link training
>
> José Roberto de Souza (11):
> drm/i915/tgl: Update TC DP vswing table
> drm/i915/tgl: Add HBR and HBR2+ voltage swing table
> drm/i915/display: Replace drm_i915_private in voltage swing functions
> by intel_encoder
> drm/i915/display: Remove port and phy from voltage swing functions
> drm/i915/bios: Parse HOBL parameter
> drm/i915/display: Implement HOBL
> drm/i915/tgl: Set subplatforms
> drm/i915/tgl: Add new voltage swing table
> drm/i915/display/tgl: Use TGL DP tables for eDP ports without low
> power support
> drm/i915/display/ehl: Use EHL DP tables for eDP ports without low
> power support
> drm/i915/ehl: Update voltage swing table
>
> Lucas De Marchi (1):
> drm/i915/display: prefer dig_port to reference intel_digital_port
>
> Oliver Barta (1):
> drm/i915: HDCP: retry link integrity check on failure
>
> Ville Syrjälä (17):
> drm/i915: Fix cpt/ppt max pre-emphasis
> drm/i915: Fix ibx max vswing/preemph
> drm/i915: Fix ivb cpu edp vswing
> drm/i915: Add {preemph,voltage}_max() vfuncs
> drm/i915: Reverse preemph vs. voltage swing preference
> drm/i915: Replace some hand rolled max()s
> drm/i915: Fix DP_TRAIN_MAX_{PRE_EMPHASIS,SWING}_REACHED handling
> drm/i915: Fix TGL DKL PHY DP vswing handling
> drm/i915: s/old_crtc_state/crtc_state/
> drm/i915: Make intel_dp_process_phy_request() static
> drm/i915: Shove the PHY test into the hotplug work
> drm/i915: Split ICL combo PHY buf trans per output type
> drm/i915: Split ICL MG PHY buf trans per output type
> drm/i915: Split EHL combo PHY buf trans per output type
> drm/i915: Split TGL combo PHY buf trans per output type
> drm/i915: Split TGL DKL PHY buf trans per output type
> drm/i915: Plumb crtc_state to link training
>
> drivers/gpu/drm/drm_dp_helper.c | 232 ++++-
> drivers/gpu/drm/i915/display/intel_bios.c | 3 +
> drivers/gpu/drm/i915/display/intel_ddi.c | 891 +++++++++++-------
> drivers/gpu/drm/i915/display/intel_ddi.h | 9 +-
> drivers/gpu/drm/i915/display/intel_display.c | 6 +-
> drivers/gpu/drm/i915/display/intel_display.h | 2 +-
> .../drm/i915/display/intel_display_debugfs.c | 12 +-
> .../drm/i915/display/intel_display_power.c | 4 +-
> .../drm/i915/display/intel_display_types.h | 63 +-
> drivers/gpu/drm/i915/display/intel_dp.c | 716 ++++++++------
> drivers/gpu/drm/i915/display/intel_dp.h | 19 +-
> .../drm/i915/display/intel_dp_link_training.c | 594 ++++++++++--
> .../drm/i915/display/intel_dp_link_training.h | 17 +-
> drivers/gpu/drm/i915/display/intel_dp_mst.c | 74 +-
> drivers/gpu/drm/i915/display/intel_dp_mst.h | 6 +-
> drivers/gpu/drm/i915/display/intel_dpio_phy.c | 61 +-
> drivers/gpu/drm/i915/display/intel_dpio_phy.h | 2 +
> drivers/gpu/drm/i915/display/intel_hdcp.c | 118 +--
> drivers/gpu/drm/i915/display/intel_hdmi.c | 276 +++---
> drivers/gpu/drm/i915/display/intel_hdmi.h | 4 +-
> drivers/gpu/drm/i915/display/intel_lspcon.c | 8 +-
> drivers/gpu/drm/i915/display/intel_lspcon.h | 2 +-
> drivers/gpu/drm/i915/display/intel_psr.c | 4 +-
> drivers/gpu/drm/i915/display/intel_vbt_defs.h | 1 +
> drivers/gpu/drm/i915/display/intel_vdsc.c | 8 +-
> drivers/gpu/drm/i915/i915_drv.h | 7 +
> drivers/gpu/drm/i915/i915_reg.h | 8 +
> drivers/gpu/drm/i915/intel_device_info.c | 19 +
> include/drm/drm_dp_helper.h | 62 ++
> 29 files changed, 2148 insertions(+), 1080 deletions(-)
>
Sorry, the regression potential for this is huge. It is changing thousands lines
of code on a driver most people likely use. And about half of the changes are
marked as not yet being upstream.
-Stefan
More information about the kernel-team
mailing list