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)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 20 Jan 2024 10:51:46 +0000 (11:51 +0100)
[ Upstream commit 989824589f793120833bef13aa4e21f5a836a707 ]

[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>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/gpu/drm/amd/display/dc/core/dc.c

index a1be93f..8cdf380 100644 (file)
@@ -4865,18 +4865,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;
+
 }
 
 /**