Commit 619a1148 authored by Dave Airlie's avatar Dave Airlie
Browse files

Merge tag 'drm-xe-fixes-2025-02-20' of https://gitlab.freedesktop.org/drm/xe/kernel into drm-fixes



- Fix error handling in xe_irq_install (Lucas)
- Fix devcoredump format (Jose, Lucas)

Signed-off-by: default avatarDave Airlie <airlied@redhat.com>

From: Rodrigo Vivi <rodrigo.vivi@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/Z7dePS3a9POnjrVL@intel.com
parents 395436f3 213e2425
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -1723,9 +1723,11 @@ void xe_guc_ct_snapshot_print(struct xe_guc_ct_snapshot *snapshot,
		drm_printf(p, "\tg2h outstanding: %d\n",
			   snapshot->g2h_outstanding);

		if (snapshot->ctb)
			xe_print_blob_ascii85(p, "CTB data", '\n',
		if (snapshot->ctb) {
			drm_printf(p, "[CTB].length: 0x%zx\n", snapshot->ctb_size);
			xe_print_blob_ascii85(p, "[CTB].data", '\n',
					      snapshot->ctb, 0, snapshot->ctb_size);
		}
	} else {
		drm_puts(p, "CT disabled\n");
	}
+2 −1
Original line number Diff line number Diff line
@@ -208,10 +208,11 @@ void xe_guc_log_snapshot_print(struct xe_guc_log_snapshot *snapshot, struct drm_
	drm_printf(p, "GuC timestamp: 0x%08llX [%llu]\n", snapshot->stamp, snapshot->stamp);
	drm_printf(p, "Log level: %u\n", snapshot->level);

	drm_printf(p, "[LOG].length: 0x%zx\n", snapshot->size);
	remain = snapshot->size;
	for (i = 0; i < snapshot->num_chunks; i++) {
		size_t size = min(GUC_LOG_CHUNK_SIZE, remain);
		const char *prefix = i ? NULL : "Log data";
		const char *prefix = i ? NULL : "[LOG].data";
		char suffix = i == snapshot->num_chunks - 1 ? '\n' : 0;

		xe_print_blob_ascii85(p, prefix, suffix, snapshot->copy[i], 0, size);
+1 −13
Original line number Diff line number Diff line
@@ -757,19 +757,7 @@ int xe_irq_install(struct xe_device *xe)

	xe_irq_postinstall(xe);

	err = devm_add_action_or_reset(xe->drm.dev, irq_uninstall, xe);
	if (err)
		goto free_irq_handler;

	return 0;

free_irq_handler:
	if (xe_device_has_msix(xe))
		xe_irq_msix_free(xe);
	else
		xe_irq_msi_free(xe);

	return err;
	return devm_add_action_or_reset(xe->drm.dev, irq_uninstall, xe);
}

static void xe_irq_msi_synchronize_irq(struct xe_device *xe)