[AMD Official Use Only] > -----Original Message----- > From: Kuehling, Felix <Felix.Kuehling@xxxxxxx> > Sent: Tuesday, October 26, 2021 5:24 PM > To: Sider, Graham <Graham.Sider@xxxxxxx>; amd- > gfx@xxxxxxxxxxxxxxxxxxxxx > Cc: Joshi, Mukul <Mukul.Joshi@xxxxxxx> > Subject: Re: [PATCH 10/13] drm/amdkfd: replace kgd_dev in get > amdgpu_amdkfd funcs > > Am 2021-10-19 um 5:13 p.m. schrieb Graham Sider: > > Modified definitions: > > > > - amdgpu_amdkfd_get_fw_version > > - amdgpu_amdkfd_get_local_mem_info > > - amdgpu_amdkfd_get_gpu_clock_counter > > - amdgpu_amdkfd_get_max_engine_clock_in_mhz > > - amdgpu_amdkfd_get_cu_info > > - amdgpu_amdkfd_get_dmabuf_info > > - amdgpu_amdkfd_get_vram_usage > > - amdgpu_amdkfd_get_hive_id > > - amdgpu_amdkfd_get_unique_id > > - amdgpu_amdkfd_get_mmio_remap_phys_addr > > - amdgpu_amdkfd_get_num_gws > > - amdgpu_amdkfd_get_asic_rev_id > > - amdgpu_amdkfd_get_noretry > > - amdgpu_amdkfd_get_xgmi_hops_count > > - amdgpu_amdkfd_get_xgmi_bandwidth_mbytes > > - amdgpu_amdkfd_get_pcie_bandwidth_mbytes > > > > Also replaces kfd_device_by_kgd with kfd_device_by_adev, now > searching > > via adev rather than kgd. > > Some of these functions are so trivial, they could probably be replaced with > direct accesses to the respective fields in adev from KFD: > > * amdgpu_amdkfd_get_hive_id > * amdgpu_amdkfd_get_unique_id > * amdgpu_amdkfd_get_mmio_remap_phys_addr > * amdgpu_amdkfd_get_num_gws > * amdgpu_amdkfd_get_asic_rev_id > * amdgpu_amdkfd_get_noretry > > I'd do that with a separate follow-up patch, though. > > Regards, > Felix > Sounds good, I'll go ahead and replace these ones mentioned in a follow-up. Thanks! Best, Graham > > > > > Signed-off-by: Graham Sider <Graham.Sider@xxxxxxx> > > --- > > drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c | 73 +++++++--------- > --- > > drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.h | 38 +++++----- > > drivers/gpu/drm/amd/amdkfd/kfd_chardev.c | 16 ++-- > > drivers/gpu/drm/amd/amdkfd/kfd_crat.c | 16 ++-- > > drivers/gpu/drm/amd/amdkfd/kfd_device.c | 14 ++-- > > drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager.c | 2 +- > > drivers/gpu/drm/amd/amdkfd/kfd_priv.h | 2 +- > > .../amd/amdkfd/kfd_process_queue_manager.c | 2 +- > > drivers/gpu/drm/amd/amdkfd/kfd_topology.c | 18 ++--- > > 9 files changed, 82 insertions(+), 99 deletions(-) > > > > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c > > b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c > > index 69fc8f0d9c45..79a2e37baa59 100644 > > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c > > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c > > @@ -358,11 +358,9 @@ void amdgpu_amdkfd_free_gws(struct > amdgpu_device *adev, void *mem_obj) > > amdgpu_bo_unref(&bo); > > } > > > > -uint32_t amdgpu_amdkfd_get_fw_version(struct kgd_dev *kgd, > > +uint32_t amdgpu_amdkfd_get_fw_version(struct amdgpu_device *adev, > > enum kgd_engine_type type) > > { > > - struct amdgpu_device *adev = (struct amdgpu_device *)kgd; > > - > > switch (type) { > > case KGD_ENGINE_PFP: > > return adev->gfx.pfp_fw_version; > > @@ -395,11 +393,9 @@ uint32_t amdgpu_amdkfd_get_fw_version(struct > kgd_dev *kgd, > > return 0; > > } > > > > -void amdgpu_amdkfd_get_local_mem_info(struct kgd_dev *kgd, > > +void amdgpu_amdkfd_get_local_mem_info(struct amdgpu_device > *adev, > > struct kfd_local_mem_info *mem_info) { > > - struct amdgpu_device *adev = (struct amdgpu_device *)kgd; > > - > > memset(mem_info, 0, sizeof(*mem_info)); > > > > mem_info->local_mem_size_public = adev->gmc.visible_vram_size; > @@ > > -424,19 +420,15 @@ void amdgpu_amdkfd_get_local_mem_info(struct > kgd_dev *kgd, > > mem_info->mem_clk_max = 100; > > } > > > > -uint64_t amdgpu_amdkfd_get_gpu_clock_counter(struct kgd_dev *kgd) > > +uint64_t amdgpu_amdkfd_get_gpu_clock_counter(struct > amdgpu_device > > +*adev) > > { > > - struct amdgpu_device *adev = (struct amdgpu_device *)kgd; > > - > > if (adev->gfx.funcs->get_gpu_clock_counter) > > return adev->gfx.funcs->get_gpu_clock_counter(adev); > > return 0; > > } > > > > -uint32_t amdgpu_amdkfd_get_max_engine_clock_in_mhz(struct > kgd_dev > > *kgd) > > +uint32_t amdgpu_amdkfd_get_max_engine_clock_in_mhz(struct > > +amdgpu_device *adev) > > { > > - struct amdgpu_device *adev = (struct amdgpu_device *)kgd; > > - > > /* the sclk is in quantas of 10kHz */ > > if (amdgpu_sriov_vf(adev)) > > return adev->clock.default_sclk / 100; @@ -446,9 +438,8 @@ > uint32_t > > amdgpu_amdkfd_get_max_engine_clock_in_mhz(struct kgd_dev *kgd) > > return 100; > > } > > > > -void amdgpu_amdkfd_get_cu_info(struct kgd_dev *kgd, struct > > kfd_cu_info *cu_info) > > +void amdgpu_amdkfd_get_cu_info(struct amdgpu_device *adev, struct > > +kfd_cu_info *cu_info) > > { > > - struct amdgpu_device *adev = (struct amdgpu_device *)kgd; > > struct amdgpu_cu_info acu_info = adev->gfx.cu_info; > > > > memset(cu_info, 0, sizeof(*cu_info)); @@ -469,13 +460,12 @@ void > > amdgpu_amdkfd_get_cu_info(struct kgd_dev *kgd, struct kfd_cu_info > *cu_info) > > cu_info->lds_size = acu_info.lds_size; } > > > > -int amdgpu_amdkfd_get_dmabuf_info(struct kgd_dev *kgd, int > dma_buf_fd, > > - struct kgd_dev **dma_buf_kgd, > > +int amdgpu_amdkfd_get_dmabuf_info(struct amdgpu_device *adev, int > dma_buf_fd, > > + struct amdgpu_device **dmabuf_adev, > > uint64_t *bo_size, void *metadata_buffer, > > size_t buffer_size, uint32_t *metadata_size, > > uint32_t *flags) > > { > > - struct amdgpu_device *adev = (struct amdgpu_device *)kgd; > > struct dma_buf *dma_buf; > > struct drm_gem_object *obj; > > struct amdgpu_bo *bo; > > @@ -503,8 +493,8 @@ int amdgpu_amdkfd_get_dmabuf_info(struct > kgd_dev *kgd, int dma_buf_fd, > > goto out_put; > > > > r = 0; > > - if (dma_buf_kgd) > > - *dma_buf_kgd = (struct kgd_dev *)adev; > > + if (dmabuf_adev) > > + *dmabuf_adev = adev; > > if (bo_size) > > *bo_size = amdgpu_bo_size(bo); > > if (metadata_buffer) > > @@ -524,32 +514,28 @@ int amdgpu_amdkfd_get_dmabuf_info(struct > kgd_dev *kgd, int dma_buf_fd, > > return r; > > } > > > > -uint64_t amdgpu_amdkfd_get_vram_usage(struct kgd_dev *kgd) > > +uint64_t amdgpu_amdkfd_get_vram_usage(struct amdgpu_device > *adev) > > { > > - struct amdgpu_device *adev = (struct amdgpu_device *)kgd; > > struct ttm_resource_manager *vram_man = > > ttm_manager_type(&adev->mman.bdev, TTM_PL_VRAM); > > > > return amdgpu_vram_mgr_usage(vram_man); } > > > > -uint64_t amdgpu_amdkfd_get_hive_id(struct kgd_dev *kgd) > > +uint64_t amdgpu_amdkfd_get_hive_id(struct amdgpu_device *adev) > > { > > - struct amdgpu_device *adev = (struct amdgpu_device *)kgd; > > - > > return adev->gmc.xgmi.hive_id; > > } > > > > -uint64_t amdgpu_amdkfd_get_unique_id(struct kgd_dev *kgd) > > +uint64_t amdgpu_amdkfd_get_unique_id(struct amdgpu_device *adev) > > { > > - struct amdgpu_device *adev = (struct amdgpu_device *)kgd; > > - > > return adev->unique_id; > > } > > > > -uint8_t amdgpu_amdkfd_get_xgmi_hops_count(struct kgd_dev *dst, > struct > > kgd_dev *src) > > +uint8_t amdgpu_amdkfd_get_xgmi_hops_count(struct amdgpu_device > *dst, > > + struct amdgpu_device *src) > > { > > - struct amdgpu_device *peer_adev = (struct amdgpu_device *)src; > > - struct amdgpu_device *adev = (struct amdgpu_device *)dst; > > + struct amdgpu_device *peer_adev = src; > > + struct amdgpu_device *adev = dst; > > int ret = amdgpu_xgmi_get_hops_count(adev, peer_adev); > > > > if (ret < 0) { > > @@ -561,16 +547,18 @@ uint8_t > amdgpu_amdkfd_get_xgmi_hops_count(struct kgd_dev *dst, struct > kgd_dev *s > > return (uint8_t)ret; > > } > > > > -int amdgpu_amdkfd_get_xgmi_bandwidth_mbytes(struct kgd_dev *dst, > > struct kgd_dev *src, bool is_min) > > +int amdgpu_amdkfd_get_xgmi_bandwidth_mbytes(struct > amdgpu_device *dst, > > + struct amdgpu_device *src, > > + bool is_min) > > { > > - struct amdgpu_device *adev = (struct amdgpu_device *)dst, > *peer_adev; > > + struct amdgpu_device *adev = dst, *peer_adev; > > int num_links; > > > > if (adev->asic_type != CHIP_ALDEBARAN) > > return 0; > > > > if (src) > > - peer_adev = (struct amdgpu_device *)src; > > + peer_adev = src; > > > > /* num links returns 0 for indirect peers since indirect route is > unknown. */ > > num_links = is_min ? 1 : amdgpu_xgmi_get_num_links(adev, > peer_adev); > > @@ -585,9 +573,8 @@ int > amdgpu_amdkfd_get_xgmi_bandwidth_mbytes(struct kgd_dev *dst, struct > kgd_dev > > return (num_links * 16 * 25000)/BITS_PER_BYTE; } > > > > -int amdgpu_amdkfd_get_pcie_bandwidth_mbytes(struct kgd_dev *dev, > bool > > is_min) > > +int amdgpu_amdkfd_get_pcie_bandwidth_mbytes(struct > amdgpu_device > > +*adev, bool is_min) > > { > > - struct amdgpu_device *adev = (struct amdgpu_device *)dev; > > int num_lanes_shift = (is_min ? ffs(adev->pm.pcie_mlw_mask) : > > fls(adev- > >pm.pcie_mlw_mask)) - 1; > > int gen_speed_shift = (is_min ? ffs(adev->pm.pcie_gen_mask & @@ > > -643,31 +630,23 @@ int > amdgpu_amdkfd_get_pcie_bandwidth_mbytes(struct kgd_dev *dev, bool > is_min) > > return (num_lanes_factor * > gen_speed_mbits_factor)/BITS_PER_BYTE; > > } > > > > -uint64_t amdgpu_amdkfd_get_mmio_remap_phys_addr(struct kgd_dev > *kgd) > > +uint64_t amdgpu_amdkfd_get_mmio_remap_phys_addr(struct > amdgpu_device > > +*adev) > > { > > - struct amdgpu_device *adev = (struct amdgpu_device *)kgd; > > - > > return adev->rmmio_remap.bus_addr; > > } > > > > -uint32_t amdgpu_amdkfd_get_num_gws(struct kgd_dev *kgd) > > +uint32_t amdgpu_amdkfd_get_num_gws(struct amdgpu_device *adev) > > { > > - struct amdgpu_device *adev = (struct amdgpu_device *)kgd; > > - > > return adev->gds.gws_size; > > } > > > > -uint32_t amdgpu_amdkfd_get_asic_rev_id(struct kgd_dev *kgd) > > +uint32_t amdgpu_amdkfd_get_asic_rev_id(struct amdgpu_device *adev) > > { > > - struct amdgpu_device *adev = (struct amdgpu_device *)kgd; > > - > > return adev->rev_id; > > } > > > > -int amdgpu_amdkfd_get_noretry(struct kgd_dev *kgd) > > +int amdgpu_amdkfd_get_noretry(struct amdgpu_device *adev) > > { > > - struct amdgpu_device *adev = (struct amdgpu_device *)kgd; > > - > > return adev->gmc.noretry; > > } > > > > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.h > > b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.h > > index 8d5c18953723..7e3697a7a5cd 100644 > > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.h > > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.h > > @@ -209,29 +209,33 @@ int amdgpu_amdkfd_alloc_gws(struct > amdgpu_device > > *adev, size_t size, void amdgpu_amdkfd_free_gws(struct amdgpu_device > > *adev, void *mem_obj); int amdgpu_amdkfd_add_gws_to_process(void > > *info, void *gws, struct kgd_mem **mem); int > > amdgpu_amdkfd_remove_gws_from_process(void *info, void *mem); > > -uint32_t amdgpu_amdkfd_get_fw_version(struct kgd_dev *kgd, > > +uint32_t amdgpu_amdkfd_get_fw_version(struct amdgpu_device *adev, > > enum kgd_engine_type type); -void > > amdgpu_amdkfd_get_local_mem_info(struct kgd_dev *kgd, > > +void amdgpu_amdkfd_get_local_mem_info(struct amdgpu_device > *adev, > > struct kfd_local_mem_info *mem_info); - > uint64_t > > amdgpu_amdkfd_get_gpu_clock_counter(struct kgd_dev *kgd); > > +uint64_t amdgpu_amdkfd_get_gpu_clock_counter(struct > amdgpu_device > > +*adev); > > > > -uint32_t amdgpu_amdkfd_get_max_engine_clock_in_mhz(struct > kgd_dev > > *kgd); -void amdgpu_amdkfd_get_cu_info(struct kgd_dev *kgd, struct > > kfd_cu_info *cu_info); -int amdgpu_amdkfd_get_dmabuf_info(struct > kgd_dev *kgd, int dma_buf_fd, > > - struct kgd_dev **dmabuf_kgd, > > +uint32_t amdgpu_amdkfd_get_max_engine_clock_in_mhz(struct > > +amdgpu_device *adev); void amdgpu_amdkfd_get_cu_info(struct > amdgpu_device *adev, > > + struct kfd_cu_info *cu_info); int > > +amdgpu_amdkfd_get_dmabuf_info(struct amdgpu_device *adev, int > dma_buf_fd, > > + struct amdgpu_device **dmabuf_adev, > > uint64_t *bo_size, void *metadata_buffer, > > size_t buffer_size, uint32_t *metadata_size, > > uint32_t *flags); > > -uint64_t amdgpu_amdkfd_get_vram_usage(struct kgd_dev *kgd); - > uint64_t > > amdgpu_amdkfd_get_hive_id(struct kgd_dev *kgd); -uint64_t > > amdgpu_amdkfd_get_unique_id(struct kgd_dev *kgd); -uint64_t > > amdgpu_amdkfd_get_mmio_remap_phys_addr(struct kgd_dev *kgd); - > uint32_t > > amdgpu_amdkfd_get_num_gws(struct kgd_dev *kgd); -uint32_t > > amdgpu_amdkfd_get_asic_rev_id(struct kgd_dev *kgd); -int > > amdgpu_amdkfd_get_noretry(struct kgd_dev *kgd); -uint8_t > > amdgpu_amdkfd_get_xgmi_hops_count(struct kgd_dev *dst, struct > kgd_dev > > *src); -int amdgpu_amdkfd_get_xgmi_bandwidth_mbytes(struct kgd_dev > > *dst, struct kgd_dev *src, bool is_min); -int > > amdgpu_amdkfd_get_pcie_bandwidth_mbytes(struct kgd_dev *dev, bool > > is_min); > > +uint64_t amdgpu_amdkfd_get_vram_usage(struct amdgpu_device > *adev); > > +uint64_t amdgpu_amdkfd_get_hive_id(struct amdgpu_device *adev); > > +uint64_t amdgpu_amdkfd_get_unique_id(struct amdgpu_device *adev); > > +uint64_t amdgpu_amdkfd_get_mmio_remap_phys_addr(struct > amdgpu_device > > +*adev); uint32_t amdgpu_amdkfd_get_num_gws(struct amdgpu_device > > +*adev); uint32_t amdgpu_amdkfd_get_asic_rev_id(struct > amdgpu_device > > +*adev); int amdgpu_amdkfd_get_noretry(struct amdgpu_device *adev); > > +uint8_t amdgpu_amdkfd_get_xgmi_hops_count(struct amdgpu_device > *dst, > > + struct amdgpu_device *src); > > +int amdgpu_amdkfd_get_xgmi_bandwidth_mbytes(struct > amdgpu_device *dst, > > + struct amdgpu_device *src, > > + bool is_min); > > +int amdgpu_amdkfd_get_pcie_bandwidth_mbytes(struct > amdgpu_device > > +*adev, bool is_min); > > > > /* Read user wptr from a specified user address space with page fault > > * disabled. The memory must be pinned and mapped to the hardware > > when diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c > > b/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c > > index 7c4f14410a74..47acfef1aebd 100644 > > --- a/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c > > +++ b/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c > > @@ -850,7 +850,7 @@ static int kfd_ioctl_get_clock_counters(struct file > *filep, > > dev = kfd_device_by_id(args->gpu_id); > > if (dev) > > /* Reading GPU clock counter from KGD */ > > - args->gpu_clock_counter = > amdgpu_amdkfd_get_gpu_clock_counter(dev->kgd); > > + args->gpu_clock_counter = > > +amdgpu_amdkfd_get_gpu_clock_counter(dev->adev); > > else > > /* Node without GPU resource */ > > args->gpu_clock_counter = 0; > > @@ -1237,7 +1237,7 @@ bool kfd_dev_is_large_bar(struct kfd_dev *dev) > > if (dev->use_iommu_v2) > > return false; > > > > - amdgpu_amdkfd_get_local_mem_info(dev->kgd, &mem_info); > > + amdgpu_amdkfd_get_local_mem_info(dev->adev, &mem_info); > > if (mem_info.local_mem_size_private == 0 && > > mem_info.local_mem_size_public > 0) > > return true; > > @@ -1306,7 +1306,7 @@ static int kfd_ioctl_alloc_memory_of_gpu(struct > file *filep, > > err = -EINVAL; > > goto err_unlock; > > } > > - offset = > amdgpu_amdkfd_get_mmio_remap_phys_addr(dev->kgd); > > + offset = > amdgpu_amdkfd_get_mmio_remap_phys_addr(dev->adev); > > if (!offset) { > > err = -ENOMEM; > > goto err_unlock; > > @@ -1664,7 +1664,7 @@ static int kfd_ioctl_get_dmabuf_info(struct file > > *filep, { > > struct kfd_ioctl_get_dmabuf_info_args *args = data; > > struct kfd_dev *dev = NULL; > > - struct kgd_dev *dma_buf_kgd; > > + struct amdgpu_device *dmabuf_adev; > > void *metadata_buffer = NULL; > > uint32_t flags; > > unsigned int i; > > @@ -1684,15 +1684,15 @@ static int kfd_ioctl_get_dmabuf_info(struct file > *filep, > > } > > > > /* Get dmabuf info from KGD */ > > - r = amdgpu_amdkfd_get_dmabuf_info(dev->kgd, args->dmabuf_fd, > > - &dma_buf_kgd, &args->size, > > + r = amdgpu_amdkfd_get_dmabuf_info(dev->adev, args- > >dmabuf_fd, > > + &dmabuf_adev, &args->size, > > metadata_buffer, args- > >metadata_size, > > &args->metadata_size, &flags); > > if (r) > > goto exit; > > > > /* Reverse-lookup gpu_id from kgd pointer */ > > - dev = kfd_device_by_kgd(dma_buf_kgd); > > + dev = kfd_device_by_adev(dmabuf_adev); > > if (!dev) { > > r = -EINVAL; > > goto exit; > > @@ -2050,7 +2050,7 @@ static int kfd_mmio_mmap(struct kfd_dev *dev, > struct kfd_process *process, > > if (vma->vm_end - vma->vm_start != PAGE_SIZE) > > return -EINVAL; > > > > - address = amdgpu_amdkfd_get_mmio_remap_phys_addr(dev- > >kgd); > > + address = amdgpu_amdkfd_get_mmio_remap_phys_addr(dev- > >adev); > > > > vma->vm_flags |= VM_IO | VM_DONTCOPY | VM_DONTEXPAND | > VM_NORESERVE | > > VM_DONTDUMP | VM_PFNMAP; > > diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_crat.c > > b/drivers/gpu/drm/amd/amdkfd/kfd_crat.c > > index cfedfb1e8596..7143550becb0 100644 > > --- a/drivers/gpu/drm/amd/amdkfd/kfd_crat.c > > +++ b/drivers/gpu/drm/amd/amdkfd/kfd_crat.c > > @@ -1993,16 +1993,16 @@ static int kfd_fill_gpu_direct_io_link_to_cpu(int > *avail_size, > > if (adev->asic_type == CHIP_ALDEBARAN) { > > sub_type_hdr->minimum_bandwidth_mbs = > > > amdgpu_amdkfd_get_xgmi_bandwidth_mbytes( > > - kdev->kgd, NULL, > true); > > + kdev->adev, NULL, > true); > > sub_type_hdr->maximum_bandwidth_mbs = > > sub_type_hdr- > >minimum_bandwidth_mbs; > > } > > } else { > > sub_type_hdr->io_interface_type = > CRAT_IOLINK_TYPE_PCIEXPRESS; > > sub_type_hdr->minimum_bandwidth_mbs = > > - > amdgpu_amdkfd_get_pcie_bandwidth_mbytes(kdev->kgd, true); > > + > amdgpu_amdkfd_get_pcie_bandwidth_mbytes(kdev->adev, true); > > sub_type_hdr->maximum_bandwidth_mbs = > > - > amdgpu_amdkfd_get_pcie_bandwidth_mbytes(kdev->kgd, false); > > + > amdgpu_amdkfd_get_pcie_bandwidth_mbytes(kdev->adev, false); > > } > > > > sub_type_hdr->proximity_domain_from = proximity_domain; @@ - > 2044,11 > > +2044,11 @@ static int kfd_fill_gpu_xgmi_link_to_gpu(int *avail_size, > > sub_type_hdr->proximity_domain_from = proximity_domain_from; > > sub_type_hdr->proximity_domain_to = proximity_domain_to; > > sub_type_hdr->num_hops_xgmi = > > - amdgpu_amdkfd_get_xgmi_hops_count(kdev->kgd, > peer_kdev->kgd); > > + amdgpu_amdkfd_get_xgmi_hops_count(kdev->adev, > peer_kdev->adev); > > sub_type_hdr->maximum_bandwidth_mbs = > > - amdgpu_amdkfd_get_xgmi_bandwidth_mbytes(kdev->kgd, > peer_kdev->kgd, false); > > + amdgpu_amdkfd_get_xgmi_bandwidth_mbytes(kdev- > >adev, > > +peer_kdev->adev, false); > > sub_type_hdr->minimum_bandwidth_mbs = sub_type_hdr- > >maximum_bandwidth_mbs ? > > - amdgpu_amdkfd_get_xgmi_bandwidth_mbytes(kdev->kgd, > NULL, true) : 0; > > + amdgpu_amdkfd_get_xgmi_bandwidth_mbytes(kdev- > >adev, NULL, true) : > > +0; > > > > return 0; > > } > > @@ -2114,7 +2114,7 @@ static int kfd_create_vcrat_image_gpu(void > *pcrat_image, > > cu->flags |= CRAT_CU_FLAGS_GPU_PRESENT; > > cu->proximity_domain = proximity_domain; > > > > - amdgpu_amdkfd_get_cu_info(kdev->kgd, &cu_info); > > + amdgpu_amdkfd_get_cu_info(kdev->adev, &cu_info); > > cu->num_simd_per_cu = cu_info.simd_per_cu; > > cu->num_simd_cores = cu_info.simd_per_cu * > cu_info.cu_active_number; > > cu->max_waves_simd = cu_info.max_waves_per_simd; @@ -2145,7 > +2145,7 > > @@ static int kfd_create_vcrat_image_gpu(void *pcrat_image, > > * report the total FB size (public+private) as a single > > * private heap. > > */ > > - amdgpu_amdkfd_get_local_mem_info(kdev->kgd, > &local_mem_info); > > + amdgpu_amdkfd_get_local_mem_info(kdev->adev, > &local_mem_info); > > sub_type_hdr = (typeof(sub_type_hdr))((char *)sub_type_hdr + > > sub_type_hdr->length); > > > > diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_device.c > > b/drivers/gpu/drm/amd/amdkfd/kfd_device.c > > index a90ec8de213b..00c726123207 100644 > > --- a/drivers/gpu/drm/amd/amdkfd/kfd_device.c > > +++ b/drivers/gpu/drm/amd/amdkfd/kfd_device.c > > @@ -894,7 +894,7 @@ static int kfd_gws_init(struct kfd_dev *kfd) > > || (kfd->device_info->asic_family == CHIP_ALDEBARAN > > && kfd->mec2_fw_version >= 0x28)) > > ret = amdgpu_amdkfd_alloc_gws(kfd->adev, > > - amdgpu_amdkfd_get_num_gws(kfd->kgd), > &kfd->gws); > > + amdgpu_amdkfd_get_num_gws(kfd->adev), > &kfd->gws); > > > > return ret; > > } > > @@ -911,11 +911,11 @@ bool kgd2kfd_device_init(struct kfd_dev *kfd, > > unsigned int size, map_process_packet_size; > > > > kfd->ddev = ddev; > > - kfd->mec_fw_version = amdgpu_amdkfd_get_fw_version(kfd- > >kgd, > > + kfd->mec_fw_version = amdgpu_amdkfd_get_fw_version(kfd- > >adev, > > KGD_ENGINE_MEC1); > > - kfd->mec2_fw_version = amdgpu_amdkfd_get_fw_version(kfd- > >kgd, > > + kfd->mec2_fw_version = amdgpu_amdkfd_get_fw_version(kfd- > >adev, > > KGD_ENGINE_MEC2); > > - kfd->sdma_fw_version = amdgpu_amdkfd_get_fw_version(kfd- > >kgd, > > + kfd->sdma_fw_version = amdgpu_amdkfd_get_fw_version(kfd- > >adev, > > KGD_ENGINE_SDMA1); > > kfd->shared_resources = *gpu_resources; > > > > @@ -996,9 +996,9 @@ bool kgd2kfd_device_init(struct kfd_dev *kfd, > > goto kfd_doorbell_error; > > } > > > > - kfd->hive_id = amdgpu_amdkfd_get_hive_id(kfd->kgd); > > + kfd->hive_id = amdgpu_amdkfd_get_hive_id(kfd->adev); > > > > - kfd->noretry = amdgpu_amdkfd_get_noretry(kfd->kgd); > > + kfd->noretry = amdgpu_amdkfd_get_noretry(kfd->adev); > > > > if (kfd_interrupt_init(kfd)) { > > dev_err(kfd_device, "Error initializing interrupts\n"); @@ - > 1016,7 > > +1016,7 @@ bool kgd2kfd_device_init(struct kfd_dev *kfd, > > */ > > if (kfd_gws_init(kfd)) { > > dev_err(kfd_device, "Could not allocate %d gws\n", > > - amdgpu_amdkfd_get_num_gws(kfd->kgd)); > > + amdgpu_amdkfd_get_num_gws(kfd->adev)); > > goto gws_error; > > } > > > > diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager.c > > b/drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager.c > > index c021519af810..7b4118915bf6 100644 > > --- a/drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager.c > > +++ b/drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager.c > > @@ -100,7 +100,7 @@ void mqd_symmetrically_map_cu_mask(struct > mqd_manager *mm, > > struct kfd_cu_info cu_info; > > uint32_t > cu_per_sh[KFD_MAX_NUM_SE][KFD_MAX_NUM_SH_PER_SE] = {0}; > > int i, se, sh, cu; > > - amdgpu_amdkfd_get_cu_info(mm->dev->kgd, &cu_info); > > + amdgpu_amdkfd_get_cu_info(mm->dev->adev, &cu_info); > > > > if (cu_mask_count > cu_info.cu_active_number) > > cu_mask_count = cu_info.cu_active_number; diff --git > > a/drivers/gpu/drm/amd/amdkfd/kfd_priv.h > > b/drivers/gpu/drm/amd/amdkfd/kfd_priv.h > > index c8bd062fb954..499db2099775 100644 > > --- a/drivers/gpu/drm/amd/amdkfd/kfd_priv.h > > +++ b/drivers/gpu/drm/amd/amdkfd/kfd_priv.h > > @@ -969,7 +969,7 @@ struct kfd_topology_device > > *kfd_topology_device_by_proximity_domain( > > struct kfd_topology_device *kfd_topology_device_by_id(uint32_t > > gpu_id); struct kfd_dev *kfd_device_by_id(uint32_t gpu_id); struct > > kfd_dev *kfd_device_by_pci_dev(const struct pci_dev *pdev); -struct > > kfd_dev *kfd_device_by_kgd(const struct kgd_dev *kgd); > > +struct kfd_dev *kfd_device_by_adev(const struct amdgpu_device > *adev); > > int kfd_topology_enum_kfd_devices(uint8_t idx, struct kfd_dev > > **kdev); int kfd_numa_node_to_apic_id(int numa_node_id); void > > kfd_double_confirm_iommu_support(struct kfd_dev *gpu); diff --git > > a/drivers/gpu/drm/amd/amdkfd/kfd_process_queue_manager.c > > b/drivers/gpu/drm/amd/amdkfd/kfd_process_queue_manager.c > > index 243dd1efcdbf..d8462bd3b4a6 100644 > > --- a/drivers/gpu/drm/amd/amdkfd/kfd_process_queue_manager.c > > +++ b/drivers/gpu/drm/amd/amdkfd/kfd_process_queue_manager.c > > @@ -118,7 +118,7 @@ int pqm_set_gws(struct process_queue_manager > *pqm, unsigned int qid, > > return ret; > > > > pqn->q->gws = mem; > > - pdd->qpd.num_gws = gws ? amdgpu_amdkfd_get_num_gws(dev- > >kgd) : 0; > > + pdd->qpd.num_gws = gws ? amdgpu_amdkfd_get_num_gws(dev- > >adev) : 0; > > > > return pqn->q->device->dqm->ops.update_queue(pqn->q->device- > >dqm, > > pqn->q); > > diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_topology.c > > b/drivers/gpu/drm/amd/amdkfd/kfd_topology.c > > index dd593ad0614a..31610b4a3e2e 100644 > > --- a/drivers/gpu/drm/amd/amdkfd/kfd_topology.c > > +++ b/drivers/gpu/drm/amd/amdkfd/kfd_topology.c > > @@ -113,7 +113,7 @@ struct kfd_dev *kfd_device_by_pci_dev(const > struct pci_dev *pdev) > > return device; > > } > > > > -struct kfd_dev *kfd_device_by_kgd(const struct kgd_dev *kgd) > > +struct kfd_dev *kfd_device_by_adev(const struct amdgpu_device > *adev) > > { > > struct kfd_topology_device *top_dev; > > struct kfd_dev *device = NULL; > > @@ -121,7 +121,7 @@ struct kfd_dev *kfd_device_by_kgd(const struct > kgd_dev *kgd) > > down_read(&topology_lock); > > > > list_for_each_entry(top_dev, &topology_device_list, list) > > - if (top_dev->gpu && top_dev->gpu->kgd == kgd) { > > + if (top_dev->gpu && top_dev->gpu->adev == adev) { > > device = top_dev->gpu; > > break; > > } > > @@ -531,7 +531,7 @@ static ssize_t node_show(struct kobject *kobj, > struct attribute *attr, > > sysfs_show_32bit_prop(buffer, offs, "sdma_fw_version", > > dev->gpu->sdma_fw_version); > > sysfs_show_64bit_prop(buffer, offs, "unique_id", > > - amdgpu_amdkfd_get_unique_id(dev- > >gpu->kgd)); > > + amdgpu_amdkfd_get_unique_id(dev- > >gpu->adev)); > > > > } > > > > @@ -1106,7 +1106,7 @@ static uint32_t kfd_generate_gpu_id(struct > kfd_dev *gpu) > > if (!gpu) > > return 0; > > > > - amdgpu_amdkfd_get_local_mem_info(gpu->kgd, > &local_mem_info); > > + amdgpu_amdkfd_get_local_mem_info(gpu->adev, > &local_mem_info); > > > > local_mem_size = local_mem_info.local_mem_size_private + > > local_mem_info.local_mem_size_public; > > @@ -1189,7 +1189,7 @@ static void kfd_fill_mem_clk_max_info(struct > kfd_topology_device *dev) > > * for APUs - If CRAT from ACPI reports more than one bank, then > > * all the banks will report the same mem_clk_max information > > */ > > - amdgpu_amdkfd_get_local_mem_info(dev->gpu->kgd, > &local_mem_info); > > + amdgpu_amdkfd_get_local_mem_info(dev->gpu->adev, > &local_mem_info); > > > > list_for_each_entry(mem, &dev->mem_props, list) > > mem->mem_clk_max = local_mem_info.mem_clk_max; > @@ -1372,7 +1372,7 > > @@ int kfd_topology_add_device(struct kfd_dev *gpu) > > * needed for the topology > > */ > > > > - amdgpu_amdkfd_get_cu_info(dev->gpu->kgd, &cu_info); > > + amdgpu_amdkfd_get_cu_info(dev->gpu->adev, &cu_info); > > > > strncpy(dev->node_props.name, gpu->device_info->asic_name, > > KFD_TOPOLOGY_PUBLIC_NAME_SIZE); > > @@ -1384,13 +1384,13 @@ int kfd_topology_add_device(struct kfd_dev > *gpu) > > dev->node_props.vendor_id = gpu->pdev->vendor; > > dev->node_props.device_id = gpu->pdev->device; > > dev->node_props.capability |= > > - ((amdgpu_amdkfd_get_asic_rev_id(dev->gpu->kgd) << > > + ((amdgpu_amdkfd_get_asic_rev_id(dev->gpu->adev) << > > HSA_CAP_ASIC_REVISION_SHIFT) & > > HSA_CAP_ASIC_REVISION_MASK); > > dev->node_props.location_id = pci_dev_id(gpu->pdev); > > dev->node_props.domain = pci_domain_nr(gpu->pdev->bus); > > dev->node_props.max_engine_clk_fcompute = > > - amdgpu_amdkfd_get_max_engine_clock_in_mhz(dev- > >gpu->kgd); > > + amdgpu_amdkfd_get_max_engine_clock_in_mhz(dev- > >gpu->adev); > > dev->node_props.max_engine_clk_ccompute = > > cpufreq_quick_get_max(0) / 1000; > > dev->node_props.drm_render_minor = > > @@ -1404,7 +1404,7 @@ int kfd_topology_add_device(struct kfd_dev > *gpu) > > gpu->device_info- > >num_sdma_queues_per_engine; > > dev->node_props.num_gws = (dev->gpu->gws && > > dev->gpu->dqm->sched_policy != > KFD_SCHED_POLICY_NO_HWS) ? > > - amdgpu_amdkfd_get_num_gws(dev->gpu->kgd) : 0; > > + amdgpu_amdkfd_get_num_gws(dev->gpu->adev) : 0; > > dev->node_props.num_cp_queues = get_cp_queues_num(dev- > >gpu->dqm); > > > > kfd_fill_mem_clk_max_info(dev);