Re: [PATCH] Revert "drm/amdgpu: init iommu after amdkfd device init"

Felix Kuehling
2024-06-04T18:25:07Z

On 2024-06-03 18:19, Armin Wolf wrote:
> Am 23.05.24 um 19:30 schrieb Armin Wolf:
>
>> This reverts commit 56b522f4668167096a50c39446d6263c96219f5f.
>>
>> A user reported that this commit breaks the integrated gpu of his
>> notebook, causing a black screen. He was able to bisect the problematic
>> commit and verified that by reverting it the notebook works again.
>> He also confirmed that kernel 6.8.1 also works on his device, so the
>> upstream commit itself seems to be ok.
>>
>> An amdgpu developer (Alex Deucher) confirmed that this patch should
>> have never been ported to 5.15 in the first place, so revert this
>> commit from the 5.15 stable series.
>
> Hi,
>
> what is the status of this?

Which branch is this for? This patch won't apply to anything after Linux
6.5. Support for IOMMUv2 was removed from amdgpu in Linux 6.6 by:

commit c99a2e7ae291e5b19b60443eb6397320ef9e8571
Author: Alex Deucher <alexander.deucher@amd.com>
Date:   Fri Jul 28 12:20:12 2023 -0400

drm/amdkfd: drop IOMMUv2 support

Now that we use the dGPU path for all APUs, drop the
IOMMUv2 support.

v2: drop the now unused queue manager functions for gfx7/8 APUs

Reviewed-by: Felix Kuehling <Felix.Kuehling@amd.com>
Acked-by: Christian König <christian.koenig@amd.com>
Tested-by: Mike Lothian <mike@fireburn.co.uk>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>

Regards,
Felix

>
> Armin Wolf
>
>>
>> Reported-by: Barry Kauler <bkauler@gmail.com>
>> Signed-off-by: Armin Wolf <W_Armin@gmx.de>
>> ---
>>   drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 8 ++++----
>>   1 file changed, 4 insertions(+), 4 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
>> b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
>> index 222a1d9ecf16..5f6c32ec674d 100644
>> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
>> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
>> @@ -2487,6 +2487,10 @@ static int amdgpu_device_ip_init(struct
>> amdgpu_device *adev)
>>       if (r)
>>           goto init_failed;
>>
>> +    r = amdgpu_amdkfd_resume_iommu(adev);
>> +    if (r)
>> +        goto init_failed;
>> +
>>       r = amdgpu_device_ip_hw_init_phase1(adev);
>>       if (r)
>>           goto init_failed;
>> @@ -2525,10 +2529,6 @@ static int amdgpu_device_ip_init(struct
>> amdgpu_device *adev)
>>       if (!adev->gmc.xgmi.pending_reset)
>>           amdgpu_amdkfd_device_init(adev);
>>
>> -    r = amdgpu_amdkfd_resume_iommu(adev);
>> -    if (r)
>> -        goto init_failed;
>> -
>>       amdgpu_fru_get_product_info(adev);
>>
>>   init_failed:
>> --
>> 2.39.2
>>
>>