Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 972fcdb5 authored by Oak Zeng's avatar Oak Zeng Committed by Alex Deucher
Browse files

drm/amdkfd: Introduce asic-specific mqd_manager_init function



Global function mqd_manager_init just calls asic-specific functions and it
is not necessary. Delete it and introduce a mqd_manager_init interface in
dqm for asic-specific mqd manager init. Call mqd_manager_init interface
directly to initialize mqd manager

Signed-off-by: default avatarOak Zeng <ozeng@amd.com>
Reviewed-by: default avatarFelix Kuehling <Felix.Kuehling@amd.com>
Signed-off-by: default avatarFelix Kuehling <Felix.Kuehling@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent 1986a3b0
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -583,7 +583,7 @@ static struct mqd_manager *get_mqd_manager(

	mqd_mgr = dqm->mqd_mgrs[type];
	if (!mqd_mgr) {
		mqd_mgr = mqd_manager_init(type, dqm->dev);
		mqd_mgr = dqm->asic_ops.mqd_manager_init(type, dqm->dev);
		if (!mqd_mgr)
			pr_err("mqd manager is NULL");
		dqm->mqd_mgrs[type] = mqd_mgr;
+2 −0
Original line number Diff line number Diff line
@@ -158,6 +158,8 @@ struct device_queue_manager_asic_ops {
	void	(*init_sdma_vm)(struct device_queue_manager *dqm,
				struct queue *q,
				struct qcm_process_device *qpd);
	struct mqd_manager *	(*mqd_manager_init)(enum KFD_MQD_TYPE type,
				 struct kfd_dev *dev);
};

/**
+2 −0
Original line number Diff line number Diff line
@@ -48,6 +48,7 @@ void device_queue_manager_init_cik(
	asic_ops->set_cache_memory_policy = set_cache_memory_policy_cik;
	asic_ops->update_qpd = update_qpd_cik;
	asic_ops->init_sdma_vm = init_sdma_vm;
	asic_ops->mqd_manager_init = mqd_manager_init_cik;
}

void device_queue_manager_init_cik_hawaii(
@@ -56,6 +57,7 @@ void device_queue_manager_init_cik_hawaii(
	asic_ops->set_cache_memory_policy = set_cache_memory_policy_cik;
	asic_ops->update_qpd = update_qpd_cik_hawaii;
	asic_ops->init_sdma_vm = init_sdma_vm_hawaii;
	asic_ops->mqd_manager_init = mqd_manager_init_cik_hawaii;
}

static uint32_t compute_sh_mem_bases_64bit(unsigned int top_address_nybble)
+1 −0
Original line number Diff line number Diff line
@@ -37,6 +37,7 @@ void device_queue_manager_init_v9(
{
	asic_ops->update_qpd = update_qpd_v9;
	asic_ops->init_sdma_vm = init_sdma_vm_v9;
	asic_ops->mqd_manager_init = mqd_manager_init_v9;
}

static uint32_t compute_sh_mem_bases_64bit(struct kfd_process_device *pdd)
+2 −0
Original line number Diff line number Diff line
@@ -54,6 +54,7 @@ void device_queue_manager_init_vi(
	asic_ops->set_cache_memory_policy = set_cache_memory_policy_vi;
	asic_ops->update_qpd = update_qpd_vi;
	asic_ops->init_sdma_vm = init_sdma_vm;
	asic_ops->mqd_manager_init = mqd_manager_init_vi;
}

void device_queue_manager_init_vi_tonga(
@@ -62,6 +63,7 @@ void device_queue_manager_init_vi_tonga(
	asic_ops->set_cache_memory_policy = set_cache_memory_policy_vi_tonga;
	asic_ops->update_qpd = update_qpd_vi_tonga;
	asic_ops->init_sdma_vm = init_sdma_vm_tonga;
	asic_ops->mqd_manager_init = mqd_manager_init_vi_tonga;
}

static uint32_t compute_sh_mem_bases_64bit(unsigned int top_address_nybble)
Loading