[PATCH] drm/amdgpu: correct the cu and rb info for sienna cichlid

Alex Deucher alexdeucher at gmail.com
Wed Oct 21 18:07:28 UTC 2020


On Wed, Oct 21, 2020 at 12:55 PM Likun Gao <likun.gao at amd.com> wrote:
>
> From: Likun Gao <Likun.Gao at amd.com>
>
> Skip disabled sa to correct the cu_info and active_rbs for sienna cichlid.
>
> Signed-off-by: Likun Gao <Likun.Gao at amd.com>
> Change-Id: I271682e11f3472cb5ba882e04329976059e06a13
> ---
>  drivers/gpu/drm/amd/amdgpu/gfx_v10_0.c | 9 +++++++++
>  1 file changed, 9 insertions(+)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v10_0.c b/drivers/gpu/drm/amd/amdgpu/gfx_v10_0.c
> index 402fe623c5d8..49ce4aaa2bac 100644
> --- a/drivers/gpu/drm/amd/amdgpu/gfx_v10_0.c
> +++ b/drivers/gpu/drm/amd/amdgpu/gfx_v10_0.c
> @@ -4579,12 +4579,17 @@ static void gfx_v10_0_setup_rb(struct amdgpu_device *adev)
>         int i, j;
>         u32 data;
>         u32 active_rbs = 0;
> +       u32 bitmap;
>         u32 rb_bitmap_width_per_sh = adev->gfx.config.max_backends_per_se /
>                                         adev->gfx.config.max_sh_per_se;
>
>         mutex_lock(&adev->grbm_idx_mutex);
>         for (i = 0; i < adev->gfx.config.max_shader_engines; i++) {
>                 for (j = 0; j < adev->gfx.config.max_sh_per_se; j++) {
> +                       bitmap = i * adev->gfx.config.max_sh_per_se + j;
> +                       if ((adev->asic_type == CHIP_SIENNA_CICHLID) &&

I think this should be >= CHIP_SIENNA_CICHLID?

> +                           ((gfx_v10_3_get_disabled_sa(adev) >> bitmap) & 1))
> +                               continue;
>                         gfx_v10_0_select_se_sh(adev, i, j, 0xffffffff);
>                         data = gfx_v10_0_get_rb_active_bitmap(adev);
>                         active_rbs |= data << ((i * adev->gfx.config.max_sh_per_se + j) *
> @@ -8829,6 +8834,10 @@ static int gfx_v10_0_get_cu_info(struct amdgpu_device *adev,
>         mutex_lock(&adev->grbm_idx_mutex);
>         for (i = 0; i < adev->gfx.config.max_shader_engines; i++) {
>                 for (j = 0; j < adev->gfx.config.max_sh_per_se; j++) {
> +                       bitmap = i * adev->gfx.config.max_sh_per_se + j;
> +                       if ((adev->asic_type == CHIP_SIENNA_CICHLID) &&

Same here?

Alex

> +                           ((gfx_v10_3_get_disabled_sa(adev) >> bitmap) & 1))
> +                               continue;
>                         mask = 1;
>                         ao_bitmap = 0;
>                         counter = 0;
> --
> 2.25.1
>
> _______________________________________________
> amd-gfx mailing list
> amd-gfx at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/amd-gfx


More information about the amd-gfx mailing list