]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
drm/amd/display: Add DPIA debug option for zero allocation patch
authorCruise Hung <Cruise.Hung@amd.com>
Mon, 26 May 2025 07:07:59 +0000 (15:07 +0800)
committerAlex Deucher <alexander.deucher@amd.com>
Wed, 18 Jun 2025 16:19:15 +0000 (12:19 -0400)
[WHY & HOW]
The BW zero allocation patch is no longer required.
Add a debug option to enable it in case we encounter an issue.

Reviewed-by: Wenjing Liu <wenjing.liu@amd.com>
Signed-off-by: Cruise Hung <Cruise.Hung@amd.com>
Signed-off-by: Alex Hung <alex.hung@amd.com>
Tested-by: Daniel Wheeler <daniel.wheeler@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/display/dc/dc.h
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_dpia_bw.c

index 5c01a535b4fa8f74ecb011a34d9068c2d249e05c..83ee6ddaddb74efce3938c9b8a01798c4ef569bc 100644 (file)
@@ -824,7 +824,8 @@ union dpia_debug_options {
                uint32_t disable_mst_dsc_work_around:1; /* bit 3 */
                uint32_t enable_force_tbt3_work_around:1; /* bit 4 */
                uint32_t disable_usb4_pm_support:1; /* bit 5 */
-               uint32_t reserved:26;
+               uint32_t enable_usb4_bw_zero_alloc_patch:1; /* bit 6 */
+               uint32_t reserved:25;
        } bits;
        uint32_t raw;
 };
index 3af7564a84f107a249459bc7834203899fd27e84..642feac5a6737eaa68d526ac28acb15d51cb02b1 100644 (file)
@@ -304,14 +304,16 @@ bool link_dpia_enable_usb4_dp_bw_alloc_mode(struct dc_link *link)
                        link->dpia_bw_alloc_config.bw_alloc_enabled = true;
                        ret = true;
 
-                       /*
-                        * During DP tunnel creation, CM preallocates BW and reduces estimated BW of other
-                        * DPIA. CM release preallocation only when allocation is complete. Do zero alloc
-                        * to make the CM to release preallocation and update estimated BW correctly for
-                        * all DPIAs per host router
-                        */
-                       // TODO: Zero allocation can be removed once the MSFT CM fix has been released
-                       link_dp_dpia_allocate_usb4_bandwidth_for_stream(link, 0);
+                       if (link->dc->debug.dpia_debug.bits.enable_usb4_bw_zero_alloc_patch) {
+                               /*
+                                * During DP tunnel creation, the CM preallocates BW
+                                * and reduces the estimated BW of other DPIAs.
+                                * The CM releases the preallocation only when the allocation is complete.
+                                * Perform a zero allocation to make the CM release the preallocation
+                                * and correctly update the estimated BW for all DPIAs per host router.
+                                */
+                               link_dp_dpia_allocate_usb4_bandwidth_for_stream(link, 0);
+                       }
                } else
                        DC_LOG_DEBUG("%s:  link[%d] failed to enable DPTX BW allocation mode", __func__, link->link_index);
        }