drm/amdgpu: add debug flag to enable RAS ACA
authorYang Wang <kevinyang.wang@amd.com>
Tue, 14 May 2024 07:56:34 +0000 (15:56 +0800)
committerAlex Deucher <alexander.deucher@amd.com>
Fri, 17 May 2024 21:40:36 +0000 (17:40 -0400)
Use debug_mask=0x10 (BIT.4) param to help enable RAS ACA.
(RAS ACA is disabled by default.)

Signed-off-by: Yang Wang <kevinyang.wang@amd.com>
Reviewed-by: Hawking Zhang <Hawking.Zhang@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/amdgpu.h
drivers/gpu/drm/amd/amdgpu/amdgpu_aca.c
drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c

index 733ecffc640ec82051dff17edcd9cf28c7c5b02c..d66163e756f14ec41688e9ca31f138111aa157e8 100644 (file)
@@ -1166,6 +1166,7 @@ struct amdgpu_device {
        bool                            debug_largebar;
        bool                            debug_disable_soft_recovery;
        bool                            debug_use_vram_fw_buf;
+       bool                            debug_enable_ras_aca;
 };
 
 static inline uint32_t amdgpu_ip_version(const struct amdgpu_device *adev,
index 9e3560c190e316d22564bf669ee9658a77a8af14..0002d3ae4761a666ba5914ce71b4a7c3d2c2c47e 100644 (file)
@@ -686,7 +686,8 @@ static void aca_manager_fini(struct aca_handle_manager *mgr)
 
 bool amdgpu_aca_is_enabled(struct amdgpu_device *adev)
 {
-       return adev->aca.is_enabled;
+       return (adev->aca.is_enabled ||
+               adev->debug_enable_ras_aca);
 }
 
 int amdgpu_aca_init(struct amdgpu_device *adev)
index caf89d21b61c0f02627cf09176799932ad5678f1..1c4a444ee7d6afc8787185c1f3afd853d75ee7e3 100644 (file)
@@ -129,6 +129,7 @@ enum AMDGPU_DEBUG_MASK {
        AMDGPU_DEBUG_LARGEBAR = BIT(1),
        AMDGPU_DEBUG_DISABLE_GPU_SOFT_RECOVERY = BIT(2),
        AMDGPU_DEBUG_USE_VRAM_FW_BUF = BIT(3),
+       AMDGPU_DEBUG_ENABLE_RAS_ACA = BIT(4),
 };
 
 unsigned int amdgpu_vram_limit = UINT_MAX;
@@ -2192,6 +2193,11 @@ static void amdgpu_init_debug_options(struct amdgpu_device *adev)
                pr_info("debug: place fw in vram for frontdoor loading\n");
                adev->debug_use_vram_fw_buf = true;
        }
+
+       if (amdgpu_debug_mask & AMDGPU_DEBUG_ENABLE_RAS_ACA) {
+               pr_info("debug: enable RAS ACA\n");
+               adev->debug_enable_ras_aca = true;
+       }
 }
 
 static unsigned long amdgpu_fix_asic_type(struct pci_dev *pdev, unsigned long flags)