diff options
| author | Jani Nikula <jani.nikula@intel.com> | 2025-06-09 12:40:46 +0300 | 
|---|---|---|
| committer | Jani Nikula <jani.nikula@intel.com> | 2025-06-09 12:40:46 +0300 | 
| commit | 34c55367af96f62e89221444f04487440ebc6487 (patch) | |
| tree | fdb36ba67d7dea09455b55037e26043b7e051ef9 /drivers/gpu/drm/amd/amdgpu/amdgpu_umc.c | |
| parent | 7247efca0dcbc8ac6147db9200ed1549c0662465 (diff) | |
| parent | 19272b37aa4f83ca52bdf9c16d5d81bdd1354494 (diff) | |
| download | linux-34c55367af96f62e89221444f04487440ebc6487.tar.xz | |
Merge drm/drm-next into drm-intel-next
Sync to v6.16-rc1, among other things to get the fixed size GENMASK_U*()
and BIT_U*() macros.
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_umc.c')
| -rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_umc.c | 24 | 
1 files changed, 24 insertions, 0 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_umc.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_umc.c index 0a1ef95b2866..c92b8794aa73 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_umc.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_umc.c @@ -529,6 +529,7 @@ int amdgpu_umc_lookup_bad_pages_in_a_row(struct amdgpu_device *adev,  		pfns[i] = err_data.err_addr[i].retired_page;  	}  	ret = i; +	adev->umc.err_addr_cnt = err_data.err_addr_cnt;  out:  	kfree(err_data.err_addr); @@ -561,3 +562,26 @@ int amdgpu_umc_mca_to_addr(struct amdgpu_device *adev,  	return 0;  } + +int amdgpu_umc_pa2mca(struct amdgpu_device *adev, +		uint64_t pa, uint64_t *mca, enum amdgpu_memory_partition nps) +{ +	struct ta_ras_query_address_input addr_in; +	struct ta_ras_query_address_output addr_out; +	int ret; + +	/* nps: the pa belongs to */ +	addr_in.pa.pa = pa | ((uint64_t)nps << 58); +	addr_in.addr_type = TA_RAS_PA_TO_MCA; +	ret = psp_ras_query_address(&adev->psp, &addr_in, &addr_out); +	if (ret) { +		dev_warn(adev->dev, "Failed to query RAS MCA address for 0x%llx", +			pa); + +		return ret; +	} + +	*mca = addr_out.ma.err_addr; + +	return 0; +}  | 
