summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDave Airlie <airlied@redhat.com>2026-02-06 13:02:38 +1000
committerDave Airlie <airlied@redhat.com>2026-02-06 13:02:44 +1000
commit2f5db9b4002470ea19380326c5a390647c56e780 (patch)
tree26215721327dcc791afe70dd212b93a9d137fd05
parent3c5ab2407aaa116d5c3c7b0fa8dab395ecf24aec (diff)
parent666c654a5ae4090a3402ac14f399283934ea8104 (diff)
downloadlinux-next-2f5db9b4002470ea19380326c5a390647c56e780.tar.gz
linux-next-2f5db9b4002470ea19380326c5a390647c56e780.zip
Merge tag 'drm-xe-next-fixes-2026-02-05' of https://gitlab.freedesktop.org/drm/xe/kernel into drm-next
- Fix CFI violation in debugfs access (Daniele) - Kernel-doc fixes (Chaitanya, Shuicheng) - Disable D3Cold for BMG only on specific platforms (Karthik) Signed-off-by: Dave Airlie <airlied@redhat.com> From: Rodrigo Vivi <rodrigo.vivi@intel.com> Link: https://patch.msgid.link/aYStaLZVJWwKCDZt@intel.com
-rw-r--r--drivers/gpu/drm/xe/abi/guc_scheduler_abi.h2
-rw-r--r--drivers/gpu/drm/xe/xe_guc.c6
-rw-r--r--drivers/gpu/drm/xe/xe_guc.h2
-rw-r--r--drivers/gpu/drm/xe/xe_migrate.c2
-rw-r--r--drivers/gpu/drm/xe/xe_pm.c13
-rw-r--r--drivers/gpu/drm/xe/xe_query.c2
-rw-r--r--drivers/gpu/drm/xe/xe_tlb_inval.c2
-rw-r--r--drivers/gpu/drm/xe/xe_tlb_inval_job.c2
8 files changed, 20 insertions, 11 deletions
diff --git a/drivers/gpu/drm/xe/abi/guc_scheduler_abi.h b/drivers/gpu/drm/xe/abi/guc_scheduler_abi.h
index 513b22a87428..19ec89bf39c5 100644
--- a/drivers/gpu/drm/xe/abi/guc_scheduler_abi.h
+++ b/drivers/gpu/drm/xe/abi/guc_scheduler_abi.h
@@ -8,7 +8,7 @@
#include <linux/types.h>
-/**
+/*
* Generic defines required for registration with and submissions to the GuC
* scheduler. Includes engine class/instance defines and context attributes
* (id, priority, etc)
diff --git a/drivers/gpu/drm/xe/xe_guc.c b/drivers/gpu/drm/xe/xe_guc.c
index 44360437beeb..6df7c3f260e5 100644
--- a/drivers/gpu/drm/xe/xe_guc.c
+++ b/drivers/gpu/drm/xe/xe_guc.c
@@ -1661,7 +1661,7 @@ void xe_guc_runtime_resume(struct xe_guc *guc)
xe_guc_submit_unpause(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);
u32 status;
@@ -1672,7 +1672,7 @@ void xe_guc_print_info(struct xe_guc *guc, struct drm_printer *p)
if (!IS_SRIOV_VF(gt_to_xe(gt))) {
CLASS(xe_force_wake, fw_ref)(gt_to_fw(gt), XE_FW_GT);
if (!fw_ref.domains)
- return;
+ return -EIO;
status = xe_mmio_read32(&gt->mmio, GUC_STATUS);
@@ -1698,6 +1698,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;
}
/**
diff --git a/drivers/gpu/drm/xe/xe_guc.h b/drivers/gpu/drm/xe/xe_guc.h
index a169f231cbd8..66e7edc70ed9 100644
--- a/drivers/gpu/drm/xe/xe_guc.h
+++ b/drivers/gpu/drm/xe/xe_guc.h
@@ -53,7 +53,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);
diff --git a/drivers/gpu/drm/xe/xe_migrate.c b/drivers/gpu/drm/xe/xe_migrate.c
index 6e202428aac2..078a9bc2821d 100644
--- a/drivers/gpu/drm/xe/xe_migrate.c
+++ b/drivers/gpu/drm/xe/xe_migrate.c
@@ -1254,7 +1254,7 @@ void xe_migrate_ccs_rw_copy_clear(struct xe_bo *src_bo,
}
/**
- * 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
diff --git a/drivers/gpu/drm/xe/xe_pm.c b/drivers/gpu/drm/xe/xe_pm.c
index 559cf5490ac0..01185f10a883 100644
--- a/drivers/gpu/drm/xe/xe_pm.c
+++ b/drivers/gpu/drm/xe/xe_pm.c
@@ -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>
@@ -366,9 +367,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)
- return 0;
+ 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;
}
diff --git a/drivers/gpu/drm/xe/xe_query.c b/drivers/gpu/drm/xe/xe_query.c
index 75490683bad2..f96f2844c5ba 100644
--- a/drivers/gpu/drm/xe/xe_query.c
+++ b/drivers/gpu/drm/xe/xe_query.c
@@ -490,7 +490,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;
diff --git a/drivers/gpu/drm/xe/xe_tlb_inval.c b/drivers/gpu/drm/xe/xe_tlb_inval.c
index e837888367c4..f6d522dbdf86 100644
--- a/drivers/gpu/drm/xe/xe_tlb_inval.c
+++ b/drivers/gpu/drm/xe/xe_tlb_inval.c
@@ -112,7 +112,7 @@ static void tlb_inval_fini(struct drm_device *drm, void *arg)
}
/**
- * xe_gt_tlb_inval_init - Initialize TLB invalidation state
+ * xe_gt_tlb_inval_init_early() - Initialize TLB invalidation state
* @gt: GT structure
*
* Initialize TLB invalidation state, purely software initialization, should
diff --git a/drivers/gpu/drm/xe/xe_tlb_inval_job.c b/drivers/gpu/drm/xe/xe_tlb_inval_job.c
index 6a7bd6315797..01c413a2537e 100644
--- a/drivers/gpu/drm/xe/xe_tlb_inval_job.c
+++ b/drivers/gpu/drm/xe/xe_tlb_inval_job.c
@@ -198,7 +198,7 @@ static void xe_tlb_inval_job_destroy(struct kref *ref)
}
/**
- * xe_tlb_inval_alloc_dep() - TLB invalidation job alloc dependency
+ * xe_tlb_inval_job_alloc_dep() - TLB invalidation job alloc dependency
* @job: TLB invalidation job to alloc dependency for
*
* Allocate storage for a dependency in the TLB invalidation fence. This