-----Original Message----- From: Almahallawy, Khaled <[email protected]> Sent: Wednesday, July 2, 2025 3:39 PM To: [email protected]; [email protected]; [email protected] Cc: Almahallawy, Khaled <[email protected]>; Shankar, Uma <[email protected]>; Sean Paul <[email protected]>; Cavitt, Jonathan <[email protected]>; Nikula, Jani <[email protected]> Subject: [PATCH] drm/display: Increase DP_RECEIVER_CAP_SIZE from 15 to 16 bytes > > Several Link Layer tests (4.2.2.1-2, 4.2.2.7-9) fail because DPTX doesn't > read DPCD ADAPTER_CAP addresses (0x000F and 0x220F). > > 4.2.2.1 test states [1]: > "Fail1: Source DUT failed to read the DPCD Receiver Capability field > (DPCD:00000h:0000Fh) through AUX_CH before link training." > > 4.2.2.2 test states [1]: > "Fail2: Source DUT failed to read the DPCD Extended Receiver Capability > field (DPCD:02200h:0220Fh) through AUX_CH before link training." > > Additionally, the spec [2] states: > "The Source device shall respond to Hot Plug event/Hot Re-plug event by > first reading DPCD Link/Sink Device Status registers at DPCD 00200h > through 00205h -or- DPCD 02002h through 0200Fh. If the link is unstable > or lost, the Source device then reads the DPCD Receiver Capabilities > registers at DPCD 00000h through 0000Fh to determine the appropriate > information needed to train the link. The Source device shall then > initiate link training." > > Increasing DP_RECEIVER_CAP_SIZE by 1 byte ensures passing the test > conditions for these link layer tests. > > [1]: DisplayPort v2.1 Link Layer Compliance Test Specification > sections 4.2.2.1 & 4.2.2.2 > [2]: DisplayPort Standard v2.1 - Sec 5.1.4 Source Device Behavior > upon HPD Pulse Detection > > Cc: Uma Shankar <[email protected]> > Cc: Sean Paul <[email protected]> > Cc: Jonathan Cavitt <[email protected]> > Cc: Jani Nikula <[email protected]> > Signed-off-by: Khaled Almahallawy <[email protected]>
LGTM. Reviewed-by: Jonathan Cavitt <[email protected]> -Jonathan Cavitt > --- > include/drm/display/drm_dp.h | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/include/drm/display/drm_dp.h b/include/drm/display/drm_dp.h > index 811e9238a77c..960c9757ba76 100644 > --- a/include/drm/display/drm_dp.h > +++ b/include/drm/display/drm_dp.h > @@ -1681,7 +1681,7 @@ enum drm_dp_phy { > #define DP_LINK_STATUS_SIZE 6 > > #define DP_BRANCH_OUI_HEADER_SIZE 0xc > -#define DP_RECEIVER_CAP_SIZE 0xf > +#define DP_RECEIVER_CAP_SIZE 0x10 > #define DP_DSC_RECEIVER_CAP_SIZE 0x10 /* DSC Capabilities 0x60 > through 0x6F */ > #define EDP_PSR_RECEIVER_CAP_SIZE 2 > #define EDP_DISPLAY_CTL_CAP_SIZE 5 > -- > 2.43.0 > >
