Skip to content

Commit 335482a

Browse files
committed
Merge tag 'drm-xe-next-2025-10-20' of https://gitlab.freedesktop.org/drm/xe/kernel into drm-next
Highlights: UAPI Changes: Loosen used tracking restriction (Matthew Auld) New SR-IOV debugfs structure and debugfs updates (Michal Wajdeczko) Hide the GPU madvise flag behind a VM_BIND flag (Thomas Hellström) Always expose VRAM provisioning data on discrete GPUs (Lukasz Laguna) Cross-subsystem Changes: Allow VRAM mappings for userptr when used with SVM (Matthew Brost) Driver Changes: Allow pinning of p2p dma-buf (Thomas Hellstrom) Use per-tile debugfs where appropriate (Michal Wajdeczko) Add documentation for Execution Queues (Niranjana Vishwanathapura) PF improvements (Michal Wajdeczko) VF migration recovery redesign work (Matthew Brost) User / Kernel VRAM partitioning (Piotr Piórkowski) Update Tile-based messages (Michal Wajdeczko) Allow configfs to disable specific GT types (Matt Roper) VF provisioning improvements (Michal Wajdeczko) Initial Xe3P support (Various people) Signed-off-by: Dave Airlie <airlied@redhat.com> From: Thomas Hellstrom <thomas.hellstrom@linux.intel.com> Link: https://lore.kernel.org/r/aPXzbOb7eGbkgMrr@fedora
2 parents 211ddde + d104d7e commit 335482a

148 files changed

Lines changed: 4704 additions & 2102 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

Documentation/gpu/xe/index.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ DG2, etc is provided to prototype the driver.
1414
xe_mm
1515
xe_map
1616
xe_migrate
17+
xe_exec_queue
1718
xe_cs
1819
xe_pm
1920
xe_gt_freq
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
.. SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2+
3+
===============
4+
Execution Queue
5+
===============
6+
7+
.. kernel-doc:: drivers/gpu/drm/xe/xe_exec_queue.c
8+
:doc: Execution Queue
9+
10+
Internal API
11+
============
12+
13+
.. kernel-doc:: drivers/gpu/drm/xe/xe_exec_queue_types.h
14+
:internal:
15+
16+
.. kernel-doc:: drivers/gpu/drm/xe/xe_exec_queue.h
17+
:internal:
18+
19+
.. kernel-doc:: drivers/gpu/drm/xe/xe_exec_queue.c
20+
:internal:

