| From 1e82ee1d5be22d9124dff6186378bfaca9ee5def Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Wed, 22 Jul 2020 10:37:01 +0800 |
| Subject: drm/amdgpu: restore ras flags when user resets eeprom(v2) |
| |
| From: Guchun Chen <guchun.chen@amd.com> |
| |
| [ Upstream commit bf0b91b78f002faa1be1902a75eeb0797f9fbcf3 ] |
| |
| RAS flags needs to be cleaned as well when user requires |
| one clean eeprom. |
| |
| v2: RAS flags shall be restored after eeprom reset succeeds. |
| |
| Signed-off-by: Guchun Chen <guchun.chen@amd.com> |
| Reviewed-by: Hawking Zhang <Hawking.Zhang@amd.com> |
| Signed-off-by: Alex Deucher <alexander.deucher@amd.com> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c | 13 ++++++++++--- |
| 1 file changed, 10 insertions(+), 3 deletions(-) |
| |
| diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c |
| index 1bedb416eebd0..b4fb5a473df5a 100644 |
| --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c |
| +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c |
| @@ -367,12 +367,19 @@ static ssize_t amdgpu_ras_debugfs_ctrl_write(struct file *f, const char __user * |
| static ssize_t amdgpu_ras_debugfs_eeprom_write(struct file *f, const char __user *buf, |
| size_t size, loff_t *pos) |
| { |
| - struct amdgpu_device *adev = (struct amdgpu_device *)file_inode(f)->i_private; |
| + struct amdgpu_device *adev = |
| + (struct amdgpu_device *)file_inode(f)->i_private; |
| int ret; |
| |
| - ret = amdgpu_ras_eeprom_reset_table(&adev->psp.ras.ras->eeprom_control); |
| + ret = amdgpu_ras_eeprom_reset_table( |
| + &(amdgpu_ras_get_context(adev)->eeprom_control)); |
| |
| - return ret == 1 ? size : -EIO; |
| + if (ret == 1) { |
| + amdgpu_ras_get_context(adev)->flags = RAS_DEFAULT_FLAGS; |
| + return size; |
| + } else { |
| + return -EIO; |
| + } |
| } |
| |
| static const struct file_operations amdgpu_ras_debugfs_ctrl_ops = { |
| -- |
| 2.27.0 |
| |