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

From: Stephen Rothwell <[email-masked]>
Date: Wed, 25 Jan 2023 10:42:48 +1100

Hi all,

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

  drivers/gpu/drm/i915/i915_drv.h

between commit:

  f67986b0119c ("drm/i915/pxp: Promote pxp subsystem to top-level of i915")

from the drm tree and commit:

  a3f839762ceb ("drm/i915: move pch_ssc_use to display sub-struct under dpll")

from the drm-intel 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.

-- 
Cheers,
Stephen Rothwell

diff --cc drivers/gpu/drm/i915/i915_drv.h
index 48fd82722f12,ac4c3c6f5541..000000000000
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@@ -65,26 -65,40 +65,41 @@@
  #include "intel_uncore.h"
  
  struct drm_i915_clock_gating_funcs;
- struct drm_i915_gem_object;
- struct drm_i915_private;
- struct intel_connector;
- struct intel_dp;
- struct intel_encoder;
- struct intel_limit;
- struct intel_overlay_error_state;
  struct vlv_s0ix_state;
 +struct intel_pxp;
  
- #define I915_GEM_GPU_DOMAINS \
- 	(I915_GEM_DOMAIN_RENDER | \
- 	 I915_GEM_DOMAIN_SAMPLER | \
- 	 I915_GEM_DOMAIN_COMMAND | \
- 	 I915_GEM_DOMAIN_INSTRUCTION | \
- 	 I915_GEM_DOMAIN_VERTEX)
+ #define GEM_QUIRK_PIN_SWIZZLED_PAGES	BIT(0)
  
- #define I915_COLOR_UNEVICTABLE (-1) /* a non-vma sharing the address space */
+ /* Data Stolen Memory (DSM) aka "i915 stolen memory" */
+ struct i915_dsm {
+ 	/*
+ 	 * The start and end of DSM which we can optionally use to create GEM
+ 	 * objects backed by stolen memory.
+ 	 *
+ 	 * Note that usable_size tells us exactly how much of this we are
+ 	 * actually allowed to use, given that some portion of it is in fact
+ 	 * reserved for use by hardware functions.
+ 	 */
+ 	struct resource stolen;
  
- #define GEM_QUIRK_PIN_SWIZZLED_PAGES	BIT(0)
+ 	/*
+ 	 * Reserved portion of DSM.
+ 	 */
+ 	struct resource reserved;
+ 
+ 	/*
+ 	 * Total size minus reserved ranges.
+ 	 *
+ 	 * DSM is segmented in hardware with different portions offlimits to
+ 	 * certain functions.
+ 	 *
+ 	 * The drm_mm is initialised to the total accessible range, as found
+ 	 * from the PCI config. On Broadwell+, this is further restricted to
+ 	 * avoid the first page! The upper end of DSM is reserved for hardware
+ 	 * functions and similarly removed from the accessible range.
+ 	 */
+ 	resource_size_t usable_size;
+ };
  
  struct i915_suspend_saved_registers {
  	u32 saveDSPARB;
@@@ -366,10 -337,6 +338,8 @@@ struct drm_i915_private 
  		struct file *mmap_singleton;
  	} gem;
  
 +	struct intel_pxp *pxp;
 +
- 	u8 pch_ssc_use;
- 
  	/* For i915gm/i945gm vblank irq workaround */
  	u8 vblank_enabled;