[PATCH] drm/amdkfd: Drop workaround for GC v9.4.3 revID 0

Amber Lin Amber.Lin at amd.com
Fri Mar 28 17:34:39 UTC 2025


A nitpick below. With that addressed,

Reviewed-by: Amber Lin <Amber.Lin at amd.com>

Regards,
Amber

On 3/27/25 13:47, Apurv Mishra wrote:
> remove workaround code for the early engineering samples
> GC v9.4.3 SOCs with revID 0 - GFX 940 & 941 - from driver
Remove "- GFX 940 & 941 - from driver" and simply "Remove workaround 
code for the early engineering samples GC v9.4.3 SOCs with revID 0"
>
> Reviewed-by: Lijo Lazar<lijo.lazar at amd.com>
> Signed-off-by: Apurv Mishra<Apurv.Mishra at amd.com>
> ---
>   drivers/gpu/drm/amd/amdgpu/amdgpu_device.c |  8 +++++++-
>   drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c      | 14 ++------------
>   drivers/gpu/drm/amd/amdkfd/kfd_device.c    |  5 -----
>   drivers/gpu/drm/amd/amdkfd/kfd_queue.c     |  4 ++--
>   drivers/gpu/drm/amd/amdkfd/kfd_svm.c       |  3 +--
>   5 files changed, 12 insertions(+), 22 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
> index d4b01ef00025..81d314f2c689 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
> @@ -2692,6 +2692,13 @@ static int amdgpu_device_ip_early_init(struct amdgpu_device *adev)
>   		break;
>   	}
>   
> +	/* Check for IP version 9.4.3 with A0 hardware */
> +	if (amdgpu_ip_version(adev, GC_HWIP, 0) == IP_VERSION(9, 4, 3) &&
> +			!amdgpu_device_get_rev_id(adev)) {
> +		dev_err(adev->dev, "Unsupported A0 hardware\n");
> +		return -ENODEV;	/* device unsupported - no device error */
> +	}
> +
>   	if (amdgpu_has_atpx() &&
>   	    (amdgpu_is_atpx_hybrid() ||
>   	     amdgpu_has_atpx_dgpu_power_cntl()) &&
> @@ -2704,7 +2711,6 @@ static int amdgpu_device_ip_early_init(struct amdgpu_device *adev)
>   		adev->has_pr3 = parent ? pci_pr3_present(parent) : false;
>   	}
>   
> -
>   	adev->pm.pp_feature = amdgpu_pp_feature_mask;
>   	if (amdgpu_sriov_vf(adev) || sched_policy == KFD_SCHED_POLICY_NO_HWS)
>   		adev->pm.pp_feature &= ~PP_GFXOFF_MASK;
> diff --git a/drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c b/drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c
> index 783e0c3b86b4..8d3560314e5b 100644
> --- a/drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c
> +++ b/drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c
> @@ -1213,10 +1213,7 @@ static void gmc_v9_0_get_coherence_flags(struct amdgpu_device *adev,
>   		if (uncached) {
>   			mtype = MTYPE_UC;
>   		} else if (ext_coherent) {
> -			if (gc_ip_version == IP_VERSION(9, 5, 0) || adev->rev_id)
> -				mtype = is_local ? MTYPE_CC : MTYPE_UC;
> -			else
> -				mtype = MTYPE_UC;
> +			mtype = is_local ? MTYPE_CC : MTYPE_UC;
>   		} else if (adev->flags & AMD_IS_APU) {
>   			mtype = is_local ? mtype_local : MTYPE_NC;
>   		} else {
> @@ -1336,7 +1333,7 @@ static void gmc_v9_0_override_vm_pte_flags(struct amdgpu_device *adev,
>   				mtype_local = MTYPE_CC;
>   
>   			*flags = AMDGPU_PTE_MTYPE_VG10(*flags, mtype_local);
> -		} else if (adev->rev_id) {
> +		} else {
>   			/* MTYPE_UC case */
>   			*flags = AMDGPU_PTE_MTYPE_VG10(*flags, MTYPE_CC);
>   		}
> @@ -2411,13 +2408,6 @@ static int gmc_v9_0_hw_init(struct amdgpu_ip_block *ip_block)
>   	adev->gmc.flush_tlb_needs_extra_type_2 =
>   		amdgpu_ip_version(adev, GC_HWIP, 0) == IP_VERSION(9, 4, 0) &&
>   		adev->gmc.xgmi.num_physical_nodes;
> -	/*
> -	 * TODO: This workaround is badly documented and had a buggy
> -	 * implementation. We should probably verify what we do here.
> -	 */
> -	adev->gmc.flush_tlb_needs_extra_type_0 =
> -		amdgpu_ip_version(adev, GC_HWIP, 0) == IP_VERSION(9, 4, 3) &&
> -		adev->rev_id == 0;
>   
>   	/* The sequence of these two function calls matters.*/
>   	gmc_v9_0_init_golden_registers(adev);
> diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_device.c b/drivers/gpu/drm/amd/amdkfd/kfd_device.c
> index b9c82be6ce13..bf0854bd5555 100644
> --- a/drivers/gpu/drm/amd/amdkfd/kfd_device.c
> +++ b/drivers/gpu/drm/amd/amdkfd/kfd_device.c
> @@ -352,11 +352,6 @@ struct kfd_dev *kgd2kfd_probe(struct amdgpu_device *adev, bool vf)
>   			f2g = &aldebaran_kfd2kgd;
>   			break;
>   		case IP_VERSION(9, 4, 3):
> -			gfx_target_version = adev->rev_id >= 1 ? 90402
> -					   : adev->flags & AMD_IS_APU ? 90400
> -					   : 90401;
> -			f2g = &gc_9_4_3_kfd2kgd;
> -			break;
>   		case IP_VERSION(9, 4, 4):
>   			gfx_target_version = 90402;
>   			f2g = &gc_9_4_3_kfd2kgd;
> diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_queue.c b/drivers/gpu/drm/amd/amdkfd/kfd_queue.c
> index 4afff7094caf..a65c67cf56ff 100644
> --- a/drivers/gpu/drm/amd/amdkfd/kfd_queue.c
> +++ b/drivers/gpu/drm/amd/amdkfd/kfd_queue.c
> @@ -402,7 +402,7 @@ static u32 kfd_get_vgpr_size_per_cu(u32 gfxv)
>   {
>   	u32 vgpr_size = 0x40000;
>   
> -	if ((gfxv / 100 * 100) == 90400 ||	/* GFX_VERSION_AQUA_VANJARAM */
> +	if (gfxv == 90402 ||			/* GFX_VERSION_AQUA_VANJARAM */
>   	    gfxv == 90010 ||			/* GFX_VERSION_ALDEBARAN */
>   	    gfxv == 90008 ||			/* GFX_VERSION_ARCTURUS */
>   	    gfxv == 90500)
> @@ -462,7 +462,7 @@ void kfd_queue_ctx_save_restore_size(struct kfd_topology_device *dev)
>   
>   	if (gfxv == 80002)	/* GFX_VERSION_TONGA */
>   		props->eop_buffer_size = 0x8000;
> -	else if ((gfxv / 100 * 100) == 90400)	/* GFX_VERSION_AQUA_VANJARAM */
> +	else if (gfxv == 90402)	/* GFX_VERSION_AQUA_VANJARAM */
>   		props->eop_buffer_size = 4096;
>   	else if (gfxv >= 80000)
>   		props->eop_buffer_size = 4096;
> diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_svm.c b/drivers/gpu/drm/amd/amdkfd/kfd_svm.c
> index 100717a98ec1..72be6e152e88 100644
> --- a/drivers/gpu/drm/amd/amdkfd/kfd_svm.c
> +++ b/drivers/gpu/drm/amd/amdkfd/kfd_svm.c
> @@ -1245,8 +1245,7 @@ svm_range_get_pte_flags(struct kfd_node *node,
>   	case IP_VERSION(9, 4, 4):
>   	case IP_VERSION(9, 5, 0):
>   		if (ext_coherent)
> -			mtype_local = (gc_ip_version < IP_VERSION(9, 5, 0) && !node->adev->rev_id) ?
> -					AMDGPU_VM_MTYPE_UC : AMDGPU_VM_MTYPE_CC;
> +			mtype_local = AMDGPU_VM_MTYPE_CC;
>   		else
>   			mtype_local = amdgpu_mtype_local == 1 ? AMDGPU_VM_MTYPE_NC :
>   				amdgpu_mtype_local == 2 ? AMDGPU_VM_MTYPE_CC : AMDGPU_VM_MTYPE_RW;
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/amd-gfx/attachments/20250328/7a44367c/attachment-0001.htm>


More information about the amd-gfx mailing list