All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH i-g-t v5 0/4] kms_dp_linktrain_fallback: Add UHBR-to-HBR fallback subtest
@ 2026-08-17  8:26 Sowmiya S
  2026-08-17  8:26 ` [PATCH i-g-t v5 1/4] lib/i915/i915_dp: Add UHBR helpers and const-correct set_link_params Sowmiya S
                   ` (8 more replies)
  0 siblings, 9 replies; 16+ messages in thread
From: Sowmiya S @ 2026-08-17  8:26 UTC (permalink / raw)
  To: igt-dev; +Cc: karthik.b.s, kunal1.joshi, Sowmiya S

DP 2.x links use 128b/132b channel encoding for UHBR rates
(UHBR10/13.5/20) and 8b/10b for legacy HBR3 and below. The transition
between the two encodings goes through a port-slice reset on the
source side. The existing dp-fallback subtest only covers 8b/10b-to-8b/10b
fallback; this series adds a dedicated subtest for the UHBR->HBR direction.

Adds two library helpers to lib/i915/i915_dp:
  - i915_dp_is_uhbr_rate(): mirrors the kernel's drm_dp_is_uhbr_rate()
  - i915_dp_get_next_lower_rate(): parses the force_link_rate debugfs list
    with proper strtok_r/strtol/errno handling

const char * signature for i915_dp_set_link_params() so string literals
can be passed directly without a writable-array workaround.

Fixes a pre-existing bug where the file-static traversed_mst_output_count
was never reset between subtests, causing all MST outputs to be silently
skipped as "already visited" in a full-binary run.

Adds the uhbr-to-hbr-fallback subtest. The subtest pins the link at the
highest sustainable UHBR rate (stepping down if the cable cannot sustain
the sink's max), forces repeated LT_FAILURE_REDUCED_CAPS failures, and
asserts the rate drops below UHBR10. MST topologies are supported since
all siblings share the physical link. The existing run_lt_fallback_test()
is extended with force_uhbr parameter to avoid ~45 lines of duplication.

v2: Resets MST traversal state per test run
v3:
  - Drop "exercising the port slice reset path" from SUBTEST description
  - Revert unrelated cosmetic hunk in setup_mst_outputs()
  - Single UHBR capability gate using i915_dp_get_max_link_rate()
  - remove duplicate gate using i915_dp_get_max_supported_rate()
  - Fix link rate log units (10 kbit/s, not kbps)
  - Add igt_reset_connectors() to pin-loop early-return path
  - Replace UHBR10_LINK_RATE define with i915_dp_is_uhbr_rate() helper
  - Replace open-coded strtok() parsing with i915_dp_get_next_lower_rate()
  - Hard-assert "fallback not reached" instead of returning false
  - Remove dead traversed_mst_output_count reset in run_dsc path
  - Merge run_uhbr_to_hbr_fallback_test() into run_lt_fallback_test()
  - Use "auto" string literal directly (const char * param fix)
  - Move reset before UHBR capability gate read in run_lt_fallback_test()
  - Document force_uhbr parameter and "clear the pin" reset behaviour
v4:
  - name the UHBR10 threshold and make i915_dp_is_uhbr_rate() a
    static inline in the header to avoid a cross-TU call
  - parse intel_dp_allowed_link_configs instead of the source-only
    i915_dp_force_link_rate list in i915_dp_get_next_lower_rate()
  - avoid the implicit long to int narrowing on the return value 
v5: commit display reset before fallback 

Sowmiya S (4):
  lib/i915/i915_dp: Add UHBR helpers and const-correct set_link_params
  tests/intel/kms_dp_linktrain_fallback: Reset traversed MST output
    count
  tests/intel/kms_dp_linktrain_fallback: Add UHBR-to-HBR fallback
    subtest
  tests/intel/kms_dp_linktrain_fallback: commit display reset before
    fallback

 lib/i915/i915_dp.c                      |  58 ++++++-
 lib/i915/i915_dp.h                      |  24 ++-
 tests/intel/kms_dp_linktrain_fallback.c | 202 +++++++++++++++++++++---
 3 files changed, 260 insertions(+), 24 deletions(-)

-- 
2.43.0


^ permalink raw reply	[flat|nested] 16+ messages in thread

end of thread, other threads:[~2026-08-19  5:26 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-08-17  8:26 [PATCH i-g-t v5 0/4] kms_dp_linktrain_fallback: Add UHBR-to-HBR fallback subtest Sowmiya S
2026-08-17  8:26 ` [PATCH i-g-t v5 1/4] lib/i915/i915_dp: Add UHBR helpers and const-correct set_link_params Sowmiya S
2026-08-19  5:24   ` Joshi, Kunal1
2026-08-17  8:26 ` [PATCH i-g-t v5 2/4] tests/intel/kms_dp_linktrain_fallback: Reset traversed MST output count Sowmiya S
2026-08-19  5:24   ` Joshi, Kunal1
2026-08-17  8:26 ` [PATCH i-g-t v5 3/4] tests/intel/kms_dp_linktrain_fallback: Add UHBR-to-HBR fallback subtest Sowmiya S
2026-08-19  5:25   ` Joshi, Kunal1
2026-08-17  8:26 ` [PATCH i-g-t v5 4/4] tests/intel/kms_dp_linktrain_fallback: commit display reset before fallback Sowmiya S
2026-08-19  5:16   ` Joshi, Kunal1
2026-08-17  9:02 ` [PATCH i-g-t v5 0/4] kms_dp_linktrain_fallback: Add UHBR-to-HBR fallback subtest Jani Nikula
2026-08-17  9:21   ` S, Sowmiya
2026-08-17  9:50     ` Jani Nikula
2026-08-17 16:23 ` ✓ Xe.CI.BAT: success for kms_dp_linktrain_fallback: Add UHBR-to-HBR fallback subtest (rev3) Patchwork
2026-08-17 16:39 ` ✓ i915.CI.BAT: " Patchwork
2026-08-17 19:04 ` ✗ Xe.CI.FULL: failure " Patchwork
2026-08-18  6:30 ` ✗ i915.CI.Full: " Patchwork

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.