Commit cb8455cb authored by Dave Airlie's avatar Dave Airlie
Browse files

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



Driver Changes:
- Fix topology query pointer advance (Shuicheng)
- A couple of kerneldoc fixes (Shuicheng)
- Disable D3Cold for BMG only on specific platforms (Karthik)
- Fix CFI violation in debugfs access (Daniele)

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

From: Thomas Hellstrom <thomas.hellstrom@linux.intel.com>
Link: https://patch.msgid.link/aYS2v12R8ELQoTiZ@fedora
parents 4e3b2f0d 4cb1b327
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -1618,7 +1618,7 @@ int xe_guc_start(struct xe_guc *guc)
	return xe_guc_submit_start(guc);
}

void xe_guc_print_info(struct xe_guc *guc, struct drm_printer *p)
int xe_guc_print_info(struct xe_guc *guc, struct drm_printer *p)
{
	struct xe_gt *gt = guc_to_gt(guc);
	unsigned int fw_ref;
@@ -1630,7 +1630,7 @@ void xe_guc_print_info(struct xe_guc *guc, struct drm_printer *p)
	if (!IS_SRIOV_VF(gt_to_xe(gt))) {
		fw_ref = xe_force_wake_get(gt_to_fw(gt), XE_FW_GT);
		if (!fw_ref)
			return;
			return -EIO;

		status = xe_mmio_read32(&gt->mmio, GUC_STATUS);

@@ -1658,6 +1658,8 @@ void xe_guc_print_info(struct xe_guc *guc, struct drm_printer *p)

	drm_puts(p, "\n");
	xe_guc_submit_print(guc, p);

	return 0;
}

/**
+1 −1
Original line number Diff line number Diff line
@@ -45,7 +45,7 @@ int xe_guc_self_cfg32(struct xe_guc *guc, u16 key, u32 val);
int xe_guc_self_cfg64(struct xe_guc *guc, u16 key, u64 val);
void xe_guc_irq_handler(struct xe_guc *guc, const u16 iir);
void xe_guc_sanitize(struct xe_guc *guc);
void xe_guc_print_info(struct xe_guc *guc, struct drm_printer *p);
int xe_guc_print_info(struct xe_guc *guc, struct drm_printer *p);
int xe_guc_reset_prepare(struct xe_guc *guc);
void xe_guc_reset_wait(struct xe_guc *guc);
void xe_guc_stop_prepare(struct xe_guc *guc);
+1 −1
Original line number Diff line number Diff line
@@ -1201,7 +1201,7 @@ int xe_migrate_ccs_rw_copy(struct xe_tile *tile, struct xe_exec_queue *q,
}

/**
 * xe_get_migrate_exec_queue() - Get the execution queue from migrate context.
 * xe_migrate_exec_queue() - Get the execution queue from migrate context.
 * @migrate: Migrate context.
 *
 * Return: Pointer to execution queue on success, error on failure
+10 −3
Original line number Diff line number Diff line
@@ -8,6 +8,7 @@
#include <linux/fault-inject.h>
#include <linux/pm_runtime.h>
#include <linux/suspend.h>
#include <linux/dmi.h>

#include <drm/drm_managed.h>
#include <drm/ttm/ttm_placement.h>
@@ -357,9 +358,15 @@ ALLOW_ERROR_INJECTION(xe_pm_init_early, ERRNO); /* See xe_pci_probe() */

static u32 vram_threshold_value(struct xe_device *xe)
{
	/* FIXME: D3Cold temporarily disabled by default on BMG */
	if (xe->info.platform == XE_BATTLEMAGE)
	if (xe->info.platform == XE_BATTLEMAGE) {
		const char *product_name;

		product_name = dmi_get_system_info(DMI_PRODUCT_NAME);
		if (product_name && strstr(product_name, "NUC13RNG")) {
			drm_warn(&xe->drm, "BMG + D3Cold not supported on this platform\n");
			return 0;
		}
	}

	return DEFAULT_VRAM_THRESHOLD;
}
+1 −1
Original line number Diff line number Diff line
@@ -491,7 +491,7 @@ static int copy_mask(void __user **ptr,

	if (copy_to_user(*ptr, topo, sizeof(*topo)))
		return -EFAULT;
	*ptr += sizeof(topo);
	*ptr += sizeof(*topo);

	if (copy_to_user(*ptr, mask, mask_size))
		return -EFAULT;
Loading