diff options
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c')
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c index a0e34f62f110..22bd21efe6b1 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c | |||
@@ -530,6 +530,33 @@ int amdgpu_ras_feature_enable(struct amdgpu_device *adev, | |||
530 | return 0; | 530 | return 0; |
531 | } | 531 | } |
532 | 532 | ||
533 | /* Only used in device probe stage and called only once. */ | ||
534 | int amdgpu_ras_feature_enable_on_boot(struct amdgpu_device *adev, | ||
535 | struct ras_common_if *head, bool enable) | ||
536 | { | ||
537 | struct amdgpu_ras *con = amdgpu_ras_get_context(adev); | ||
538 | int ret; | ||
539 | |||
540 | if (!con) | ||
541 | return -EINVAL; | ||
542 | |||
543 | if (con->flags & AMDGPU_RAS_FLAG_INIT_BY_VBIOS) { | ||
544 | /* If ras is enabled by vbios, we set up ras object first in | ||
545 | * both case. For enable, that is all what we need do. For | ||
546 | * disable, we need perform a ras TA disable cmd after that. | ||
547 | */ | ||
548 | ret = __amdgpu_ras_feature_enable(adev, head, 1); | ||
549 | if (ret) | ||
550 | return ret; | ||
551 | |||
552 | if (!enable) | ||
553 | ret = amdgpu_ras_feature_enable(adev, head, 0); | ||
554 | } else | ||
555 | ret = amdgpu_ras_feature_enable(adev, head, enable); | ||
556 | |||
557 | return ret; | ||
558 | } | ||
559 | |||
533 | static int amdgpu_ras_disable_all_features(struct amdgpu_device *adev, | 560 | static int amdgpu_ras_disable_all_features(struct amdgpu_device *adev, |
534 | bool bypass) | 561 | bool bypass) |
535 | { | 562 | { |