[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