[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