From c30b9813bce1d9e2361dc80ef40208b045bde8ca Mon Sep 17 00:00:00 2001 From: Fangzhi Zuo Date: Tue, 1 Sep 2026 15:32:30 -0400 Subject: [PATCH] drm/amd/display: Force DSC to 8bpp for SST DP tunneling over USB4 A 4K144 display attached through a USB4 (Thunderbolt) dock does not light up on DCN4.2. The native DP link bandwidth reported for the sink is far larger than the USB4 tunnel can carry, so DSC is sized to the link and the resulting stream overflows the tunnel's granted bandwidth. The bandwidth allocation request fails and the display stays dark. When the endpoint is a USB4 DPIA with BW allocation enabled, force DSC and cap the target to 8 bpp in SST mode. This keeps the compressed stream within the tunnel budget and reserves headroom for other DP tunnels sharing the same host router. Reviewed-by: Roman Li Signed-off-by: Fangzhi Zuo Signed-off-by: Chenyu Chen Tested-by: Daniel Wheeler Signed-off-by: Alex Deucher --- drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_connector.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_connector.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_connector.c index fd5bb9004f6c..31e9f029a707 100644 --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_connector.c +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_connector.c @@ -1267,6 +1267,12 @@ static void apply_dsc_policy_for_stream(struct amdgpu_dm_connector *aconnector, link_bandwidth_kbps = dc_link_bandwidth_kbps(aconnector->dc_link, dc_link_get_link_cap(aconnector->dc_link)); + if (aconnector->dc_link->ep_type == DISPLAY_ENDPOINT_USB4_DPIA && + aconnector->dc_link->dpia_bw_alloc_config.bw_alloc_enabled) { + dsc_options.max_target_bpp_limit_override_x16 = 8 * 16; + dsc_options.force_dsc_when_not_needed = true; + } + /* Set DSC policy according to dsc_clock_en */ dc_dsc_policy_set_enable_dsc_when_not_needed( aconnector->dsc_settings.dsc_force_enable == DSC_CLK_FORCE_ENABLE);