[PATCH 4/8] drm/amdgpu: Doorbell index initialization for ASICs before vega10

Alex Deucher alexdeucher at gmail.com
Wed Nov 28 01:09:32 UTC 2018


On Mon, Nov 26, 2018 at 12:29 PM Oak Zeng <ozeng at amd.com> wrote:
>
> v2: Use enum definition instead of hardcoded number
>
> Change-Id: Id64eb98f5b1c24b51eb2fd5a083086fc3515813d
> Signed-off-by: Oak Zeng <ozeng at amd.com>
> Suggested-by: Felix Kuehling <Felix.Kuehling at amd.com>
> Suggested-by: Alex Deucher <alexander.deucher at amd.com>

With a patch description added:
Reviewed-by: Alex Deucher <alexander.deucher at amd.com>

> ---
>  drivers/gpu/drm/amd/amdgpu/cik.c |  1 +
>  drivers/gpu/drm/amd/amdgpu/cik.h |  1 +
>  drivers/gpu/drm/amd/amdgpu/vi.c  | 19 +++++++++++++++++++
>  drivers/gpu/drm/amd/amdgpu/vi.h  |  1 +
>  4 files changed, 22 insertions(+)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/cik.c b/drivers/gpu/drm/amd/amdgpu/cik.c
> index f41f5f5..71c50d8 100644
> --- a/drivers/gpu/drm/amd/amdgpu/cik.c
> +++ b/drivers/gpu/drm/amd/amdgpu/cik.c
> @@ -1755,6 +1755,7 @@ static const struct amdgpu_asic_funcs cik_asic_funcs =
>         .flush_hdp = &cik_flush_hdp,
>         .invalidate_hdp = &cik_invalidate_hdp,
>         .need_full_reset = &cik_need_full_reset,
> +       .init_doorbell_index = &legacy_doorbell_index_init,
>  };
>
>  static int cik_common_early_init(void *handle)
> diff --git a/drivers/gpu/drm/amd/amdgpu/cik.h b/drivers/gpu/drm/amd/amdgpu/cik.h
> index e49c6f1..54c625a 100644
> --- a/drivers/gpu/drm/amd/amdgpu/cik.h
> +++ b/drivers/gpu/drm/amd/amdgpu/cik.h
> @@ -30,4 +30,5 @@ void cik_srbm_select(struct amdgpu_device *adev,
>                      u32 me, u32 pipe, u32 queue, u32 vmid);
>  int cik_set_ip_blocks(struct amdgpu_device *adev);
>
> +void legacy_doorbell_index_init(struct amdgpu_device *adev);
>  #endif
> diff --git a/drivers/gpu/drm/amd/amdgpu/vi.c b/drivers/gpu/drm/amd/amdgpu/vi.c
> index 07880d3..ff2906c 100644
> --- a/drivers/gpu/drm/amd/amdgpu/vi.c
> +++ b/drivers/gpu/drm/amd/amdgpu/vi.c
> @@ -955,6 +955,7 @@ static const struct amdgpu_asic_funcs vi_asic_funcs =
>         .flush_hdp = &vi_flush_hdp,
>         .invalidate_hdp = &vi_invalidate_hdp,
>         .need_full_reset = &vi_need_full_reset,
> +       .init_doorbell_index = &legacy_doorbell_index_init,
>  };
>
>  #define CZ_REV_BRISTOL(rev)     \
> @@ -1712,3 +1713,21 @@ int vi_set_ip_blocks(struct amdgpu_device *adev)
>
>         return 0;
>  }
> +
> +void legacy_doorbell_index_init(struct amdgpu_device *adev)
> +{
> +       adev->doorbell_index.kiq = AMDGPU_DOORBELL_KIQ;
> +       adev->doorbell_index.mec_ring0 = AMDGPU_DOORBELL_MEC_RING0;
> +       adev->doorbell_index.mec_ring1 = AMDGPU_DOORBELL_MEC_RING1;
> +       adev->doorbell_index.mec_ring2 = AMDGPU_DOORBELL_MEC_RING2;
> +       adev->doorbell_index.mec_ring3 = AMDGPU_DOORBELL_MEC_RING3;
> +       adev->doorbell_index.mec_ring4 = AMDGPU_DOORBELL_MEC_RING4;
> +       adev->doorbell_index.mec_ring5 = AMDGPU_DOORBELL_MEC_RING5;
> +       adev->doorbell_index.mec_ring6 = AMDGPU_DOORBELL_MEC_RING6;
> +       adev->doorbell_index.mec_ring7 = AMDGPU_DOORBELL_MEC_RING7;
> +       adev->doorbell_index.gfx_ring0 = AMDGPU_DOORBELL_GFX_RING0;
> +       adev->doorbell_index.sdma_engine0 = AMDGPU_DOORBELL_sDMA_ENGINE0;
> +       adev->doorbell_index.sdma_engine1 = AMDGPU_DOORBELL_sDMA_ENGINE1;
> +       adev->doorbell_index.ih = AMDGPU_DOORBELL_IH;
> +       adev->doorbell_index.max_assignment = AMDGPU_DOORBELL_MAX_ASSIGNMENT;
> +}
> diff --git a/drivers/gpu/drm/amd/amdgpu/vi.h b/drivers/gpu/drm/amd/amdgpu/vi.h
> index 0429fe3..8de0772 100644
> --- a/drivers/gpu/drm/amd/amdgpu/vi.h
> +++ b/drivers/gpu/drm/amd/amdgpu/vi.h
> @@ -30,4 +30,5 @@ void vi_srbm_select(struct amdgpu_device *adev,
>                     u32 me, u32 pipe, u32 queue, u32 vmid);
>  int vi_set_ip_blocks(struct amdgpu_device *adev);
>
> +void legacy_doorbell_index_init(struct amdgpu_device *adev);
>  #endif
> --
> 2.7.4
>
> _______________________________________________
> 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