Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

drm/amdgpu: add common gfx_ras_fini function

gfx_ras_fini can be shared among all generations of gfx

Signed-off-by: Tao Zhou <tao.zhou1@amd.com>
Reviewed-by: Guchun Chen <guchun.chen@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>

authored by

Tao Zhou and committed by
Alex Deucher
3b7b7647 2adf1344

+17 -13
+15
drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c
··· 619 619 return r; 620 620 } 621 621 622 + void amdgpu_gfx_ras_fini(struct amdgpu_device *adev) 623 + { 624 + if (amdgpu_ras_is_supported(adev, AMDGPU_RAS_BLOCK__GFX) && 625 + adev->gfx.ras_if) { 626 + struct ras_common_if *ras_if = adev->gfx.ras_if; 627 + struct ras_ih_if ih_info = { 628 + .head = *ras_if, 629 + .cb = amdgpu_gfx_process_ras_data_cb, 630 + }; 631 + 632 + amdgpu_ras_late_fini(adev, ras_if, &ih_info); 633 + kfree(ras_if); 634 + } 635 + } 636 + 622 637 int amdgpu_gfx_process_ras_data_cb(struct amdgpu_device *adev, 623 638 void *err_data, 624 639 struct amdgpu_iv_entry *entry)
+1
drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.h
··· 360 360 void amdgpu_gfx_off_ctrl(struct amdgpu_device *adev, bool enable); 361 361 int amdgpu_gfx_ras_late_init(struct amdgpu_device *adev, 362 362 void *ras_ih_info); 363 + void amdgpu_gfx_ras_fini(struct amdgpu_device *adev); 363 364 int amdgpu_gfx_process_ras_data_cb(struct amdgpu_device *adev, 364 365 void *err_data, 365 366 struct amdgpu_iv_entry *entry);
+1 -13
drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c
··· 2133 2133 int i; 2134 2134 struct amdgpu_device *adev = (struct amdgpu_device *)handle; 2135 2135 2136 - if (amdgpu_ras_is_supported(adev, AMDGPU_RAS_BLOCK__GFX) && 2137 - adev->gfx.ras_if) { 2138 - struct ras_common_if *ras_if = adev->gfx.ras_if; 2139 - struct ras_ih_if ih_info = { 2140 - .head = *ras_if, 2141 - }; 2142 - 2143 - amdgpu_ras_debugfs_remove(adev, ras_if); 2144 - amdgpu_ras_sysfs_remove(adev, ras_if); 2145 - amdgpu_ras_interrupt_remove_handler(adev, &ih_info); 2146 - amdgpu_ras_feature_enable(adev, ras_if, 0); 2147 - kfree(ras_if); 2148 - } 2136 + amdgpu_gfx_ras_fini(adev); 2149 2137 2150 2138 for (i = 0; i < adev->gfx.num_gfx_rings; i++) 2151 2139 amdgpu_ring_fini(&adev->gfx.gfx_ring[i]);