<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">
<div id="divtagdefaultwrapper" style="font-size:12pt;color:#000000;font-family:Calibri,Helvetica,sans-serif;" dir="ltr">
<p style="margin-top:0;margin-bottom:0">Maybe it would be better to add this as a callback to
<span>struct amdgpu_asic_funcs</span> to avoid adding asic specific code to amdgpu_device.c</p>
<p style="margin-top:0;margin-bottom:0"><br>
</p>
<p style="margin-top:0;margin-bottom:0">Alex<br>
</p>
</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> amd-gfx <amd-gfx-bounces@lists.freedesktop.org> on behalf of Deucher, Alexander <Alexander.Deucher@amd.com><br>
<b>Sent:</b> Monday, November 26, 2018 10:59:02 AM<br>
<b>To:</b> Zeng, Oak; Alex Deucher<br>
<b>Cc:</b> amd-gfx@lists.freedesktop.org<br>
<b>Subject:</b> Re: [PATCH 5/7] drm/amdgpu: Call doorbell index init on device initialization</font>
<div> </div>
</div>
<style type="text/css" style="display:none">
<!--
p
        {margin-top:0;
        margin-bottom:0}
-->
</style>
<div dir="ltr">
<div id="x_divtagdefaultwrapper" dir="ltr" style="font-size:12pt; color:#000000; font-family:Calibri,Helvetica,sans-serif">
<p style="margin-top:0; margin-bottom:0">Ah, ok.  no problem.</p>
<p style="margin-top:0; margin-bottom:0"><br>
</p>
<p style="margin-top:0; margin-bottom:0">Alex<br>
</p>
</div>
<hr tabindex="-1" style="display:inline-block; width:98%">
<div id="x_divRplyFwdMsg" dir="ltr"><font face="Calibri, sans-serif" color="#000000" style="font-size:11pt"><b>From:</b> amd-gfx <amd-gfx-bounces@lists.freedesktop.org> on behalf of Zeng, Oak <Oak.Zeng@amd.com><br>
<b>Sent:</b> Monday, November 26, 2018 10:31:04 AM<br>
<b>To:</b> Alex Deucher<br>
<b>Cc:</b> amd-gfx@lists.freedesktop.org<br>
<b>Subject:</b> RE: [PATCH 5/7] drm/amdgpu: Call doorbell index init on device initialization</font>
<div> </div>
</div>
<div class="x_BodyFragment"><font size="2"><span style="font-size:11pt">
<div class="x_PlainText">Yes, that was my first version. But during debug, I found amdgpu_device_doorbell_init uses adev->doorbell_index.max_assignment which is initialized in *_doorbell_index_init. So I have to call *_doorbell_index_init before amdgpu_device_doorbell_init.
 *_set_ip_blocks() is too late.<br>
<br>
In a later version, I moved calling of *_doorbell_index_init to the top of amdgpu_device_doorbell_init.<br>
<br>
thanks,<br>
Oak<br>
<br>
-----Original Message-----<br>
From: Alex Deucher <alexdeucher@gmail.com> <br>
Sent: Sunday, November 25, 2018 1:43 PM<br>
To: Zeng, Oak <Oak.Zeng@amd.com><br>
Subject: Fwd: [PATCH 5/7] drm/amdgpu: Call doorbell index init on device initialization<br>
<br>
---------- Forwarded message ---------<br>
From: Alex Deucher <alexdeucher@gmail.com><br>
Date: Wed, Nov 21, 2018 at 11:21 AM<br>
Subject: Re: [PATCH 5/7] drm/amdgpu: Call doorbell index init on device initialization<br>
To: <ozeng@amd.com><br>
Cc: amd-gfx list <amd-gfx@lists.freedesktop.org>, Oak Zeng <Oak.Zeng@amd.com><br>
<br>
<br>
On Wed, Nov 21, 2018 at 10:52 AM Oak Zeng <ozeng@amd.com> wrote:<br>
><br>
> Change-Id: I2f004bbbe2565035460686f4fc16e86b77a2a9b5<br>
> Signed-off-by: Oak Zeng <ozeng@amd.com><br>
> Suggested-by: Felix Kuehling <Felix.Kuehling@amd.com><br>
> Suggested-by: Alex Deucher <alexander.deucher@amd.com><br>
<br>
I think it would be cleaner to add this to the *_set_ip_blocks() functions in cik.c, vi.c, and soc15.c so it aligns with the<br>
*_reg_base_init() calls.<br>
<br>
Alex<br>
<br>
> ---<br>
>  drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 7 +++++++<br>
>  1 file changed, 7 insertions(+)<br>
><br>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c <br>
> b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c<br>
> index cb06e68..a942a88 100644<br>
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c<br>
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c<br>
> @@ -513,6 +513,13 @@ void amdgpu_device_pci_config_reset(struct amdgpu_device *adev)<br>
>   */<br>
>  static int amdgpu_device_doorbell_init(struct amdgpu_device *adev)  {<br>
> +       if (adev->asic_type < CHIP_VEGA10)<br>
> +               vi_doorbell_index_init(adev);<br>
> +       else if (adev->asic_type == CHIP_VEGA10)<br>
> +               vega10_doorbell_index_init(adev);<br>
> +       else<br>
> +               vega12_doorbell_index_init(adev);<br>
> +<br>
>         /* No doorbell on SI hardware generation */<br>
>         if (adev->asic_type < CHIP_BONAIRE) {<br>
>                 adev->doorbell.base = 0;<br>
> --<br>
> 2.7.4<br>
><br>
> _______________________________________________<br>
> amd-gfx mailing list<br>
> amd-gfx@lists.freedesktop.org<br>
> <a href="https://lists.freedesktop.org/mailman/listinfo/amd-gfx">https://lists.freedesktop.org/mailman/listinfo/amd-gfx</a><br>
_______________________________________________<br>
amd-gfx mailing list<br>
amd-gfx@lists.freedesktop.org<br>
<a href="https://lists.freedesktop.org/mailman/listinfo/amd-gfx">https://lists.freedesktop.org/mailman/listinfo/amd-gfx</a><br>
</div>
</span></font></div>
</div>
</body>
</html>