<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<style type="text/css" style="display:none;"> P {margin-top:0;margin-bottom:0;} </style>
</head>
<body dir="ltr">
<p style="font-family:Arial;font-size:10pt;color:#0000FF;margin:5pt;" align="Left">
[AMD Official Use Only]<br>
</p>
<br>
<div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
H Felix,</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
Since the previous patch can help on PCO suspend/resume hung issue. Let me work with YiFan to see if</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
there is proper way to cover both cases.<br>
</div>
<div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div id="Signature">
<div>
<div id="divtagdefaultwrapper" dir="ltr" style="font-size:12pt; color:#000000; font-family:Calibri,Arial,Helvetica,sans-serif">
<p style="margin-top: 0px; margin-bottom: 0px;">Thanks & Best Regards!</p>
<p style="margin-top: 0px; margin-bottom: 0px;"><br>
</p>
<p style="margin-top: 0px; margin-bottom: 0px;">James Zhu<br>
</p>
</div>
</div>
</div>
</div>
<div id="appendonsend"></div>
<hr style="display:inline-block;width:98%" tabindex="-1">
<div id="divRplyFwdMsg" dir="ltr"><font face="Calibri, sans-serif" style="font-size:11pt" color="#000000"><b>From:</b> Kuehling, Felix <Felix.Kuehling@amd.com><br>
<b>Sent:</b> Tuesday, September 28, 2021 11:41 AM<br>
<b>To:</b> Zhang, Yifan <Yifan1.Zhang@amd.com>; amd-gfx@lists.freedesktop.org <amd-gfx@lists.freedesktop.org>; Zhu, James <James.Zhu@amd.com><br>
<b>Subject:</b> Re: [PATCH 2/2] drm/amdgpu: init iommu after amdkfd device init</font>
<div> </div>
</div>
<div class="BodyFragment"><font size="2"><span style="font-size:11pt;">
<div class="PlainText">[+James]<br>
<br>
This basically undoes James's change "drm/amdgpu: move iommu_resume<br>
before ip init/resume". I assume James made his change for a reason. Can<br>
you please discuss the issue with him and determine a solution that<br>
solves both your problem and his?<br>
<br>
If James' patch series was a mistake, I'd prefer to revert his patches,<br>
because his patches complicated the initialization sequence and exposed<br>
the iommu init sequence in amdgpu.<br>
<br>
Thanks,<br>
  Felix<br>
<br>
<br>
Am 2021-09-28 um 4:28 a.m. schrieb Yifan Zhang:<br>
> This patch is to fix clinfo failure in Raven/Picasso:<br>
><br>
> Number of platforms: 1<br>
>   Platform Profile: FULL_PROFILE<br>
>   Platform Version: OpenCL 2.2 AMD-APP (3364.0)<br>
>   Platform Name: AMD Accelerated Parallel Processing<br>
>   Platform Vendor: Advanced Micro Devices, Inc.<br>
>   Platform Extensions: cl_khr_icd cl_amd_event_callback<br>
><br>
>   Platform Name: AMD Accelerated Parallel Processing Number of devices: 0<br>
><br>
> Signed-off-by: Yifan Zhang <yifan1.zhang@amd.com><br>
> ---<br>
>  drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 8 ++++----<br>
>  1 file changed, 4 insertions(+), 4 deletions(-)<br>
><br>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c<br>
> index 4c8f2f4647c0..89ed9b091386 100644<br>
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c<br>
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c<br>
> @@ -2393,10 +2393,6 @@ static int amdgpu_device_ip_init(struct amdgpu_device *adev)<br>
>        if (r)<br>
>                goto init_failed;<br>
>  <br>
> -     r = amdgpu_amdkfd_resume_iommu(adev);<br>
> -     if (r)<br>
> -             goto init_failed;<br>
> -<br>
>        r = amdgpu_device_ip_hw_init_phase1(adev);<br>
>        if (r)<br>
>                goto init_failed;<br>
> @@ -2435,6 +2431,10 @@ static int amdgpu_device_ip_init(struct amdgpu_device *adev)<br>
>        if (!adev->gmc.xgmi.pending_reset)<br>
>                amdgpu_amdkfd_device_init(adev);<br>
>  <br>
> +     r = amdgpu_amdkfd_resume_iommu(adev);<br>
> +     if (r)<br>
> +             goto init_failed;<br>
> +<br>
>        amdgpu_fru_get_product_info(adev);<br>
>  <br>
>  init_failed:<br>
</div>
</span></font></div>
</div>
</body>
</html>