Am 2021-11-09 um 5:42 p.m. schrieb Graham Sider:
> Defined as GC HWIP >= IP_VERSION(9, 0, 1).
>
> Also defines KFD_GC_VERSION to return GC HWIP version.
>
> Signed-off-by: Graham Sider <graham.si...@amd.com>

Patches 1 and 2 are

Reviewed-by: Felix Kuehling <felix.kuehl...@amd.com>

Comments on Patch 3 in a separate mail.

Regards,
  Felix


> ---
>  drivers/gpu/drm/amd/amdkfd/kfd_chardev.c              | 2 +-
>  drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c | 4 ++--
>  drivers/gpu/drm/amd/amdkfd/kfd_priv.h                 | 3 ++-
>  drivers/gpu/drm/amd/amdkfd/kfd_process.c              | 2 +-
>  4 files changed, 6 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c 
> b/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c
> index 2e3d74f7fbfb..2466a73b8c7d 100644
> --- a/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c
> +++ b/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c
> @@ -321,7 +321,7 @@ static int kfd_ioctl_create_queue(struct file *filep, 
> struct kfd_process *p,
>       /* Return gpu_id as doorbell offset for mmap usage */
>       args->doorbell_offset = KFD_MMAP_TYPE_DOORBELL;
>       args->doorbell_offset |= KFD_MMAP_GPU_ID(args->gpu_id);
> -     if (KFD_IS_SOC15(dev->device_info->asic_family))
> +     if (KFD_IS_SOC15(dev))
>               /* On SOC15 ASICs, include the doorbell offset within the
>                * process doorbell frame, which is 2 pages.
>                */
> diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c 
> b/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c
> index 0a60317509c8..4f7aec6a481b 100644
> --- a/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c
> +++ b/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c
> @@ -157,7 +157,7 @@ static int allocate_doorbell(struct qcm_process_device 
> *qpd, struct queue *q)
>  {
>       struct kfd_dev *dev = qpd->dqm->dev;
>  
> -     if (!KFD_IS_SOC15(dev->device_info->asic_family)) {
> +     if (!KFD_IS_SOC15(dev)) {
>               /* On pre-SOC15 chips we need to use the queue ID to
>                * preserve the user mode ABI.
>                */
> @@ -202,7 +202,7 @@ static void deallocate_doorbell(struct qcm_process_device 
> *qpd,
>       unsigned int old;
>       struct kfd_dev *dev = qpd->dqm->dev;
>  
> -     if (!KFD_IS_SOC15(dev->device_info->asic_family) ||
> +     if (!KFD_IS_SOC15(dev) ||
>           q->properties.type == KFD_QUEUE_TYPE_SDMA ||
>           q->properties.type == KFD_QUEUE_TYPE_SDMA_XGMI)
>               return;
> diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_priv.h 
> b/drivers/gpu/drm/amd/amdkfd/kfd_priv.h
> index 78ae96fc8a6a..352709034acf 100644
> --- a/drivers/gpu/drm/amd/amdkfd/kfd_priv.h
> +++ b/drivers/gpu/drm/amd/amdkfd/kfd_priv.h
> @@ -183,7 +183,8 @@ enum cache_policy {
>       cache_policy_noncoherent
>  };
>  
> -#define KFD_IS_SOC15(chip) ((chip) >= CHIP_VEGA10)
> +#define KFD_GC_VERSION(dev) ((dev)->adev->ip_versions[GC_HWIP][0])
> +#define KFD_IS_SOC15(dev)   ((KFD_GC_VERSION(dev)) >= (IP_VERSION(9, 0, 1)))
>  
>  struct kfd_event_interrupt_class {
>       bool (*interrupt_isr)(struct kfd_dev *dev,
> diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_process.c 
> b/drivers/gpu/drm/amd/amdkfd/kfd_process.c
> index f29b3932e3dc..fafc7b187fad 100644
> --- a/drivers/gpu/drm/amd/amdkfd/kfd_process.c
> +++ b/drivers/gpu/drm/amd/amdkfd/kfd_process.c
> @@ -1431,7 +1431,7 @@ static int init_doorbell_bitmap(struct 
> qcm_process_device *qpd,
>       int range_start = dev->shared_resources.non_cp_doorbells_start;
>       int range_end = dev->shared_resources.non_cp_doorbells_end;
>  
> -     if (!KFD_IS_SOC15(dev->device_info->asic_family))
> +     if (!KFD_IS_SOC15(dev))
>               return 0;
>  
>       qpd->doorbell_bitmap =

Reply via email to