]> git.proxmox.com Git - mirror_ubuntu-kernels.git/commitdiff
drm/amd/display: Add case for dcn35 to support usb4 dmub hpd event
authorWayne Lin <wayne.lin@amd.com>
Tue, 5 Dec 2023 06:55:31 +0000 (14:55 +0800)
committerAlex Deucher <alexander.deucher@amd.com>
Tue, 19 Dec 2023 19:47:53 +0000 (14:47 -0500)
[Why & how]
Refactor dc_is_dmub_outbox_supported() a bit and add case for dcn35 to
register dmub outbox notification irq to handle usb4 relevant hpd event.

Reviewed-by: Roman Li <roman.li@amd.com>
Reviewed-by: Jun Lei <jun.lei@amd.com>
Signed-off-by: Wayne Lin <wayne.lin@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/core/dc.c

index 0d42074f33a64844b1eb832e5462dfdddf7db794..445f87fa0eac84169927230ed4b160283b146c51 100644 (file)
@@ -5089,18 +5089,28 @@ void dc_mclk_switch_using_fw_based_vblank_stretch_shut_down(struct dc *dc)
  */
 bool dc_is_dmub_outbox_supported(struct dc *dc)
 {
-       /* DCN31 B0 USB4 DPIA needs dmub notifications for interrupts */
-       if (dc->ctx->asic_id.chip_family == FAMILY_YELLOW_CARP &&
-           dc->ctx->asic_id.hw_internal_rev == YELLOW_CARP_B0 &&
-           !dc->debug.dpia_debug.bits.disable_dpia)
-               return true;
+       switch (dc->ctx->asic_id.chip_family) {
 
-       if (dc->ctx->asic_id.chip_family == AMDGPU_FAMILY_GC_11_0_1 &&
-           !dc->debug.dpia_debug.bits.disable_dpia)
-               return true;
+       case FAMILY_YELLOW_CARP:
+               /* DCN31 B0 USB4 DPIA needs dmub notifications for interrupts */
+               if (dc->ctx->asic_id.hw_internal_rev == YELLOW_CARP_B0 &&
+                   !dc->debug.dpia_debug.bits.disable_dpia)
+                       return true;
+       break;
+
+       case AMDGPU_FAMILY_GC_11_0_1:
+       case AMDGPU_FAMILY_GC_11_5_0:
+               if (!dc->debug.dpia_debug.bits.disable_dpia)
+                       return true;
+       break;
+
+       default:
+               break;
+       }
 
        /* dmub aux needs dmub notifications to be enabled */
        return dc->debug.enable_dmub_aux_for_legacy_ddc;
+
 }
 
 /**