drivers/gpu/drm/drm_gpusvm.c

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1363,7 +1363,8 @@ int drm_gpusvm_get_pages(struct drm_gpusvm *gpusvm,
13631363
order = drm_gpusvm_hmm_pfn_to_order(pfns[i], i, npages);
13641364
if (is_device_private_page(page) ||
13651365
is_device_coherent_page(page)) {
1366-
if (zdd != page->zone_device_data && i > 0) {
1366+
if (!ctx->allow_mixed &&
1367+
zdd != page->zone_device_data && i > 0) {
13671368
err = -EOPNOTSUPP;
13681369
goto err_unmap;
13691370
}
@@ -1399,7 +1400,8 @@ int drm_gpusvm_get_pages(struct drm_gpusvm *gpusvm,
13991400
} else {
14001401
dma_addr_t addr;
14011402

1402-
if (is_zone_device_page(page) || pagemap) {
1403+
if (is_zone_device_page(page) ||
1404+
(pagemap && !ctx->allow_mixed)) {
14031405
err = -EOPNOTSUPP;
14041406
goto err_unmap;
14051407
}

drivers/gpu/drm/xe/Kconfig.debug

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -40,23 +40,23 @@ config DRM_XE_DEBUG_VM
4040

4141
If in doubt, say "N".
4242

43-
config DRM_XE_DEBUG_MEMIRQ
44-
bool "Enable extra memirq debugging"
43+
config DRM_XE_DEBUG_SRIOV
44+
bool "Enable extra SR-IOV debugging"
4545
default n
46+
imply DRM_XE_DEBUG_MEMIRQ
4647
help
47-
Choose this option to enable additional debugging info for
48-
memory based interrupts.
48+
Enable extra SR-IOV debugging info.
4949

5050
Recommended for driver developers only.
5151

5252
If in doubt, say "N".
5353

54-
config DRM_XE_DEBUG_SRIOV
55-
bool "Enable extra SR-IOV debugging"
54+
config DRM_XE_DEBUG_MEMIRQ
55+
bool "Enable extra memirq debugging"
5656
default n
57-
select DRM_XE_DEBUG_MEMIRQ
5857
help
59-
Enable extra SR-IOV debugging info.
58+
Choose this option to enable additional debugging info for
59+
memory based interrupts.
6060

6161
Recommended for driver developers only.
6262

drivers/gpu/drm/xe/Makefile

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -174,7 +174,11 @@ xe-$(CONFIG_PCI_IOV) += \
174174
xe_lmtt_ml.o \
175175
xe_pci_sriov.o \
176176
xe_sriov_pf.o \
177-
xe_sriov_pf_service.o
177+
xe_sriov_pf_control.o \
178+
xe_sriov_pf_debugfs.o \
179+
xe_sriov_pf_provision.o \
180+
xe_sriov_pf_service.o \
181+
xe_tile_sriov_pf_debugfs.o
178182

179183
# include helpers for tests even when XE is built-in
180184
ifdef CONFIG_DRM_XE_KUNIT_TEST

drivers/gpu/drm/xe/abi/guc_actions_abi.h

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -196,14 +196,6 @@ enum xe_guc_register_context_multi_lrc_param_offsets {
196196
XE_GUC_REGISTER_CONTEXT_MULTI_LRC_MSG_MIN_LEN = 11,
197197
};
198198

199-
enum xe_guc_context_wq_item_offsets {
200-
XE_GUC_CONTEXT_WQ_HEADER_DATA_0_TYPE_LEN = 0,
201-
XE_GUC_CONTEXT_WQ_EL_INFO_DATA_1_CTX_DESC_LOW,
202-
XE_GUC_CONTEXT_WQ_EL_INFO_DATA_2_GUCCTX_RINGTAIL_FREEZEPOCS,
203-
XE_GUC_CONTEXT_WQ_EL_INFO_DATA_3_WI_FENCE_ID,
204-
XE_GUC_CONTEXT_WQ_EL_CHILD_LIST_DATA_4_RINGTAIL,
205-
};
206-
207199
enum xe_guc_report_status {
208200
XE_GUC_REPORT_STATUS_UNKNOWN = 0x0,
209201
XE_GUC_REPORT_STATUS_ACKED = 0x1,

drivers/gpu/drm/xe/display/intel_fbdev_fb.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
#include "xe_ttm_stolen_mgr.h"
1414
#include "xe_wa.h"
1515

16-
#include <generated/xe_wa_oob.h>
16+
#include <generated/xe_device_wa_oob.h>
1717

1818
struct intel_framebuffer *intel_fbdev_fb_alloc(struct drm_fb_helper *helper,
1919
struct drm_fb_helper_surface_size *sizes)
@@ -41,7 +41,7 @@ struct intel_framebuffer *intel_fbdev_fb_alloc(struct drm_fb_helper *helper,
4141
size = PAGE_ALIGN(size);
4242
obj = ERR_PTR(-ENODEV);
4343

44-
if (!IS_DGFX(xe) && !XE_GT_WA(xe_root_mmio_gt(xe), 22019338487_display)) {
44+
if (!IS_DGFX(xe) && !XE_DEVICE_WA(xe, 22019338487_display)) {
4545
obj = xe_bo_create_pin_map_novm(xe, xe_device_get_root_tile(xe),
4646
size,
4747
ttm_bo_type_kernel, XE_BO_FLAG_SCANOUT |

drivers/gpu/drm/xe/display/xe_display.c

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -223,15 +223,14 @@ void xe_display_irq_reset(struct xe_device *xe)
223223
gen11_display_irq_reset(display);
224224
}
225225

226-
void xe_display_irq_postinstall(struct xe_device *xe, struct xe_gt *gt)
226+
void xe_display_irq_postinstall(struct xe_device *xe)
227227
{
228228
struct intel_display *display = xe->display;
229229

230230
if (!xe->info.probe_display)
231231
return;
232232

233-
if (gt->info.id == XE_GT0)
234-
gen11_de_irq_postinstall(display);
233+
gen11_de_irq_postinstall(display);
235234
}
236235

237236
static bool suspend_to_idle(void)

drivers/gpu/drm/xe/display/xe_display.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ void xe_display_unregister(struct xe_device *xe);
2626
void xe_display_irq_handler(struct xe_device *xe, u32 master_ctl);
2727
void xe_display_irq_enable(struct xe_device *xe, u32 gu_misc_iir);
2828
void xe_display_irq_reset(struct xe_device *xe);
29-
void xe_display_irq_postinstall(struct xe_device *xe, struct xe_gt *gt);
29+
void xe_display_irq_postinstall(struct xe_device *xe);
3030

3131
void xe_display_pm_suspend(struct xe_device *xe);
3232
void xe_display_pm_shutdown(struct xe_device *xe);
@@ -55,7 +55,7 @@ static inline void xe_display_unregister(struct xe_device *xe) {}
5555
static inline void xe_display_irq_handler(struct xe_device *xe, u32 master_ctl) {}
5656
static inline void xe_display_irq_enable(struct xe_device *xe, u32 gu_misc_iir) {}
5757
static inline void xe_display_irq_reset(struct xe_device *xe) {}
58-
static inline void xe_display_irq_postinstall(struct xe_device *xe, struct xe_gt *gt) {}
58+
static inline void xe_display_irq_postinstall(struct xe_device *xe) {}
5959

6060
static inline void xe_display_pm_suspend(struct xe_device *xe) {}
6161
static inline void xe_display_pm_shutdown(struct xe_device *xe) {}

drivers/gpu/drm/xe/display/xe_display_wa.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
bool intel_display_needs_wa_16023588340(struct intel_display *display)
1414
{
1515
struct xe_device *xe = to_xe_device(display->drm);
16+
struct xe_gt *wa_gt = xe_root_mmio_gt(xe);
1617

17-
return XE_GT_WA(xe_root_mmio_gt(xe), 16023588340);
18+
return wa_gt && XE_GT_WA(wa_gt, 16023588340);
1819
}

0 commit comments

Comments
 (0)