[AMD Official Use Only - General] > -----Original Message----- > From: Yadav, Arvind <Arvind.Yadav@xxxxxxx> > Sent: Thursday, September 28, 2023 5:54 AM > To: Koenig, Christian <Christian.Koenig@xxxxxxx>; Deucher, Alexander > <Alexander.Deucher@xxxxxxx>; Sharma, Shashank > <Shashank.Sharma@xxxxxxx>; Kuehling, Felix <Felix.Kuehling@xxxxxxx>; > Joshi, Mukul <Mukul.Joshi@xxxxxxx>; Pan, Xinhui <Xinhui.Pan@xxxxxxx>; > airlied@xxxxxxxxx; daniel@xxxxxxxx > Cc: amd-gfx@xxxxxxxxxxxxxxxxxxxxx; dri-devel@xxxxxxxxxxxxxxxxxxxxx; linux- > kernel@xxxxxxxxxxxxxxx; Yadav, Arvind <Arvind.Yadav@xxxxxxx>; Koenig, > Christian <Christian.Koenig@xxxxxxx> > Subject: [PATCH v2 1/1] drm/amdkfd: Fix unaligned doorbell absolute offset > for gfx8 > > This patch is to adjust the absolute doorbell offset against the doorbell id > considering the doorbell size of 32/64 bit. > > v2: > - Addressed the review comment from Felix. > > Cc: Christian Koenig <christian.koenig@xxxxxxx> > Cc: Alex Deucher <alexander.deucher@xxxxxxx> > Signed-off-by: Shashank Sharma <shashank.sharma@xxxxxxx> > Signed-off-by: Arvind Yadav <Arvind.Yadav@xxxxxxx> > --- > drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c | 9 ++++++++- > 1 file changed, 8 insertions(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c > b/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c > index 0d3d538b64eb..c54c4392d26e 100644 > --- a/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c > +++ b/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c > @@ -407,7 +407,14 @@ static int allocate_doorbell(struct > qcm_process_device *qpd, > > q->properties.doorbell_off = amdgpu_doorbell_index_on_bar(dev- > >adev, > qpd- > >proc_doorbells, > - q- > >doorbell_id); > + 0); > + It looks like amdgpu_doorbell_index_on_bar() works only for 64-bit doorbells. Shouldn't it work for both 32-bit and 64-bit doorbells considering this is common doorbell manager code? Thanks, Mukul > + /* Adjust the absolute doorbell offset against the doorbell id > considering > + * the doorbell size of 32/64 bit. > + */ > + q->properties.doorbell_off += q->doorbell_id * > + dev->kfd->device_info.doorbell_size / 4; > + > return 0; > } > > -- > 2.34.1