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

drm/amdgpu: clear bad page info of ras module

Clear bad page info of ras module.

Signed-off-by: Jinzhou Su <jinzhou.su@amd.com>
Reviewed-by: Tao Zhou <tao.zhou1@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>

authored by

Jinzhou Su and committed by
Alex Deucher
edddaada bc6d54ac

+22
+22
drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c
··· 612 612 return size; 613 613 } 614 614 615 + static int amdgpu_uniras_clear_badpages_info(struct amdgpu_device *adev); 616 + 615 617 /** 616 618 * DOC: AMDGPU RAS debugfs EEPROM table reset interface 617 619 * ··· 637 635 struct amdgpu_device *adev = 638 636 (struct amdgpu_device *)file_inode(f)->i_private; 639 637 int ret; 638 + 639 + if (amdgpu_uniras_enabled(adev)) { 640 + ret = amdgpu_uniras_clear_badpages_info(adev); 641 + return ret ? ret : size; 642 + } 640 643 641 644 ret = amdgpu_ras_eeprom_reset_table( 642 645 &(amdgpu_ras_get_context(adev)->eeprom_control)); ··· 1548 1541 amdgpu_ras_error_data_fini(&err_data); 1549 1542 1550 1543 return ret; 1544 + } 1545 + 1546 + static int amdgpu_uniras_clear_badpages_info(struct amdgpu_device *adev) 1547 + { 1548 + struct ras_cmd_dev_handle req = {0}; 1549 + int ret; 1550 + 1551 + ret = amdgpu_ras_mgr_handle_ras_cmd(adev, RAS_CMD__CLEAR_BAD_PAGE_INFO, 1552 + &req, sizeof(req), NULL, 0); 1553 + if (ret) { 1554 + dev_err(adev->dev, "Failed to clear bad pages info, ret: %d\n", ret); 1555 + return ret; 1556 + } 1557 + 1558 + return 0; 1551 1559 } 1552 1560 1553 1561 static int amdgpu_uniras_query_block_ecc(struct amdgpu_device *adev,