Commit 75bc6099 authored by Monk Liu's avatar Monk Liu Committed by Alex Deucher

drm/amdgpu:read VRAMLOST from gim

Signed-off-by: default avatarMonk Liu <Monk.Liu@amd.com>
Acked-by: default avatarAlex Deucher <alexander.deucher@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent 0c03b912
...@@ -3037,11 +3037,10 @@ static int amdgpu_reset_sriov(struct amdgpu_device *adev, uint64_t *reset_flags, ...@@ -3037,11 +3037,10 @@ static int amdgpu_reset_sriov(struct amdgpu_device *adev, uint64_t *reset_flags,
amdgpu_virt_release_full_gpu(adev, true); amdgpu_virt_release_full_gpu(adev, true);
if (reset_flags) { if (reset_flags) {
/* will get vram_lost from GIM in future, now all if (adev->virt.gim_feature & AMDGIM_FEATURE_GIM_FLR_VRAMLOST) {
* reset request considered VRAM LOST (*reset_flags) |= AMDGPU_RESET_INFO_VRAM_LOST;
*/ atomic_inc(&adev->vram_lost_counter);
(*reset_flags) |= ~AMDGPU_RESET_INFO_VRAM_LOST; }
atomic_inc(&adev->vram_lost_counter);
/* VF FLR or hotlink reset is always full-reset */ /* VF FLR or hotlink reset is always full-reset */
(*reset_flags) |= AMDGPU_RESET_INFO_FULLRESET; (*reset_flags) |= AMDGPU_RESET_INFO_FULLRESET;
......
...@@ -334,6 +334,7 @@ void amdgpu_virt_init_data_exchange(struct amdgpu_device *adev) ...@@ -334,6 +334,7 @@ void amdgpu_virt_init_data_exchange(struct amdgpu_device *adev)
pf2vf_ver = adev->virt.fw_reserve.p_pf2vf->version; pf2vf_ver = adev->virt.fw_reserve.p_pf2vf->version;
AMDGPU_FW_VRAM_PF2VF_READ(adev, header.size, &pf2vf_size); AMDGPU_FW_VRAM_PF2VF_READ(adev, header.size, &pf2vf_size);
AMDGPU_FW_VRAM_PF2VF_READ(adev, checksum, &checksum); AMDGPU_FW_VRAM_PF2VF_READ(adev, checksum, &checksum);
AMDGPU_FW_VRAM_PF2VF_READ(adev, feature_flags, &adev->virt.gim_feature);
/* pf2vf message must be in 4K */ /* pf2vf message must be in 4K */
if (pf2vf_size > 0 && pf2vf_size < 4096) { if (pf2vf_size > 0 && pf2vf_size < 4096) {
......
...@@ -81,6 +81,8 @@ enum AMDGIM_FEATURE_FLAG { ...@@ -81,6 +81,8 @@ enum AMDGIM_FEATURE_FLAG {
AMDGIM_FEATURE_ERROR_LOG_COLLECT = 0x1, AMDGIM_FEATURE_ERROR_LOG_COLLECT = 0x1,
/* GIM supports feature of loading uCodes */ /* GIM supports feature of loading uCodes */
AMDGIM_FEATURE_GIM_LOAD_UCODES = 0x2, AMDGIM_FEATURE_GIM_LOAD_UCODES = 0x2,
/* VRAM LOST by GIM */
AMDGIM_FEATURE_GIM_FLR_VRAMLOST = 0x4,
}; };
struct amdgim_pf2vf_info_header { struct amdgim_pf2vf_info_header {
...@@ -246,6 +248,7 @@ struct amdgpu_virt { ...@@ -246,6 +248,7 @@ struct amdgpu_virt {
const struct amdgpu_virt_ops *ops; const struct amdgpu_virt_ops *ops;
struct amdgpu_vf_error_buffer vf_errors; struct amdgpu_vf_error_buffer vf_errors;
struct amdgpu_virt_fw_reserve fw_reserve; struct amdgpu_virt_fw_reserve fw_reserve;
uint32_t gim_feature;
}; };
#define AMDGPU_CSA_SIZE (8 * 1024) #define AMDGPU_CSA_SIZE (8 * 1024)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment