[PATCH v2 7/9] drm/amdgpu/gfx: Clean up gfx_v7_0_get_csb_buffer
Rodrigo Siqueira
siqueira at igalia.com
Mon Apr 14 19:38:22 UTC 2025
On 04/13, Alex Deucher wrote:
> On Sat, Apr 12, 2025 at 4:22 PM Rodrigo Siqueira <siqueira at igalia.com> wrote:
> >
> > CHIP_KAVERI, CHIP_KABINI, and CHIP_MULLINS have the same buffer
> > manipulation as the default option in the switch case. Remove those
> > specific manipulations and rely on the default behavior for them.
> >
> > Signed-off-by: Rodrigo Siqueira <siqueira at igalia.com>
> > ---
> > drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c | 9 ---------
> > 1 file changed, 9 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c b/drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c
> > index 16b94ff5a959..4d8d68b737d1 100644
> > --- a/drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c
> > +++ b/drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c
> > @@ -3902,15 +3902,6 @@ static void gfx_v7_0_get_csb_buffer(struct amdgpu_device *adev,
> > buffer[count++] = cpu_to_le32(0x16000012);
> > buffer[count++] = cpu_to_le32(0x00000000);
> > break;
> > - case CHIP_KAVERI:
> > - buffer[count++] = cpu_to_le32(0x00000000); /* XXX */
> > - buffer[count++] = cpu_to_le32(0x00000000);
> > - break;
> > - case CHIP_KABINI:
> > - case CHIP_MULLINS:
> > - buffer[count++] = cpu_to_le32(0x00000000); /* XXX */
> > - buffer[count++] = cpu_to_le32(0x00000000);
> > - break;
>
> These should be fixed rather than removed. Actually, all of these
> should be fixed up for all chips. We should use the values calculated
> by the driver similar to what we do in gfx_v8. E.g.,
> buffer[count++] =
> cpu_to_le32(adev->gfx.config.rb_config[0][0].raster_config);
> buffer[count++] =
> cpu_to_le32(adev->gfx.config.rb_config[0][0].raster_config_1);
>
ok, I checked the code sequence, and fwiu gfx_v7_0_setup_rb() ->
gfx_v7_0_raster_config() is called before gfx_v7_0_get_csb_buffer().
gfx_v7_0_raster_config() has the setup for all of the ASICs in this
part. I also have a HAWAII and confirmed that using raster_config
directly had the same value as the one hardcoded in this part. Anyway,
I'll send a v3 with this fix.
When I was looking into the code, it was not clear to me these things:
1. What is this config RB? Why is there a field for User RB? Also, what
RB stands for?
2. Why there is raster_config and raster_config_1? Is raster_config_1
some sort of fallback?
Thanks
> Alex
>
> > case CHIP_HAWAII:
> > buffer[count++] = cpu_to_le32(0x3a00161a);
> > buffer[count++] = cpu_to_le32(0x0000002e);
> > --
> > 2.49.0
> >
--
Rodrigo Siqueira
More information about the amd-gfx
mailing list