Commit 3aca6f83 authored by Lang Yu's avatar Lang Yu Committed by Alex Deucher
Browse files

drm/amdkfd: Adjust parameter of allocate_mqd



Make allocate_mqd consistent with other callbacks.
Prepare for next patch to use mqd_manager->mqd_size.

Signed-off-by: default avatarLang Yu <lang.yu@amd.com>
Reviewed-by: default avatarDavid Belanger <david.belanger@amd.com>
Reviewed-by: default avatarHawking Zhang <Hawking.Zhang@amd.com>
Reviewed-by: default avatarMukul Joshi <mukul.joshi@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent a6a4dd51
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -676,7 +676,7 @@ static int create_queue_nocpsch(struct device_queue_manager *dqm,

	/* Temporarily release dqm lock to avoid a circular lock dependency */
	dqm_unlock(dqm);
	q->mqd_mem_obj = mqd_mgr->allocate_mqd(mqd_mgr->dev, &q->properties);
	q->mqd_mem_obj = mqd_mgr->allocate_mqd(mqd_mgr, &q->properties);
	dqm_lock(dqm);

	if (!q->mqd_mem_obj) {
@@ -2002,7 +2002,7 @@ static int create_queue_cpsch(struct device_queue_manager *dqm, struct queue *q,
		dqm->asic_ops.init_sdma_vm(dqm, q, qpd);
	q->properties.tba_addr = qpd->tba_addr;
	q->properties.tma_addr = qpd->tma_addr;
	q->mqd_mem_obj = mqd_mgr->allocate_mqd(mqd_mgr->dev, &q->properties);
	q->mqd_mem_obj = mqd_mgr->allocate_mqd(mqd_mgr, &q->properties);
	if (!q->mqd_mem_obj) {
		retval = -ENOMEM;
		goto out_deallocate_doorbell;
+1 −1
Original line number Diff line number Diff line
@@ -130,7 +130,7 @@ static bool kq_initialize(struct kernel_queue *kq, struct kfd_node *dev,

	kq->queue->device = dev;

	kq->queue->mqd_mem_obj = kq->mqd_mgr->allocate_mqd(kq->mqd_mgr->dev,
	kq->queue->mqd_mem_obj = kq->mqd_mgr->allocate_mqd(kq->mqd_mgr,
					&kq->queue->properties);
	if (!kq->queue->mqd_mem_obj)
		goto err_allocate_mqd;
+4 −2
Original line number Diff line number Diff line
@@ -46,9 +46,10 @@ int pipe_priority_map[] = {
	KFD_PIPE_PRIORITY_CS_HIGH
};

struct kfd_mem_obj *allocate_hiq_mqd(struct kfd_node *dev, struct queue_properties *q)
struct kfd_mem_obj *allocate_hiq_mqd(struct mqd_manager *mm, struct queue_properties *q)
{
	struct kfd_mem_obj *mqd_mem_obj;
	struct kfd_node *dev = mm->dev;

	mqd_mem_obj = kzalloc(sizeof(struct kfd_mem_obj), GFP_KERNEL);
	if (!mqd_mem_obj)
@@ -61,10 +62,11 @@ struct kfd_mem_obj *allocate_hiq_mqd(struct kfd_node *dev, struct queue_properti
	return mqd_mem_obj;
}

struct kfd_mem_obj *allocate_sdma_mqd(struct kfd_node *dev,
struct kfd_mem_obj *allocate_sdma_mqd(struct mqd_manager *mm,
					struct queue_properties *q)
{
	struct kfd_mem_obj *mqd_mem_obj;
	struct kfd_node *dev = mm->dev;
	uint64_t offset;

	mqd_mem_obj = kzalloc(sizeof(struct kfd_mem_obj), GFP_KERNEL);
+3 −3
Original line number Diff line number Diff line
@@ -68,7 +68,7 @@
 */
extern int pipe_priority_map[];
struct mqd_manager {
	struct kfd_mem_obj*	(*allocate_mqd)(struct kfd_node *kfd,
	struct kfd_mem_obj*	(*allocate_mqd)(struct mqd_manager *mm,
		struct queue_properties *q);

	void	(*init_mqd)(struct mqd_manager *mm, void **mqd,
@@ -153,10 +153,10 @@ struct mqd_user_context_save_area_header {
	uint32_t wave_state_size;
};

struct kfd_mem_obj *allocate_hiq_mqd(struct kfd_node *dev,
struct kfd_mem_obj *allocate_hiq_mqd(struct mqd_manager *mm,
				struct queue_properties *q);

struct kfd_mem_obj *allocate_sdma_mqd(struct kfd_node *dev,
struct kfd_mem_obj *allocate_sdma_mqd(struct mqd_manager *mm,
					struct queue_properties *q);
void free_mqd_hiq_sdma(struct mqd_manager *mm, void *mqd,
				struct kfd_mem_obj *mqd_mem_obj);
+2 −1
Original line number Diff line number Diff line
@@ -73,9 +73,10 @@ static void set_priority(struct cik_mqd *m, struct queue_properties *q)
	m->cp_hqd_queue_priority = q->priority;
}

static struct kfd_mem_obj *allocate_mqd(struct kfd_node *kfd,
static struct kfd_mem_obj *allocate_mqd(struct mqd_manager *mm,
					struct queue_properties *q)
{
	struct kfd_node *kfd = mm->dev;
	struct kfd_mem_obj *mqd_mem_obj;

	if (kfd_gtt_sa_allocate(kfd, sizeof(struct cik_mqd),
Loading