Commit ea5309de authored by Tao Zhou's avatar Tao Zhou Committed by Alex Deucher

drm/amdgpu: add VCN 4.0 RAS poison consumption handling

Register irq handler.
Signed-off-by: default avatarTao Zhou <tao.zhou1@amd.com>
Reviewed-by: default avatarHawking Zhang <Hawking.Zhang@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent 56ea353e
...@@ -135,6 +135,12 @@ static int vcn_v4_0_sw_init(void *handle) ...@@ -135,6 +135,12 @@ static int vcn_v4_0_sw_init(void *handle)
if (r) if (r)
return r; return r;
/* VCN POISON TRAP */
r = amdgpu_irq_add_id(adev, amdgpu_ih_clientid_vcns[i],
VCN_4_0__SRCID_UVD_POISON, &adev->vcn.inst[i].irq);
if (r)
return r;
ring = &adev->vcn.inst[i].ring_enc[0]; ring = &adev->vcn.inst[i].ring_enc[0];
ring->use_doorbell = true; ring->use_doorbell = true;
if (amdgpu_sriov_vf(adev)) if (amdgpu_sriov_vf(adev))
...@@ -299,6 +305,7 @@ static int vcn_v4_0_hw_fini(void *handle) ...@@ -299,6 +305,7 @@ static int vcn_v4_0_hw_fini(void *handle)
} }
} }
amdgpu_irq_put(adev, &adev->vcn.inst[i].irq, 0);
} }
return 0; return 0;
...@@ -1942,6 +1949,9 @@ static int vcn_v4_0_process_interrupt(struct amdgpu_device *adev, struct amdgpu_ ...@@ -1942,6 +1949,9 @@ static int vcn_v4_0_process_interrupt(struct amdgpu_device *adev, struct amdgpu_
case VCN_4_0__SRCID__UVD_ENC_GENERAL_PURPOSE: case VCN_4_0__SRCID__UVD_ENC_GENERAL_PURPOSE:
amdgpu_fence_process(&adev->vcn.inst[ip_instance].ring_enc[0]); amdgpu_fence_process(&adev->vcn.inst[ip_instance].ring_enc[0]);
break; break;
case VCN_4_0__SRCID_UVD_POISON:
amdgpu_vcn_process_poison_irq(adev, source, entry);
break;
default: default:
DRM_ERROR("Unhandled interrupt: %d %d\n", DRM_ERROR("Unhandled interrupt: %d %d\n",
entry->src_id, entry->src_data[0]); entry->src_id, entry->src_data[0]);
......
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