diff options
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/mxgpu_nv.c')
| -rw-r--r-- | drivers/gpu/drm/amd/amdgpu/mxgpu_nv.c | 14 | 
1 files changed, 14 insertions, 0 deletions
| diff --git a/drivers/gpu/drm/amd/amdgpu/mxgpu_nv.c b/drivers/gpu/drm/amd/amdgpu/mxgpu_nv.c index 4dcb72d1bdda..5aadf24cb202 100644 --- a/drivers/gpu/drm/amd/amdgpu/mxgpu_nv.c +++ b/drivers/gpu/drm/amd/amdgpu/mxgpu_nv.c @@ -184,6 +184,9 @@ send_request:  	case IDH_REQ_RAS_ERROR_COUNT:  		event = IDH_RAS_ERROR_COUNT_READY;  		break; +	case IDH_REQ_RAS_CPER_DUMP: +		event = IDH_RAS_CPER_DUMP_READY; +		break;  	default:  		break;  	} @@ -467,6 +470,16 @@ static int xgpu_nv_req_ras_err_count(struct amdgpu_device *adev)  	return xgpu_nv_send_access_requests(adev, IDH_REQ_RAS_ERROR_COUNT);  } +static int xgpu_nv_req_ras_cper_dump(struct amdgpu_device *adev, u64 vf_rptr) +{ +	uint32_t vf_rptr_hi, vf_rptr_lo; + +	vf_rptr_hi = (uint32_t)(vf_rptr >> 32); +	vf_rptr_lo = (uint32_t)(vf_rptr & 0xFFFFFFFF); +	return xgpu_nv_send_access_requests_with_param( +		adev, IDH_REQ_RAS_CPER_DUMP, vf_rptr_hi, vf_rptr_lo, 0); +} +  const struct amdgpu_virt_ops xgpu_nv_virt_ops = {  	.req_full_gpu	= xgpu_nv_request_full_gpu_access,  	.rel_full_gpu	= xgpu_nv_release_full_gpu_access, @@ -478,4 +491,5 @@ const struct amdgpu_virt_ops xgpu_nv_virt_ops = {  	.ras_poison_handler = xgpu_nv_ras_poison_handler,  	.rcvd_ras_intr = xgpu_nv_rcvd_ras_intr,  	.req_ras_err_count = xgpu_nv_req_ras_err_count, +	.req_ras_cper_dump = xgpu_nv_req_ras_cper_dump,  }; | 
