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

Configure Feed

Select the types of activity you want to include in your feed.

drm/amdgpu: Add wrapper function for dpc state

Use wrapper functions to set/indicate dpc status.

Signed-off-by: Lijo Lazar <lijo.lazar@amd.com>
Reviewed-by: Ce Sun <cesun102@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>

authored by

Lijo Lazar and committed by
Alex Deucher
5c2b3226 9b331f0f

+19 -9
+8 -9
drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
··· 5699 5699 5700 5700 dev_info(adev->dev, "GPU link reset\n"); 5701 5701 5702 - if (!adev->pcie_reset_ctx.occurs_dpc) 5702 + if (!amdgpu_reset_in_dpc(adev)) 5703 5703 ret = amdgpu_dpm_link_reset(adev); 5704 5704 5705 5705 if (ret) ··· 6150 6150 list_add_tail(&tmp_adev->reset_list, device_list); 6151 6151 if (adev->shutdown) 6152 6152 tmp_adev->shutdown = true; 6153 - if (adev->pcie_reset_ctx.occurs_dpc) 6153 + if (amdgpu_reset_in_dpc(adev)) 6154 6154 tmp_adev->pcie_reset_ctx.in_link_reset = true; 6155 6155 } 6156 6156 if (!list_is_first(&adev->reset_list, device_list)) ··· 6226 6226 drm_client_dev_suspend(adev_to_drm(tmp_adev), false); 6227 6227 6228 6228 /* disable ras on ALL IPs */ 6229 - if (!need_emergency_restart && 6230 - (!adev->pcie_reset_ctx.occurs_dpc) && 6231 - amdgpu_device_ip_need_full_reset(tmp_adev)) 6229 + if (!need_emergency_restart && !amdgpu_reset_in_dpc(adev) && 6230 + amdgpu_device_ip_need_full_reset(tmp_adev)) 6232 6231 amdgpu_ras_suspend(tmp_adev); 6233 6232 6234 6233 for (i = 0; i < AMDGPU_MAX_RINGS; ++i) { ··· 6255 6256 6256 6257 retry: /* Rest of adevs pre asic reset from XGMI hive. */ 6257 6258 list_for_each_entry(tmp_adev, device_list, reset_list) { 6258 - if (adev->pcie_reset_ctx.occurs_dpc) 6259 + if (amdgpu_reset_in_dpc(adev)) 6259 6260 tmp_adev->no_hw_access = true; 6260 6261 r = amdgpu_device_pre_asic_reset(tmp_adev, reset_context); 6261 - if (adev->pcie_reset_ctx.occurs_dpc) 6262 + if (amdgpu_reset_in_dpc(adev)) 6262 6263 tmp_adev->no_hw_access = false; 6263 6264 /*TODO Should we stop ?*/ 6264 6265 if (r) { ··· 6900 6901 6901 6902 if (hive) 6902 6903 mutex_lock(&hive->hive_lock); 6903 - adev->pcie_reset_ctx.occurs_dpc = true; 6904 + amdgpu_reset_set_dpc_status(adev, true); 6904 6905 memset(&reset_context, 0, sizeof(reset_context)); 6905 6906 INIT_LIST_HEAD(&device_list); 6906 6907 ··· 7063 7064 amdgpu_device_sched_resume(&device_list, NULL, NULL); 7064 7065 amdgpu_device_gpu_resume(adev, &device_list, false); 7065 7066 amdgpu_device_recovery_put_reset_lock(adev, &device_list); 7066 - adev->pcie_reset_ctx.occurs_dpc = false; 7067 + amdgpu_reset_set_dpc_status(adev, false); 7067 7068 7068 7069 if (hive) { 7069 7070 mutex_unlock(&hive->hive_lock);
+11
drivers/gpu/drm/amd/amdgpu/amdgpu_reset.h
··· 160 160 161 161 bool amdgpu_reset_in_recovery(struct amdgpu_device *adev); 162 162 163 + static inline void amdgpu_reset_set_dpc_status(struct amdgpu_device *adev, 164 + bool status) 165 + { 166 + adev->pcie_reset_ctx.occurs_dpc = status; 167 + } 168 + 169 + static inline bool amdgpu_reset_in_dpc(struct amdgpu_device *adev) 170 + { 171 + return adev->pcie_reset_ctx.occurs_dpc; 172 + } 173 + 163 174 #endif