Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

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: Dave Airlie <airlied@redhat.com>

From: Thomas Hellstrom <thomas.hellstrom@linux.intel.com>
Link: https://patch.msgid.link/aYS2v12R8ELQoTiZ@fedora

+19 -10
+4 -2
drivers/gpu/drm/xe/xe_guc.c
··· 1618 1618 return xe_guc_submit_start(guc); 1619 1619 } 1620 1620 1621 - void xe_guc_print_info(struct xe_guc *guc, struct drm_printer *p) 1621 + int xe_guc_print_info(struct xe_guc *guc, struct drm_printer *p) 1622 1622 { 1623 1623 struct xe_gt *gt = guc_to_gt(guc); 1624 1624 unsigned int fw_ref; ··· 1630 1630 if (!IS_SRIOV_VF(gt_to_xe(gt))) { 1631 1631 fw_ref = xe_force_wake_get(gt_to_fw(gt), XE_FW_GT); 1632 1632 if (!fw_ref) 1633 - return; 1633 + return -EIO; 1634 1634 1635 1635 status = xe_mmio_read32(&gt->mmio, GUC_STATUS); 1636 1636 ··· 1658 1658 1659 1659 drm_puts(p, "\n"); 1660 1660 xe_guc_submit_print(guc, p); 1661 + 1662 + return 0; 1661 1663 } 1662 1664 1663 1665 /**
+1 -1
drivers/gpu/drm/xe/xe_guc.h
··· 45 45 int xe_guc_self_cfg64(struct xe_guc *guc, u16 key, u64 val); 46 46 void xe_guc_irq_handler(struct xe_guc *guc, const u16 iir); 47 47 void xe_guc_sanitize(struct xe_guc *guc); 48 - void xe_guc_print_info(struct xe_guc *guc, struct drm_printer *p); 48 + int xe_guc_print_info(struct xe_guc *guc, struct drm_printer *p); 49 49 int xe_guc_reset_prepare(struct xe_guc *guc); 50 50 void xe_guc_reset_wait(struct xe_guc *guc); 51 51 void xe_guc_stop_prepare(struct xe_guc *guc);
+1 -1
drivers/gpu/drm/xe/xe_migrate.c
··· 1201 1201 } 1202 1202 1203 1203 /** 1204 - * xe_get_migrate_exec_queue() - Get the execution queue from migrate context. 1204 + * xe_migrate_exec_queue() - Get the execution queue from migrate context. 1205 1205 * @migrate: Migrate context. 1206 1206 * 1207 1207 * Return: Pointer to execution queue on success, error on failure
+10 -3
drivers/gpu/drm/xe/xe_pm.c
··· 8 8 #include <linux/fault-inject.h> 9 9 #include <linux/pm_runtime.h> 10 10 #include <linux/suspend.h> 11 + #include <linux/dmi.h> 11 12 12 13 #include <drm/drm_managed.h> 13 14 #include <drm/ttm/ttm_placement.h> ··· 358 357 359 358 static u32 vram_threshold_value(struct xe_device *xe) 360 359 { 361 - /* FIXME: D3Cold temporarily disabled by default on BMG */ 362 - if (xe->info.platform == XE_BATTLEMAGE) 363 - return 0; 360 + if (xe->info.platform == XE_BATTLEMAGE) { 361 + const char *product_name; 362 + 363 + product_name = dmi_get_system_info(DMI_PRODUCT_NAME); 364 + if (product_name && strstr(product_name, "NUC13RNG")) { 365 + drm_warn(&xe->drm, "BMG + D3Cold not supported on this platform\n"); 366 + return 0; 367 + } 368 + } 364 369 365 370 return DEFAULT_VRAM_THRESHOLD; 366 371 }
+1 -1
drivers/gpu/drm/xe/xe_query.c
··· 491 491 492 492 if (copy_to_user(*ptr, topo, sizeof(*topo))) 493 493 return -EFAULT; 494 - *ptr += sizeof(topo); 494 + *ptr += sizeof(*topo); 495 495 496 496 if (copy_to_user(*ptr, mask, mask_size)) 497 497 return -EFAULT;
+1 -1
drivers/gpu/drm/xe/xe_tlb_inval.c
··· 115 115 } 116 116 117 117 /** 118 - * xe_gt_tlb_inval_init - Initialize TLB invalidation state 118 + * xe_gt_tlb_inval_init_early() - Initialize TLB invalidation state 119 119 * @gt: GT structure 120 120 * 121 121 * Initialize TLB invalidation state, purely software initialization, should
+1 -1
drivers/gpu/drm/xe/xe_tlb_inval_job.c
··· 164 164 } 165 165 166 166 /** 167 - * xe_tlb_inval_alloc_dep() - TLB invalidation job alloc dependency 167 + * xe_tlb_inval_job_alloc_dep() - TLB invalidation job alloc dependency 168 168 * @job: TLB invalidation job to alloc dependency for 169 169 * 170 170 * Allocate storage for a dependency in the TLB invalidation fence. This