Subject: linux-next: manual merge of the drm tree with the origin tree

From: Mark Brown <[email-masked]>
Date: Mon, 23 Mar 2026 15:49:16 +0000

Hi all,

Today's linux-next merge of the drm tree got a conflict in:

  drivers/gpu/drm/xe/xe_ggtt_types.h

between commit:

  01f2557aa684e ("drm/xe: Open-code GGTT MMIO access protection")

from the origin tree and commit:

  95f5f9a96dcfb ("drm/xe: Move struct xe_ggtt to xe_ggtt.c")

from the drm tree.

I fixed it up (see below) and can carry the fix as necessary. This
is now fixed as far as linux-next is concerned, but any non trivial
conflicts should be mentioned to your upstream maintainer when your tree
is submitted for merging.  You may also want to consider cooperating
with the maintainer of the conflicting tree to minimise any particularly
complex conflicts.

diff --cc drivers/gpu/drm/xe/xe_ggtt_types.h
index c002857bb7611,cf754e4d502ad..0000000000000
--- a/drivers/gpu/drm/xe/xe_ggtt_types.h
+++ b/drivers/gpu/drm/xe/xe_ggtt_types.h
@@@ -6,57 -6,12 +6,13 @@@
  #ifndef _XE_GGTT_TYPES_H_
  #define _XE_GGTT_TYPES_H_
  
+ #include <linux/types.h>
  #include <drm/drm_mm.h>
  
- #include "xe_pt_types.h"
- 
- struct xe_bo;
+ struct xe_ggtt;
  struct xe_ggtt_node;
 +struct xe_gt;
  
- /**
-  * struct xe_ggtt - Main GGTT struct
-  *
-  * In general, each tile can contains its own Global Graphics Translation Table
-  * (GGTT) instance.
-  */
- struct xe_ggtt {
- 	/** @tile: Back pointer to tile where this GGTT belongs */
- 	struct xe_tile *tile;
- 	/** @start: Start offset of GGTT */
- 	u64 start;
- 	/** @size: Total usable size of this GGTT */
- 	u64 size;
- 
- #define XE_GGTT_FLAGS_64K       BIT(0)
- #define XE_GGTT_FLAGS_ONLINE	BIT(1)
- 	/**
- 	 * @flags: Flags for this GGTT
- 	 * Acceptable flags:
- 	 * - %XE_GGTT_FLAGS_64K - if PTE size is 64K. Otherwise, regular is 4K.
- 	 * - %XE_GGTT_FLAGS_ONLINE - is GGTT online, protected by ggtt->lock
- 	 *   after init
- 	 */
- 	unsigned int flags;
- 	/** @scratch: Internal object allocation used as a scratch page */
- 	struct xe_bo *scratch;
- 	/** @lock: Mutex lock to protect GGTT data */
- 	struct mutex lock;
- 	/**
- 	 *  @gsm: The iomem pointer to the actual location of the translation
- 	 * table located in the GSM for easy PTE manipulation
- 	 */
- 	u64 __iomem *gsm;
- 	/** @pt_ops: Page Table operations per platform */
- 	const struct xe_ggtt_pt_ops *pt_ops;
- 	/** @mm: The memory manager used to manage individual GGTT allocations */
- 	struct drm_mm mm;
- 	/** @access_count: counts GGTT writes */
- 	unsigned int access_count;
- 	/** @wq: Dedicated unordered work queue to process node removals */
- 	struct workqueue_struct *wq;
- };
- 
  typedef void (*xe_ggtt_set_pte_fn)(struct xe_ggtt *ggtt, u64 addr, u64 pte);
  typedef void (*xe_ggtt_transform_cb)(struct xe_ggtt *ggtt,
  				     struct xe_ggtt_node *node,