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


>
> Signed-off-by: Graham Sider <[email protected]>
> ---
>  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);

Reply via email to