Commit b695c97b authored by Lijo Lazar's avatar Lijo Lazar Committed by Alex Deucher
Browse files

drm/amdkfd: Fix MEC pipe interrupt enablement



for_each_inst modifies xcc_mask and therefore the loop doesn't
initialize properly interrupts on all pipes. Keep looping through xcc as
the outer loop to fix this issue.

Fixes: c4050ff1 ("drm/amdkfd: Use xcc mask for identifying xcc")
Signed-off-by: default avatarLijo Lazar <lijo.lazar@amd.com>
Reviewed-by: default avatarHawking Zhang <Hawking.Zhang@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent 07a14752
Loading
Loading
Loading
Loading
+4 −3
Original line number Diff line number Diff line
@@ -1274,14 +1274,15 @@ static void init_interrupts(struct device_queue_manager *dqm)
	uint32_t xcc_mask = dqm->dev->xcc_mask;
	unsigned int i, xcc_id;

	for_each_inst(xcc_id, xcc_mask) {
		for (i = 0 ; i < get_pipes_per_mec(dqm) ; i++) {
			if (is_pipe_enabled(dqm, 0, i)) {
			for_each_inst(xcc_id, xcc_mask)
				dqm->dev->kfd2kgd->init_interrupts(
					dqm->dev->adev, i, xcc_id);
			}
		}
	}
}

static int initialize_nocpsch(struct device_queue_manager *dqm)
{