On Thu, Mar 05, 2026 at 01:48:10PM +0530, Arun R Murthy wrote:
> 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.

Not exactly. The Standard requires reading the DPRX capabilities after
the LTTPR caps are read. The driver does read the DPRX caps after
reading the LTTPR caps. The DP Standard does not mandate that the first
read after a sink is connected (i.e. after the HPD signal of the sink is
asserted) must be an LTTPR capability read and cannot be any other DPCD
register read. In fact this would be impossible to guarantee, a DPRX
capability read - or any DPCD register read for that matter - could
happen at any point and so it could happen right after the HPD signal
got asserted.

> 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.

The driver does read the DPRX capabilities after reading the LTTPR
capabilities. This is what the standard mandates.

The workaround for issues/3415 depends on the DPCD_REV value, so this is
read separately before reading the LTTPR caps. I don't see a better way
to implement the workaround and such read is not prohibited by the DP
Standard either. So I don't see the point of the changes in this
patchset.

> 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