[PATCH 2/4] drm/amdkfd: disable IOMMUv2 support for KV/CZ

Felix Kuehling felix.kuehling at amd.com
Fri Jul 28 18:21:29 UTC 2023


There are some APU-specific code paths for Kaveri and Carrizo in the 
device queue manager and MQD manager. I think a minimal fix would be to 
change device_queue_manager_init to call 
device_queue_manager_init_cik_hawaii for Kaveri and 
device_queue_manager_init_vi_tonga for Carrizo to use the dGPU code paths.

Then we could probably remove the APU-specific functions and remove the 
_hawaii and _tonga suffixes from the dGPU functions.

Regards,
   Felix


On 2023-07-28 12:41, Alex Deucher wrote:
> Use the dGPU path instead.  There were a lot of platform
> issues with IOMMU in general on these chips due to windows
> not enabling IOMMU at the time.  The dGPU path has been
> used for a long time with newer APUs and works fine.  This
> also paves the way to simplify the driver significantly.
>
> Signed-off-by: Alex Deucher <alexander.deucher at amd.com>
> ---
>   drivers/gpu/drm/amd/amdkfd/kfd_device.c | 6 ------
>   1 file changed, 6 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_device.c b/drivers/gpu/drm/amd/amdkfd/kfd_device.c
> index 64772921ea43b..814a6116ca9bb 100644
> --- a/drivers/gpu/drm/amd/amdkfd/kfd_device.c
> +++ b/drivers/gpu/drm/amd/amdkfd/kfd_device.c
> @@ -234,10 +234,6 @@ static void kfd_device_info_init(struct kfd_dev *kfd,
>   		    asic_type != CHIP_TONGA)
>   			kfd->device_info.supports_cwsr = true;
>   
> -		if (asic_type == CHIP_KAVERI ||
> -		    asic_type == CHIP_CARRIZO)
> -			kfd->device_info.needs_iommu_device = true;
> -
>   		if (asic_type != CHIP_HAWAII && !vf)
>   			kfd->device_info.needs_pci_atomics = true;
>   	}
> @@ -250,7 +246,6 @@ struct kfd_dev *kgd2kfd_probe(struct amdgpu_device *adev, bool vf)
>   	uint32_t gfx_target_version = 0;
>   
>   	switch (adev->asic_type) {
> -#ifdef KFD_SUPPORT_IOMMU_V2
>   #ifdef CONFIG_DRM_AMDGPU_CIK
>   	case CHIP_KAVERI:
>   		gfx_target_version = 70000;
> @@ -263,7 +258,6 @@ struct kfd_dev *kgd2kfd_probe(struct amdgpu_device *adev, bool vf)
>   		if (!vf)
>   			f2g = &gfx_v8_kfd2kgd;
>   		break;
> -#endif
>   #ifdef CONFIG_DRM_AMDGPU_CIK
>   	case CHIP_HAWAII:
>   		gfx_target_version = 70001;


More information about the amd-gfx mailing list