[PATCH 1/2] drm/amdkfd: Contain MMHUB number in the implementation
Christian König
ckoenig.leichtzumerken at gmail.com
Tue Dec 3 12:11:38 UTC 2019
Am 03.12.19 um 05:42 schrieb Yong Zhao:
> Adjust the exposed function prototype so that the caller does not need
> to know the MMHUB number.
>
> Change-Id: I4420d1715984f703954f074682b075fc59e2a330
> Signed-off-by: Yong Zhao <Yong.Zhao at amd.com>
> ---
> drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v9.c | 6 ++----
> drivers/gpu/drm/amd/amdgpu/gmc_v9_0.h | 8 --------
> drivers/gpu/drm/amd/amdgpu/mmhub_v9_4.c | 13 +++++++++++--
> drivers/gpu/drm/amd/amdgpu/mmhub_v9_4.h | 2 ++
> 4 files changed, 15 insertions(+), 14 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v9.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v9.c
> index 47c853ef1051..6f1a4676ddde 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v9.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v9.c
> @@ -40,7 +40,7 @@
> #include "soc15d.h"
> #include "mmhub_v1_0.h"
> #include "gfxhub_v1_0.h"
> -#include "gmc_v9_0.h"
> +#include "mmhub_v9_4.h"
>
>
> enum hqd_dequeue_request_type {
> @@ -774,9 +774,7 @@ void kgd_gfx_v9_set_vm_context_page_table_base(struct kgd_dev *kgd, uint32_t vmi
> * on GFX8 and older.
> */
> if (adev->asic_type == CHIP_ARCTURUS) {
> - /* Two MMHUBs */
> - mmhub_v9_4_setup_vm_pt_regs(adev, 0, vmid, page_table_base);
> - mmhub_v9_4_setup_vm_pt_regs(adev, 1, vmid, page_table_base);
> + mmhub_v9_4_setup_vm_pt_regs(adev, vmid, page_table_base);
> } else
> mmhub_v1_0_setup_vm_pt_regs(adev, vmid, page_table_base);
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/gmc_v9_0.h b/drivers/gpu/drm/amd/amdgpu/gmc_v9_0.h
> index 971c0840358f..49e8be761214 100644
> --- a/drivers/gpu/drm/amd/amdgpu/gmc_v9_0.h
> +++ b/drivers/gpu/drm/amd/amdgpu/gmc_v9_0.h
> @@ -36,12 +36,4 @@
>
> extern const struct amd_ip_funcs gmc_v9_0_ip_funcs;
> extern const struct amdgpu_ip_block_version gmc_v9_0_ip_block;
> -
> -/* amdgpu_amdkfd*.c */
> -void gfxhub_v1_0_setup_vm_pt_regs(struct amdgpu_device *adev, uint32_t vmid,
> - uint64_t value);
> -void mmhub_v1_0_setup_vm_pt_regs(struct amdgpu_device *adev, uint32_t vmid,
> - uint64_t value);
> -void mmhub_v9_4_setup_vm_pt_regs(struct amdgpu_device *adev, int hubid,
> - uint32_t vmid, uint64_t value);
> #endif
> diff --git a/drivers/gpu/drm/amd/amdgpu/mmhub_v9_4.c b/drivers/gpu/drm/amd/amdgpu/mmhub_v9_4.c
> index 8599bfdb9a9e..0b621bf8bbd0 100644
> --- a/drivers/gpu/drm/amd/amdgpu/mmhub_v9_4.c
> +++ b/drivers/gpu/drm/amd/amdgpu/mmhub_v9_4.c
> @@ -54,7 +54,7 @@ u64 mmhub_v9_4_get_fb_location(struct amdgpu_device *adev)
> return base;
> }
>
> -void mmhub_v9_4_setup_vm_pt_regs(struct amdgpu_device *adev, int hubid,
> +static void mmhub_v9_4_setup_hubid_vm_pt_regs(struct amdgpu_device *adev, int hubid,
> uint32_t vmid, uint64_t value)
> {
> /* two registers distance between mmVML2VC0_VM_CONTEXT0_* to
> @@ -80,7 +80,7 @@ static void mmhub_v9_4_init_gart_aperture_regs(struct amdgpu_device *adev,
> {
> uint64_t pt_base = amdgpu_gmc_pd_addr(adev->gart.bo);
>
> - mmhub_v9_4_setup_vm_pt_regs(adev, hubid, 0, pt_base);
> + mmhub_v9_4_setup_hubid_vm_pt_regs(adev, hubid, 0, pt_base);
>
> WREG32_SOC15_OFFSET(MMHUB, 0,
> mmVML2VC0_VM_CONTEXT0_PAGE_TABLE_START_ADDR_LO32,
> @@ -101,6 +101,15 @@ static void mmhub_v9_4_init_gart_aperture_regs(struct amdgpu_device *adev,
> (u32)(adev->gmc.gart_end >> 44));
> }
>
> +void mmhub_v9_4_setup_vm_pt_regs(struct amdgpu_device *adev, uint32_t vmid,
> + uint64_t page_table_base)
> +{
> + int i;
You should add an empty line between declaration and code.
> + for (i = 0; i < MMHUB_NUM_INSTANCES; i++) {
> + mmhub_v9_4_setup_hubid_vm_pt_regs(adev, i, vmid, page_table_base);
> + }
Please don't add {} for single line statements.
Regards,
Christian.
> +}
> +
> static void mmhub_v9_4_init_system_aperture_regs(struct amdgpu_device *adev,
> int hubid)
> {
> diff --git a/drivers/gpu/drm/amd/amdgpu/mmhub_v9_4.h b/drivers/gpu/drm/amd/amdgpu/mmhub_v9_4.h
> index 354a4b7e875b..1b979773776c 100644
> --- a/drivers/gpu/drm/amd/amdgpu/mmhub_v9_4.h
> +++ b/drivers/gpu/drm/amd/amdgpu/mmhub_v9_4.h
> @@ -34,5 +34,7 @@ void mmhub_v9_4_init(struct amdgpu_device *adev);
> int mmhub_v9_4_set_clockgating(struct amdgpu_device *adev,
> enum amd_clockgating_state state);
> void mmhub_v9_4_get_clockgating(struct amdgpu_device *adev, u32 *flags);
> +void mmhub_v9_4_setup_vm_pt_regs(struct amdgpu_device *adev, uint32_t vmid,
> + uint64_t page_table_base);
>
> #endif
More information about the amd-gfx
mailing list