That is good idea. Will do it.
From: Deucher, Alexander
Sent: Monday, November 26, 2018 11:02 AM
To: Zeng, Oak <Oak.Zeng@xxxxxxx>; Alex Deucher <alexdeucher@xxxxxxxxx>
Cc: amd-gfx@xxxxxxxxxxxxxxxxxxxxx
Subject: Re: [PATCH 5/7] drm/amdgpu: Call doorbell index init on device initialization
Maybe it would be better to add this as a callback to struct amdgpu_asic_funcs to avoid adding asic specific code to amdgpu_device.c
Alex
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.
In a later version, I moved calling of *_doorbell_index_init to the top of amdgpu_device_doorbell_init.
thanks,
Oak
-----Original Message-----
From: Alex Deucher <alexdeucher@xxxxxxxxx>
Sent: Sunday, November 25, 2018 1:43 PM
To: Zeng, Oak <Oak.Zeng@xxxxxxx>
Subject: Fwd: [PATCH 5/7] drm/amdgpu: Call doorbell index init on device initialization
---------- Forwarded message ---------
From: Alex Deucher <alexdeucher@xxxxxxxxx>
Date: Wed, Nov 21, 2018 at 11:21 AM
Subject: Re: [PATCH 5/7] drm/amdgpu: Call doorbell index init on device initialization
To: <ozeng@xxxxxxx>
Cc: amd-gfx list <amd-gfx@xxxxxxxxxxxxxxxxxxxxx>, Oak Zeng <Oak.Zeng@xxxxxxx>
On Wed, Nov 21, 2018 at 10:52 AM Oak Zeng <ozeng@xxxxxxx> wrote:
>
> Change-Id: I2f004bbbe2565035460686f4fc16e86b77a2a9b5
> Signed-off-by: Oak Zeng <ozeng@xxxxxxx>
> Suggested-by: Felix Kuehling <Felix.Kuehling@xxxxxxx>
> Suggested-by: Alex Deucher <alexander.deucher@xxxxxxx>
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
*_reg_base_init() calls.
Alex
> ---
> drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 7 +++++++
> 1 file changed, 7 insertions(+)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
> b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
> index cb06e68..a942a88 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
> @@ -513,6 +513,13 @@ void amdgpu_device_pci_config_reset(struct amdgpu_device *adev)
> */
> static int amdgpu_device_doorbell_init(struct amdgpu_device *adev) {
> + if (adev->asic_type < CHIP_VEGA10)
> + vi_doorbell_index_init(adev);
> + else if (adev->asic_type == CHIP_VEGA10)
> + vega10_doorbell_index_init(adev);
> + else
> + vega12_doorbell_index_init(adev);
> +
> /* No doorbell on SI hardware generation */
> if (adev->asic_type < CHIP_BONAIRE) {
> adev->doorbell.base = 0;
> --
> 2.7.4
>
> _______________________________________________
> amd-gfx mailing list
> amd-gfx@xxxxxxxxxxxxxxxxxxxxx
> https://lists.freedesktop.org/mailman/listinfo/amd-gfx
_______________________________________________
amd-gfx mailing list
amd-gfx@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/amd-gfx
|