As per the spec  DP2.1 section 3.6.8.6.1, section 2.12.1,
section 2.12.3 (Link Policy) the LTTPR caps is to be read first
followed by the DPRX capability.

Git log shows that initially drm dp helper exposed function to read
lttpr caps. Driver reads the lttpr caps and then the dprx caps.
For a particular issue 
https://gitlab.freedesktop.org/drm/intel/-/issues/3415
as a workaround reading dprx caps was done first to know if the panel is
< DP1.4 and then read 1 block at a time for lttpr caps.

This can be handled in a better way and two such ways is what I see.
1. Read LTTPR caps followed by DPRX caps as per the spec. Then on
reading dprx caps if revision < 1.4 then re-read the lttpr caps one
block at a time.

2. Read LTTPR caps and if 8b/10b check for correctness of the link rate
supported(lttpr caps 0xf0001), if some corrupted value is read then read
one block at a time.

I am open for either of the two or you have any other options as well I
am open.

Signed-off-by: Arun R Murthy <[email protected]>
---
Arun R Murthy (4):
      drm/display/dp: Read LTTPR caps without DPRX caps
      drm/i915/dp: Read LTTPR caps followed by DPRX caps
      drm/i915/dp: On HPD read LTTPR caps followed by DPRX caps
      drm/i915/dp: DPRX/LTTPR caps for DP should be read once

 drivers/gpu/drm/display/drm_dp_helper.c            | 63 ++++++++++++++++++++++
 drivers/gpu/drm/i915/display/intel_dp.c            |  3 +-
 .../gpu/drm/i915/display/intel_dp_link_training.c  | 40 +++++++-------
 .../gpu/drm/i915/display/intel_dp_link_training.h  |  1 -
 drivers/gpu/drm/i915/display/intel_dp_tunnel.c     |  3 +-
 include/drm/display/drm_dp_helper.h                |  2 +
 6 files changed, 86 insertions(+), 26 deletions(-)
---
base-commit: cfc20c776480fda8c1b0517b187bb71ec0781cd4
change-id: 20260305-dp_aux-1e27599e06c8

Best regards,
-- 
Arun R Murthy <[email protected]>

Reply via email to