RE: [PATCH v2 3/3] drm/amdkfd: convert misc checks to IP version checking

2021-11-10 Thread Sider, Graham
[AMD Official Use Only]

> Am 2021-11-09 um 5:42 p.m. schrieb Graham Sider:
> > Switch to IP version checking instead of asic_type on various KFD
> > version checks.
> >
> > Signed-off-by: Graham Sider 
> > ---
> >  drivers/gpu/drm/amd/amdkfd/kfd_chardev.c  |  2 +-
> >  drivers/gpu/drm/amd/amdkfd/kfd_crat.c |  2 +-
> >  drivers/gpu/drm/amd/amdkfd/kfd_device.c   | 27 ++-
> >  .../drm/amd/amdkfd/kfd_device_queue_manager.c |  3 +--
> > .../amd/amdkfd/kfd_device_queue_manager_v9.c  |  2 +-
> >  drivers/gpu/drm/amd/amdkfd/kfd_events.c   |  6 +++--
> >  drivers/gpu/drm/amd/amdkfd/kfd_migrate.c  |  2 +-
> >  drivers/gpu/drm/amd/amdkfd/kfd_process.c  |  7 +++--
> >  drivers/gpu/drm/amd/amdkfd/kfd_svm.c  |  6 ++---
> >  drivers/gpu/drm/amd/amdkfd/kfd_topology.c |  4 +--
> >  10 files changed, 31 insertions(+), 30 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c
> > b/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c
> > index 2466a73b8c7d..f70117b00b14 100644
> > --- a/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c
> > +++ b/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c
> > @@ -1603,7 +1603,7 @@ static int
> kfd_ioctl_unmap_memory_from_gpu(struct file *filep,
> > }
> > mutex_unlock(>mutex);
> >
> > -   if (dev->device_info->asic_family == CHIP_ALDEBARAN) {
> > +   if (KFD_GC_VERSION(dev) == IP_VERSION(9, 4, 2)) {
> > err = amdgpu_amdkfd_gpuvm_sync_memory(dev->adev,
> > (struct kgd_mem *) mem, true);
> > if (err) {
> > diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_crat.c
> > b/drivers/gpu/drm/amd/amdkfd/kfd_crat.c
> > index 19dd472e9b06..b6d887edac85 100644
> > --- a/drivers/gpu/drm/amd/amdkfd/kfd_crat.c
> > +++ b/drivers/gpu/drm/amd/amdkfd/kfd_crat.c
> > @@ -1992,7 +1992,7 @@ static int kfd_fill_gpu_direct_io_link_to_cpu(int
> *avail_size,
> > sub_type_hdr->flags |=
> CRAT_IOLINK_FLAGS_BI_DIRECTIONAL;
> > sub_type_hdr->io_interface_type =
> CRAT_IOLINK_TYPE_XGMI;
> > sub_type_hdr->num_hops_xgmi = 1;
> > -   if (kdev->adev->asic_type == CHIP_ALDEBARAN) {
> > +   if (KFD_GC_VERSION(kdev) == IP_VERSION(9, 4, 2)) {
> > sub_type_hdr->minimum_bandwidth_mbs =
> >
>   amdgpu_amdkfd_get_xgmi_bandwidth_mbytes(
> > kdev->adev, NULL,
> true);
> > diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_device.c
> > b/drivers/gpu/drm/amd/amdkfd/kfd_device.c
> > index ee813bd57c92..594dd28a391f 100644
> > --- a/drivers/gpu/drm/amd/amdkfd/kfd_device.c
> > +++ b/drivers/gpu/drm/amd/amdkfd/kfd_device.c
> > @@ -848,23 +848,23 @@ struct kfd_dev *kgd2kfd_probe(struct
> > amdgpu_device *adev, bool vf)  static void kfd_cwsr_init(struct
> > kfd_dev *kfd)  {
> > if (cwsr_enable && kfd->device_info->supports_cwsr) {
> > -   if (kfd->device_info->asic_family < CHIP_VEGA10) {
> > +   if (KFD_GC_VERSION(kfd) < IP_VERSION(9, 0, 1)) {
> > BUILD_BUG_ON(sizeof(cwsr_trap_gfx8_hex) >
> PAGE_SIZE);
> > kfd->cwsr_isa = cwsr_trap_gfx8_hex;
> > kfd->cwsr_isa_size = sizeof(cwsr_trap_gfx8_hex);
> > -   } else if (kfd->device_info->asic_family == CHIP_ARCTURUS)
> {
> > +   } else if (KFD_GC_VERSION(kfd) == IP_VERSION(9, 4, 1)) {
> > BUILD_BUG_ON(sizeof(cwsr_trap_arcturus_hex) >
> PAGE_SIZE);
> > kfd->cwsr_isa = cwsr_trap_arcturus_hex;
> > kfd->cwsr_isa_size =
> sizeof(cwsr_trap_arcturus_hex);
> > -   } else if (kfd->device_info->asic_family ==
> CHIP_ALDEBARAN) {
> > +   } else if (KFD_GC_VERSION(kfd) == IP_VERSION(9, 4, 2)) {
> > BUILD_BUG_ON(sizeof(cwsr_trap_aldebaran_hex) >
> PAGE_SIZE);
> > kfd->cwsr_isa = cwsr_trap_aldebaran_hex;
> > kfd->cwsr_isa_size =
> sizeof(cwsr_trap_aldebaran_hex);
> > -   } else if (kfd->device_info->asic_family < CHIP_NAVI10) {
> > +   } else if (KFD_GC_VERSION(kfd) < IP_VERSION(10, 1, 1)) {
> > BUILD_BUG_ON(sizeof(cwsr_trap_gfx9_hex) >
> PAGE_SIZE);
> > kfd->cwsr_isa = cwsr_trap_gfx9_hex;
> > kfd->cwsr_isa_size = sizeof(cwsr_trap_gfx9_hex);
> > -   } else if (kfd->device_info->asic_family <
> CHIP_SIENNA_CICHLID) {
> > +   } else if (KFD_GC_VERSION(kfd) < IP_VERSION(10, 3, 0)) {
> > BUILD_BUG_ON(sizeof(cwsr_trap_nv1x_hex) >
> PAGE_SIZE);
> > kfd->cwsr_isa = cwsr_trap_nv1x_hex;
> > kfd->cwsr_isa_size = sizeof(cwsr_trap_nv1x_hex);
> @@ -886,14
> > +886,16 @@ static int kfd_gws_init(struct kfd_dev *kfd)
> > return 0;
> >
> > if (hws_gws_support
> > -   || (kfd->device_info->asic_family == CHIP_VEGA10
> > +   || (KFD_GC_VERSION(kfd) == IP_VERSION(9, 0, 1)
> > && 

Re: [PATCH v2 3/3] drm/amdkfd: convert misc checks to IP version checking

2021-11-10 Thread Felix Kuehling
Am 2021-11-09 um 5:42 p.m. schrieb Graham Sider:
> Switch to IP version checking instead of asic_type on various KFD
> version checks.
>
> Signed-off-by: Graham Sider 
> ---
>  drivers/gpu/drm/amd/amdkfd/kfd_chardev.c  |  2 +-
>  drivers/gpu/drm/amd/amdkfd/kfd_crat.c |  2 +-
>  drivers/gpu/drm/amd/amdkfd/kfd_device.c   | 27 ++-
>  .../drm/amd/amdkfd/kfd_device_queue_manager.c |  3 +--
>  .../amd/amdkfd/kfd_device_queue_manager_v9.c  |  2 +-
>  drivers/gpu/drm/amd/amdkfd/kfd_events.c   |  6 +++--
>  drivers/gpu/drm/amd/amdkfd/kfd_migrate.c  |  2 +-
>  drivers/gpu/drm/amd/amdkfd/kfd_process.c  |  7 +++--
>  drivers/gpu/drm/amd/amdkfd/kfd_svm.c  |  6 ++---
>  drivers/gpu/drm/amd/amdkfd/kfd_topology.c |  4 +--
>  10 files changed, 31 insertions(+), 30 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c 
> b/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c
> index 2466a73b8c7d..f70117b00b14 100644
> --- a/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c
> +++ b/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c
> @@ -1603,7 +1603,7 @@ static int kfd_ioctl_unmap_memory_from_gpu(struct file 
> *filep,
>   }
>   mutex_unlock(>mutex);
>  
> - if (dev->device_info->asic_family == CHIP_ALDEBARAN) {
> + if (KFD_GC_VERSION(dev) == IP_VERSION(9, 4, 2)) {
>   err = amdgpu_amdkfd_gpuvm_sync_memory(dev->adev,
>   (struct kgd_mem *) mem, true);
>   if (err) {
> diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_crat.c 
> b/drivers/gpu/drm/amd/amdkfd/kfd_crat.c
> index 19dd472e9b06..b6d887edac85 100644
> --- a/drivers/gpu/drm/amd/amdkfd/kfd_crat.c
> +++ b/drivers/gpu/drm/amd/amdkfd/kfd_crat.c
> @@ -1992,7 +1992,7 @@ static int kfd_fill_gpu_direct_io_link_to_cpu(int 
> *avail_size,
>   sub_type_hdr->flags |= CRAT_IOLINK_FLAGS_BI_DIRECTIONAL;
>   sub_type_hdr->io_interface_type = CRAT_IOLINK_TYPE_XGMI;
>   sub_type_hdr->num_hops_xgmi = 1;
> - if (kdev->adev->asic_type == CHIP_ALDEBARAN) {
> + if (KFD_GC_VERSION(kdev) == IP_VERSION(9, 4, 2)) {
>   sub_type_hdr->minimum_bandwidth_mbs =
>   amdgpu_amdkfd_get_xgmi_bandwidth_mbytes(
>   kdev->adev, NULL, true);
> diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_device.c 
> b/drivers/gpu/drm/amd/amdkfd/kfd_device.c
> index ee813bd57c92..594dd28a391f 100644
> --- a/drivers/gpu/drm/amd/amdkfd/kfd_device.c
> +++ b/drivers/gpu/drm/amd/amdkfd/kfd_device.c
> @@ -848,23 +848,23 @@ struct kfd_dev *kgd2kfd_probe(struct amdgpu_device 
> *adev, bool vf)
>  static void kfd_cwsr_init(struct kfd_dev *kfd)
>  {
>   if (cwsr_enable && kfd->device_info->supports_cwsr) {
> - if (kfd->device_info->asic_family < CHIP_VEGA10) {
> + if (KFD_GC_VERSION(kfd) < IP_VERSION(9, 0, 1)) {
>   BUILD_BUG_ON(sizeof(cwsr_trap_gfx8_hex) > PAGE_SIZE);
>   kfd->cwsr_isa = cwsr_trap_gfx8_hex;
>   kfd->cwsr_isa_size = sizeof(cwsr_trap_gfx8_hex);
> - } else if (kfd->device_info->asic_family == CHIP_ARCTURUS) {
> + } else if (KFD_GC_VERSION(kfd) == IP_VERSION(9, 4, 1)) {
>   BUILD_BUG_ON(sizeof(cwsr_trap_arcturus_hex) > 
> PAGE_SIZE);
>   kfd->cwsr_isa = cwsr_trap_arcturus_hex;
>   kfd->cwsr_isa_size = sizeof(cwsr_trap_arcturus_hex);
> - } else if (kfd->device_info->asic_family == CHIP_ALDEBARAN) {
> + } else if (KFD_GC_VERSION(kfd) == IP_VERSION(9, 4, 2)) {
>   BUILD_BUG_ON(sizeof(cwsr_trap_aldebaran_hex) > 
> PAGE_SIZE);
>   kfd->cwsr_isa = cwsr_trap_aldebaran_hex;
>   kfd->cwsr_isa_size = sizeof(cwsr_trap_aldebaran_hex);
> - } else if (kfd->device_info->asic_family < CHIP_NAVI10) {
> + } else if (KFD_GC_VERSION(kfd) < IP_VERSION(10, 1, 1)) {
>   BUILD_BUG_ON(sizeof(cwsr_trap_gfx9_hex) > PAGE_SIZE);
>   kfd->cwsr_isa = cwsr_trap_gfx9_hex;
>   kfd->cwsr_isa_size = sizeof(cwsr_trap_gfx9_hex);
> - } else if (kfd->device_info->asic_family < CHIP_SIENNA_CICHLID) 
> {
> + } else if (KFD_GC_VERSION(kfd) < IP_VERSION(10, 3, 0)) {
>   BUILD_BUG_ON(sizeof(cwsr_trap_nv1x_hex) > PAGE_SIZE);
>   kfd->cwsr_isa = cwsr_trap_nv1x_hex;
>   kfd->cwsr_isa_size = sizeof(cwsr_trap_nv1x_hex);
> @@ -886,14 +886,16 @@ static int kfd_gws_init(struct kfd_dev *kfd)
>   return 0;
>  
>   if (hws_gws_support
> - || (kfd->device_info->asic_family == CHIP_VEGA10
> + || (KFD_GC_VERSION(kfd) == IP_VERSION(9, 0, 1)
>   && kfd->mec2_fw_version >= 0x81b3)
> - || (kfd->device_info->asic_family >= 

Re: [PATCH v2 3/3] drm/amdkfd: convert misc checks to IP version checking

2021-11-10 Thread Deucher, Alexander
[AMD Official Use Only]

Series is:
Reviewed-by: Alex Deucher 

From: amd-gfx  on behalf of Graham Sider 

Sent: Tuesday, November 9, 2021 5:42 PM
To: amd-gfx@lists.freedesktop.org 
Cc: Kuehling, Felix ; Kasiviswanathan, Harish 
; Sider, Graham 
Subject: [PATCH v2 3/3] drm/amdkfd: convert misc checks to IP version checking

Switch to IP version checking instead of asic_type on various KFD
version checks.

Signed-off-by: Graham Sider 
---
 drivers/gpu/drm/amd/amdkfd/kfd_chardev.c  |  2 +-
 drivers/gpu/drm/amd/amdkfd/kfd_crat.c |  2 +-
 drivers/gpu/drm/amd/amdkfd/kfd_device.c   | 27 ++-
 .../drm/amd/amdkfd/kfd_device_queue_manager.c |  3 +--
 .../amd/amdkfd/kfd_device_queue_manager_v9.c  |  2 +-
 drivers/gpu/drm/amd/amdkfd/kfd_events.c   |  6 +++--
 drivers/gpu/drm/amd/amdkfd/kfd_migrate.c  |  2 +-
 drivers/gpu/drm/amd/amdkfd/kfd_process.c  |  7 +++--
 drivers/gpu/drm/amd/amdkfd/kfd_svm.c  |  6 ++---
 drivers/gpu/drm/amd/amdkfd/kfd_topology.c |  4 +--
 10 files changed, 31 insertions(+), 30 deletions(-)

diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c 
b/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c
index 2466a73b8c7d..f70117b00b14 100644
--- a/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c
+++ b/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c
@@ -1603,7 +1603,7 @@ static int kfd_ioctl_unmap_memory_from_gpu(struct file 
*filep,
 }
 mutex_unlock(>mutex);

-   if (dev->device_info->asic_family == CHIP_ALDEBARAN) {
+   if (KFD_GC_VERSION(dev) == IP_VERSION(9, 4, 2)) {
 err = amdgpu_amdkfd_gpuvm_sync_memory(dev->adev,
 (struct kgd_mem *) mem, true);
 if (err) {
diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_crat.c 
b/drivers/gpu/drm/amd/amdkfd/kfd_crat.c
index 19dd472e9b06..b6d887edac85 100644
--- a/drivers/gpu/drm/amd/amdkfd/kfd_crat.c
+++ b/drivers/gpu/drm/amd/amdkfd/kfd_crat.c
@@ -1992,7 +1992,7 @@ static int kfd_fill_gpu_direct_io_link_to_cpu(int 
*avail_size,
 sub_type_hdr->flags |= CRAT_IOLINK_FLAGS_BI_DIRECTIONAL;
 sub_type_hdr->io_interface_type = CRAT_IOLINK_TYPE_XGMI;
 sub_type_hdr->num_hops_xgmi = 1;
-   if (kdev->adev->asic_type == CHIP_ALDEBARAN) {
+   if (KFD_GC_VERSION(kdev) == IP_VERSION(9, 4, 2)) {
 sub_type_hdr->minimum_bandwidth_mbs =
 
amdgpu_amdkfd_get_xgmi_bandwidth_mbytes(
 kdev->adev, NULL, 
true);
diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_device.c 
b/drivers/gpu/drm/amd/amdkfd/kfd_device.c
index ee813bd57c92..594dd28a391f 100644
--- a/drivers/gpu/drm/amd/amdkfd/kfd_device.c
+++ b/drivers/gpu/drm/amd/amdkfd/kfd_device.c
@@ -848,23 +848,23 @@ struct kfd_dev *kgd2kfd_probe(struct amdgpu_device *adev, 
bool vf)
 static void kfd_cwsr_init(struct kfd_dev *kfd)
 {
 if (cwsr_enable && kfd->device_info->supports_cwsr) {
-   if (kfd->device_info->asic_family < CHIP_VEGA10) {
+   if (KFD_GC_VERSION(kfd) < IP_VERSION(9, 0, 1)) {
 BUILD_BUG_ON(sizeof(cwsr_trap_gfx8_hex) > PAGE_SIZE);
 kfd->cwsr_isa = cwsr_trap_gfx8_hex;
 kfd->cwsr_isa_size = sizeof(cwsr_trap_gfx8_hex);
-   } else if (kfd->device_info->asic_family == CHIP_ARCTURUS) {
+   } else if (KFD_GC_VERSION(kfd) == IP_VERSION(9, 4, 1)) {
 BUILD_BUG_ON(sizeof(cwsr_trap_arcturus_hex) > 
PAGE_SIZE);
 kfd->cwsr_isa = cwsr_trap_arcturus_hex;
 kfd->cwsr_isa_size = sizeof(cwsr_trap_arcturus_hex);
-   } else if (kfd->device_info->asic_family == CHIP_ALDEBARAN) {
+   } else if (KFD_GC_VERSION(kfd) == IP_VERSION(9, 4, 2)) {
 BUILD_BUG_ON(sizeof(cwsr_trap_aldebaran_hex) > 
PAGE_SIZE);
 kfd->cwsr_isa = cwsr_trap_aldebaran_hex;
 kfd->cwsr_isa_size = sizeof(cwsr_trap_aldebaran_hex);
-   } else if (kfd->device_info->asic_family < CHIP_NAVI10) {
+   } else if (KFD_GC_VERSION(kfd) < IP_VERSION(10, 1, 1)) {
 BUILD_BUG_ON(sizeof(cwsr_trap_gfx9_hex) > PAGE_SIZE);
 kfd->cwsr_isa = cwsr_trap_gfx9_hex;
 kfd->cwsr_isa_size = sizeof(cwsr_trap_gfx9_hex);
-   } else if (kfd->device_info->asic_family < CHIP_SIENNA_CICHLID) 
{
+   } else if (KFD_GC_VERSION(kfd) < IP_VERSION(10, 3, 0)) {
 BUILD_BUG_ON(sizeof(cwsr_trap_nv1x_hex) > PAGE_SIZE);
 kfd->cwsr_isa = cwsr_trap_nv1x_hex;
 kfd-

[PATCH v2 3/3] drm/amdkfd: convert misc checks to IP version checking

2021-11-09 Thread Graham Sider
Switch to IP version checking instead of asic_type on various KFD
version checks.

Signed-off-by: Graham Sider 
---
 drivers/gpu/drm/amd/amdkfd/kfd_chardev.c  |  2 +-
 drivers/gpu/drm/amd/amdkfd/kfd_crat.c |  2 +-
 drivers/gpu/drm/amd/amdkfd/kfd_device.c   | 27 ++-
 .../drm/amd/amdkfd/kfd_device_queue_manager.c |  3 +--
 .../amd/amdkfd/kfd_device_queue_manager_v9.c  |  2 +-
 drivers/gpu/drm/amd/amdkfd/kfd_events.c   |  6 +++--
 drivers/gpu/drm/amd/amdkfd/kfd_migrate.c  |  2 +-
 drivers/gpu/drm/amd/amdkfd/kfd_process.c  |  7 +++--
 drivers/gpu/drm/amd/amdkfd/kfd_svm.c  |  6 ++---
 drivers/gpu/drm/amd/amdkfd/kfd_topology.c |  4 +--
 10 files changed, 31 insertions(+), 30 deletions(-)

diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c 
b/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c
index 2466a73b8c7d..f70117b00b14 100644
--- a/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c
+++ b/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c
@@ -1603,7 +1603,7 @@ static int kfd_ioctl_unmap_memory_from_gpu(struct file 
*filep,
}
mutex_unlock(>mutex);
 
-   if (dev->device_info->asic_family == CHIP_ALDEBARAN) {
+   if (KFD_GC_VERSION(dev) == IP_VERSION(9, 4, 2)) {
err = amdgpu_amdkfd_gpuvm_sync_memory(dev->adev,
(struct kgd_mem *) mem, true);
if (err) {
diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_crat.c 
b/drivers/gpu/drm/amd/amdkfd/kfd_crat.c
index 19dd472e9b06..b6d887edac85 100644
--- a/drivers/gpu/drm/amd/amdkfd/kfd_crat.c
+++ b/drivers/gpu/drm/amd/amdkfd/kfd_crat.c
@@ -1992,7 +1992,7 @@ static int kfd_fill_gpu_direct_io_link_to_cpu(int 
*avail_size,
sub_type_hdr->flags |= CRAT_IOLINK_FLAGS_BI_DIRECTIONAL;
sub_type_hdr->io_interface_type = CRAT_IOLINK_TYPE_XGMI;
sub_type_hdr->num_hops_xgmi = 1;
-   if (kdev->adev->asic_type == CHIP_ALDEBARAN) {
+   if (KFD_GC_VERSION(kdev) == IP_VERSION(9, 4, 2)) {
sub_type_hdr->minimum_bandwidth_mbs =
amdgpu_amdkfd_get_xgmi_bandwidth_mbytes(
kdev->adev, NULL, true);
diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_device.c 
b/drivers/gpu/drm/amd/amdkfd/kfd_device.c
index ee813bd57c92..594dd28a391f 100644
--- a/drivers/gpu/drm/amd/amdkfd/kfd_device.c
+++ b/drivers/gpu/drm/amd/amdkfd/kfd_device.c
@@ -848,23 +848,23 @@ struct kfd_dev *kgd2kfd_probe(struct amdgpu_device *adev, 
bool vf)
 static void kfd_cwsr_init(struct kfd_dev *kfd)
 {
if (cwsr_enable && kfd->device_info->supports_cwsr) {
-   if (kfd->device_info->asic_family < CHIP_VEGA10) {
+   if (KFD_GC_VERSION(kfd) < IP_VERSION(9, 0, 1)) {
BUILD_BUG_ON(sizeof(cwsr_trap_gfx8_hex) > PAGE_SIZE);
kfd->cwsr_isa = cwsr_trap_gfx8_hex;
kfd->cwsr_isa_size = sizeof(cwsr_trap_gfx8_hex);
-   } else if (kfd->device_info->asic_family == CHIP_ARCTURUS) {
+   } else if (KFD_GC_VERSION(kfd) == IP_VERSION(9, 4, 1)) {
BUILD_BUG_ON(sizeof(cwsr_trap_arcturus_hex) > 
PAGE_SIZE);
kfd->cwsr_isa = cwsr_trap_arcturus_hex;
kfd->cwsr_isa_size = sizeof(cwsr_trap_arcturus_hex);
-   } else if (kfd->device_info->asic_family == CHIP_ALDEBARAN) {
+   } else if (KFD_GC_VERSION(kfd) == IP_VERSION(9, 4, 2)) {
BUILD_BUG_ON(sizeof(cwsr_trap_aldebaran_hex) > 
PAGE_SIZE);
kfd->cwsr_isa = cwsr_trap_aldebaran_hex;
kfd->cwsr_isa_size = sizeof(cwsr_trap_aldebaran_hex);
-   } else if (kfd->device_info->asic_family < CHIP_NAVI10) {
+   } else if (KFD_GC_VERSION(kfd) < IP_VERSION(10, 1, 1)) {
BUILD_BUG_ON(sizeof(cwsr_trap_gfx9_hex) > PAGE_SIZE);
kfd->cwsr_isa = cwsr_trap_gfx9_hex;
kfd->cwsr_isa_size = sizeof(cwsr_trap_gfx9_hex);
-   } else if (kfd->device_info->asic_family < CHIP_SIENNA_CICHLID) 
{
+   } else if (KFD_GC_VERSION(kfd) < IP_VERSION(10, 3, 0)) {
BUILD_BUG_ON(sizeof(cwsr_trap_nv1x_hex) > PAGE_SIZE);
kfd->cwsr_isa = cwsr_trap_nv1x_hex;
kfd->cwsr_isa_size = sizeof(cwsr_trap_nv1x_hex);
@@ -886,14 +886,16 @@ static int kfd_gws_init(struct kfd_dev *kfd)
return 0;
 
if (hws_gws_support
-   || (kfd->device_info->asic_family == CHIP_VEGA10
+   || (KFD_GC_VERSION(kfd) == IP_VERSION(9, 0, 1)
&& kfd->mec2_fw_version >= 0x81b3)
-   || (kfd->device_info->asic_family >= CHIP_VEGA12
-   && kfd->device_info->asic_family <= CHIP_RAVEN
+   || ((KFD_GC_VERSION(kfd) == IP_VERSION(9, 2,