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 ________________________________ From: amd-gfx <[email protected]> on behalf of Deucher, Alexander <[email protected]> Sent: Monday, November 26, 2018 10:59:02 AM To: Zeng, Oak; Alex Deucher Cc: [email protected] Subject: Re: [PATCH 5/7] drm/amdgpu: Call doorbell index init on device initialization Ah, ok. no problem. Alex ________________________________ From: amd-gfx <[email protected]> on behalf of Zeng, Oak <[email protected]> Sent: Monday, November 26, 2018 10:31:04 AM To: Alex Deucher Cc: [email protected] Subject: RE: [PATCH 5/7] drm/amdgpu: Call doorbell index init on device initialization 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 <[email protected]> Sent: Sunday, November 25, 2018 1:43 PM To: Zeng, Oak <[email protected]> Subject: Fwd: [PATCH 5/7] drm/amdgpu: Call doorbell index init on device initialization ---------- Forwarded message --------- From: Alex Deucher <[email protected]> Date: Wed, Nov 21, 2018 at 11:21 AM Subject: Re: [PATCH 5/7] drm/amdgpu: Call doorbell index init on device initialization To: <[email protected]> Cc: amd-gfx list <[email protected]>, Oak Zeng <[email protected]> On Wed, Nov 21, 2018 at 10:52 AM Oak Zeng <[email protected]> wrote: > > Change-Id: I2f004bbbe2565035460686f4fc16e86b77a2a9b5 > Signed-off-by: Oak Zeng <[email protected]> > Suggested-by: Felix Kuehling <[email protected]> > Suggested-by: Alex Deucher <[email protected]> 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 > [email protected] > https://lists.freedesktop.org/mailman/listinfo/amd-gfx _______________________________________________ amd-gfx mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/amd-gfx
_______________________________________________ amd-gfx mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/amd-gfx
