drm/amdgpu: correct vmhub index in GMC v10/11
authorLang Yu <Lang.Yu@amd.com>
Wed, 26 Jul 2023 11:04:25 +0000 (19:04 +0800)
committerAlex Deucher <alexander.deucher@amd.com>
Thu, 27 Jul 2023 19:05:31 +0000 (15:05 -0400)
Align with new vmhub definition.

v2: use client_id == VMC to decide vmhub(Hawking)

Signed-off-by: Lang Yu <Lang.Yu@amd.com>
Reviewed-by: Hawking Zhang <Hawking.Zhang@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/gmc_v10_0.c
drivers/gpu/drm/amd/amdgpu/gmc_v11_0.c

index 6b430e10d38eda5adcd9f4ca7eb8088e91597368..fa87a85e1017e78d0bdc4e9be090a53732210b16 100644 (file)
@@ -102,9 +102,11 @@ static int gmc_v10_0_process_interrupt(struct amdgpu_device *adev,
                                       struct amdgpu_irq_src *source,
                                       struct amdgpu_iv_entry *entry)
 {
+       uint32_t vmhub_index = entry->client_id == SOC15_IH_CLIENTID_VMC ?
+                              AMDGPU_MMHUB0(0) : AMDGPU_GFXHUB(0);
+       struct amdgpu_vmhub *hub = &adev->vmhub[vmhub_index];
        bool retry_fault = !!(entry->src_data[1] & 0x80);
        bool write_fault = !!(entry->src_data[1] & 0x20);
-       struct amdgpu_vmhub *hub = &adev->vmhub[entry->vmid_src];
        struct amdgpu_task_info task_info;
        uint32_t status = 0;
        u64 addr;
index a6ee0220db562461b27d59139d3fa8f0c25ac347..e3b76fd28d158ca3633078050458576b12fffe75 100644 (file)
@@ -97,7 +97,9 @@ static int gmc_v11_0_process_interrupt(struct amdgpu_device *adev,
                                       struct amdgpu_irq_src *source,
                                       struct amdgpu_iv_entry *entry)
 {
-       struct amdgpu_vmhub *hub = &adev->vmhub[entry->vmid_src];
+       uint32_t vmhub_index = entry->client_id == SOC21_IH_CLIENTID_VMC ?
+                              AMDGPU_MMHUB0(0) : AMDGPU_GFXHUB(0);
+       struct amdgpu_vmhub *hub = &adev->vmhub[vmhub_index];
        uint32_t status = 0;
        u64 addr;