mirror of
https://github.com/torvalds/linux.git
synced 2026-05-30 18:13:41 +02:00
drm/amdkfd: Added temporary changes for GFX12.
Added cases for GFX12 in switch statement, code relying on GFX11 implementation until GFX12 implementation is complete. Signed-off-by: David Belanger <david.belanger@amd.com> Reviewed-by: Harish Kasiviswanathan <Harish.Kasiviswanathan@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
parent
592a5d7de4
commit
8aa89b69d6
|
|
@ -176,6 +176,11 @@ static void kfd_device_info_set_event_interrupt_class(struct kfd_dev *kfd)
|
|||
case IP_VERSION(11, 5, 1):
|
||||
kfd->device_info.event_interrupt_class = &event_interrupt_class_v11;
|
||||
break;
|
||||
case IP_VERSION(12, 0, 0):
|
||||
case IP_VERSION(12, 0, 1):
|
||||
/* GFX12_TODO: Change to v12 version. */
|
||||
kfd->device_info.event_interrupt_class = &event_interrupt_class_v11;
|
||||
break;
|
||||
default:
|
||||
dev_warn(kfd_device, "v9 event interrupt handler is set due to "
|
||||
"mismatch of gc ip block(GC_HWIP:0x%x).\n", gc_version);
|
||||
|
|
@ -437,6 +442,14 @@ struct kfd_dev *kgd2kfd_probe(struct amdgpu_device *adev, bool vf)
|
|||
gfx_target_version = 110501;
|
||||
f2g = &gfx_v11_kfd2kgd;
|
||||
break;
|
||||
case IP_VERSION(12, 0, 0):
|
||||
gfx_target_version = 120000;
|
||||
f2g = &gfx_v11_kfd2kgd; /* GFX12_TODO: Change to v12 when available. */
|
||||
break;
|
||||
case IP_VERSION(12, 0, 1):
|
||||
gfx_target_version = 120001;
|
||||
f2g = &gfx_v11_kfd2kgd; /* GFX12_TODO: Change to v12 when available. */
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
|
@ -511,12 +524,17 @@ static void kfd_cwsr_init(struct kfd_dev *kfd)
|
|||
> KFD_CWSR_TMA_OFFSET);
|
||||
kfd->cwsr_isa = cwsr_trap_gfx10_hex;
|
||||
kfd->cwsr_isa_size = sizeof(cwsr_trap_gfx10_hex);
|
||||
} else {
|
||||
} else if (KFD_GC_VERSION(kfd) < IP_VERSION(12, 0, 0)) {
|
||||
/* The gfx11 cwsr trap handler must fit inside a single
|
||||
page. */
|
||||
BUILD_BUG_ON(sizeof(cwsr_trap_gfx11_hex) > PAGE_SIZE);
|
||||
kfd->cwsr_isa = cwsr_trap_gfx11_hex;
|
||||
kfd->cwsr_isa_size = sizeof(cwsr_trap_gfx11_hex);
|
||||
} else {
|
||||
/* GFX12_TODO: Change to gfx12 struct when available. */
|
||||
BUILD_BUG_ON(sizeof(cwsr_trap_gfx11_hex) > PAGE_SIZE);
|
||||
kfd->cwsr_isa = cwsr_trap_gfx11_hex;
|
||||
kfd->cwsr_isa_size = sizeof(cwsr_trap_gfx11_hex);
|
||||
}
|
||||
|
||||
kfd->cwsr_enabled = true;
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user