USB4 runs over USB-C and can tunnels USB3, PCIe and DP protocols. A USB4 router is responsible for mapping Tunneled Protocol traffic to USB4 packets and routes packets through the USB4 Fabric. For this patchset, we have native DisplayPort able to be tunneled over USB4 Fabric. E.g. DP source -> DPIA (DP In Adapter) -> USB4 host router -> USB4 port -> USB4 device router -> DPOA (DP Out Adapter) -> DPTX -> DP sink Briefly, there is a CM (Connection Manager) in USB subsystem which handles relevant USB4 channel configuratons. Our DMCUB is responsible for interacting with CM to control DPIA to enable Video Path & AUX Path. Once DPIA gets into Paired state, DP source is then having a constructed end-to-end path to interact with DP sink as the conventional way. >From DP Source perspective, the USB4 Fabric and the Adapters are either totally transparent or act as an LTTPR. Besides, due to constraints of USB4 protocols, AUX transactions under USB4 now is handled by DMCUB to meet USB4 protocol requirement. Changes since v1: * Give the description of rough working flow of USB4 DP tunneling --- Jimmy Kizito (14): drm/amd/display: Update link encoder object creation. drm/amd/display: Support USB4 dynamic link encoder selection. drm/amd/display: Support USB4 for display endpoint control path. drm/amd/display: Support DP tunneling when DPRX detection drm/amd/display: Update training parameters for DPIA links drm/amd/display: Support USB4 when DP link training. drm/amd/display: Implement DPIA training loop drm/amd/display: Implement DPIA link configuration drm/amd/display: Implement DPIA clock recovery phase drm/amd/display: Implement DPIA equalisation phase drm/amd/display: Implement end of training for hop in DPIA display path drm/amd/display: Read USB4 DP tunneling data from DPCD. drm/amd/display: Fix DIG_HPD_SELECT for USB4 display endpoints. drm/amd/display: Add debug flags for USB4 DP link training. Jude Shih (4): drm/amd/display: Support for SET_CONFIG processing with DMUB drm/amd/display: Deadlock/HPD Status/Crash Bug Fix drm/amd/display: Fix USB4 Aux via DMUB terminate unexpectedly drm/amd/display: USB4 bring up set correct address Meenakshikumar Somasundaram (5): drm/amd/display: USB4 DPIA enumeration and AUX Tunneling drm/amd/display: Support for DMUB HPD and HPD RX interrupt handling drm/amd/display: Support for SET_CONFIG processing with DMUB drm/amd/display: Add dpia debug options drm/amd/display: Fix for access for ddc pin and aux engine. .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 106 +- .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h | 12 +- .../amd/display/amdgpu_dm/amdgpu_dm_helpers.c | 17 +- drivers/gpu/drm/amd/display/dc/Makefile | 2 +- drivers/gpu/drm/amd/display/dc/core/dc.c | 179 +++- drivers/gpu/drm/amd/display/dc/core/dc_link.c | 81 +- .../gpu/drm/amd/display/dc/core/dc_link_ddc.c | 9 +- .../gpu/drm/amd/display/dc/core/dc_link_dp.c | 36 +- .../drm/amd/display/dc/core/dc_link_dpia.c | 945 ++++++++++++++++++ drivers/gpu/drm/amd/display/dc/core/dc_stat.c | 8 + drivers/gpu/drm/amd/display/dc/dc.h | 22 + drivers/gpu/drm/amd/display/dc/dc_dp_types.h | 31 + drivers/gpu/drm/amd/display/dc/dc_types.h | 1 + drivers/gpu/drm/amd/display/dc/dce/dce_aux.c | 3 + .../display/dc/dcn31/dcn31_dio_link_encoder.c | 126 ++- .../drm/amd/display/dc/dcn31/dcn31_hwseq.c | 6 + .../drm/amd/display/dc/dcn31/dcn31_resource.c | 7 + drivers/gpu/drm/amd/display/dc/dm_helpers.h | 5 + .../gpu/drm/amd/display/dc/inc/core_types.h | 3 + .../gpu/drm/amd/display/dc/inc/dc_link_ddc.h | 1 + .../gpu/drm/amd/display/dc/inc/dc_link_dpia.h | 98 ++ drivers/gpu/drm/amd/display/dc/inc/resource.h | 1 + drivers/gpu/drm/amd/display/dc/os_types.h | 1 + drivers/gpu/drm/amd/display/dmub/dmub_srv.h | 3 + .../gpu/drm/amd/display/dmub/inc/dmub_cmd.h | 113 ++- .../gpu/drm/amd/display/dmub/src/dmub_dcn31.c | 1 + .../drm/amd/display/dmub/src/dmub_srv_stat.c | 16 + .../gpu/drm/amd/display/include/dal_asic_id.h | 2 +- 28 files changed, 1793 insertions(+), 42 deletions(-) create mode 100644 drivers/gpu/drm/amd/display/dc/core/dc_link_dpia.c create mode 100644 drivers/gpu/drm/amd/display/dc/inc/dc_link_dpia.h -- 2.25.1