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

From: Stephen Rothwell <[email-masked]>
Date: Tue, 30 May 2023 11:59:19 +1000

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:

  66ca1d8f222b ("drm/i915/i915_drv: Use i915 instead of dev_priv insied the file_priv structure")

from the drm tree and commits:

  5af5169d7582 ("drm/i915: Convert INTEL_INFO()->display to a pointer")
  18e0deeed8c8 ("drm/i915/display: Move display runtime info to display structure")
  95c08508e237 ("drm/i915/display: Move feature test macros to intel_display_device.h")

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 f23b030aaf09,e9c403def9c9..000000000000
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@@ -407,11 -408,13 +408,13 @@@ static inline struct intel_gt *to_gt(st
  	     (engine__) && (engine__)->uabi_class == (class__); \
  	     (engine__) = rb_to_uabi_engine(rb_next(&(engine__)->uabi_node)))
  
 -#define INTEL_INFO(dev_priv)	(&(dev_priv)->__info)
 +#define INTEL_INFO(i915)	(&(i915)->__info)
+ #define DISPLAY_INFO(i915)	(INTEL_INFO(i915)->display)
 -#define RUNTIME_INFO(dev_priv)	(&(dev_priv)->__runtime)
 +#define RUNTIME_INFO(i915)	(&(i915)->__runtime)
+ #define DISPLAY_RUNTIME_INFO(i915)	(&(i915)->__display_runtime)
 -#define DRIVER_CAPS(dev_priv)	(&(dev_priv)->caps)
 +#define DRIVER_CAPS(i915)	(&(i915)->caps)
  
 -#define INTEL_DEVID(dev_priv)	(RUNTIME_INFO(dev_priv)->device_id)
 +#define INTEL_DEVID(i915)	(RUNTIME_INFO(i915)->device_id)
  
  #define IP_VER(ver, rel)		((ver) << 8 | (rel))
  
@@@ -753,125 -756,82 +756,82 @@@ IS_SUBPLATFORM(const struct drm_i915_pr
   * The Gen7 cmdparser copies the scanned buffer to the ggtt for execution
   * All later gens can run the final buffer from the ppgtt
   */
 -#define CMDPARSER_USES_GGTT(dev_priv) (GRAPHICS_VER(dev_priv) == 7)
 +#define CMDPARSER_USES_GGTT(i915) (GRAPHICS_VER(i915) == 7)
  
 -#define HAS_LLC(dev_priv)	(INTEL_INFO(dev_priv)->has_llc)
 -#define HAS_4TILE(dev_priv)	(INTEL_INFO(dev_priv)->has_4tile)
 -#define HAS_SNOOP(dev_priv)	(INTEL_INFO(dev_priv)->has_snoop)
 -#define HAS_EDRAM(dev_priv)	((dev_priv)->edram_size_mb)
 -#define HAS_SECURE_BATCHES(dev_priv) (GRAPHICS_VER(dev_priv) < 6)
 -#define HAS_WT(dev_priv)	HAS_EDRAM(dev_priv)
 +#define HAS_LLC(i915)	(INTEL_INFO(i915)->has_llc)
 +#define HAS_4TILE(i915)	(INTEL_INFO(i915)->has_4tile)
 +#define HAS_SNOOP(i915)	(INTEL_INFO(i915)->has_snoop)
 +#define HAS_EDRAM(i915)	((i915)->edram_size_mb)
 +#define HAS_SECURE_BATCHES(i915) (GRAPHICS_VER(i915) < 6)
 +#define HAS_WT(i915)	HAS_EDRAM(i915)
  
 -#define HWS_NEEDS_PHYSICAL(dev_priv)	(INTEL_INFO(dev_priv)->hws_needs_physical)
 +#define HWS_NEEDS_PHYSICAL(i915)	(INTEL_INFO(i915)->hws_needs_physical)
  
 -#define HAS_LOGICAL_RING_CONTEXTS(dev_priv) \
 -		(INTEL_INFO(dev_priv)->has_logical_ring_contexts)
 -#define HAS_LOGICAL_RING_ELSQ(dev_priv) \
 -		(INTEL_INFO(dev_priv)->has_logical_ring_elsq)
 +#define HAS_LOGICAL_RING_CONTEXTS(i915) \
 +		(INTEL_INFO(i915)->has_logical_ring_contexts)
 +#define HAS_LOGICAL_RING_ELSQ(i915) \
 +		(INTEL_INFO(i915)->has_logical_ring_elsq)
  
 -#define HAS_EXECLISTS(dev_priv) HAS_LOGICAL_RING_CONTEXTS(dev_priv)
 +#define HAS_EXECLISTS(i915) HAS_LOGICAL_RING_CONTEXTS(i915)
  
 -#define INTEL_PPGTT(dev_priv) (RUNTIME_INFO(dev_priv)->ppgtt_type)
 -#define HAS_PPGTT(dev_priv) \
 -	(INTEL_PPGTT(dev_priv) != INTEL_PPGTT_NONE)
 -#define HAS_FULL_PPGTT(dev_priv) \
 -	(INTEL_PPGTT(dev_priv) >= INTEL_PPGTT_FULL)
 +#define INTEL_PPGTT(i915) (RUNTIME_INFO(i915)->ppgtt_type)
 +#define HAS_PPGTT(i915) \
 +	(INTEL_PPGTT(i915) != INTEL_PPGTT_NONE)
 +#define HAS_FULL_PPGTT(i915) \
 +	(INTEL_PPGTT(i915) >= INTEL_PPGTT_FULL)
  
 -#define HAS_PAGE_SIZES(dev_priv, sizes) ({ \
 +#define HAS_PAGE_SIZES(i915, sizes) ({ \
  	GEM_BUG_ON((sizes) == 0); \
 -	((sizes) & ~RUNTIME_INFO(dev_priv)->page_sizes) == 0; \
 +	((sizes) & ~RUNTIME_INFO(i915)->page_sizes) == 0; \
  })
  
- #define HAS_OVERLAY(i915)		 (INTEL_INFO(i915)->display.has_overlay)
- #define OVERLAY_NEEDS_PHYSICAL(i915) \
- 		(INTEL_INFO(i915)->display.overlay_needs_physical)
- 
  /* Early gen2 have a totally busted CS tlb and require pinned batches. */
 -#define HAS_BROKEN_CS_TLB(dev_priv)	(IS_I830(dev_priv) || IS_I845G(dev_priv))
 +#define HAS_BROKEN_CS_TLB(i915)	(IS_I830(i915) || IS_I845G(i915))
  
 -#define NEEDS_RC6_CTX_CORRUPTION_WA(dev_priv)	\
 -	(IS_BROADWELL(dev_priv) || GRAPHICS_VER(dev_priv) == 9)
 +#define NEEDS_RC6_CTX_CORRUPTION_WA(i915)	\
 +	(IS_BROADWELL(i915) || GRAPHICS_VER(i915) == 9)
  
  /* WaRsDisableCoarsePowerGating:skl,cnl */
 -#define NEEDS_WaRsDisableCoarsePowerGating(dev_priv)			\
 -	(IS_SKL_GT3(dev_priv) || IS_SKL_GT4(dev_priv))
 +#define NEEDS_WaRsDisableCoarsePowerGating(i915)			\
 +	(IS_SKL_GT3(i915) || IS_SKL_GT4(i915))
  
- #define HAS_GMBUS_IRQ(i915) (DISPLAY_VER(i915) >= 4)
- #define HAS_GMBUS_BURST_READ(i915) (DISPLAY_VER(i915) >= 11 || \
- 					IS_GEMINILAKE(i915) || \
- 					IS_KABYLAKE(i915))
- 
  /* With the 945 and later, Y tiling got adjusted so that it was 32 128-byte
   * rows, which changed the alignment requirements and fence programming.
   */
 -#define HAS_128_BYTE_Y_TILING(dev_priv) (GRAPHICS_VER(dev_priv) != 2 && \
 -					 !(IS_I915G(dev_priv) || IS_I915GM(dev_priv)))
 +#define HAS_128_BYTE_Y_TILING(i915) (GRAPHICS_VER(i915) != 2 && \
 +					 !(IS_I915G(i915) || IS_I915GM(i915)))
- #define SUPPORTS_TV(i915)		(INTEL_INFO(i915)->display.supports_tv)
- #define I915_HAS_HOTPLUG(i915)	(INTEL_INFO(i915)->display.has_hotplug)
  
- #define HAS_FW_BLC(i915)	(DISPLAY_VER(i915) > 2)
- #define HAS_FBC(i915)	(RUNTIME_INFO(i915)->fbc_mask != 0)
- #define HAS_CUR_FBC(i915)	(!HAS_GMCH(i915) && DISPLAY_VER(i915) >= 7)
- 
- #define HAS_DPT(i915)	(DISPLAY_VER(i915) >= 13)
- 
- #define HAS_IPS(i915)	(IS_HSW_ULT(i915) || IS_BROADWELL(i915))
- 
- #define HAS_DP_MST(i915)	(INTEL_INFO(i915)->display.has_dp_mst)
- #define HAS_DP20(i915)	(IS_DG2(i915) || DISPLAY_VER(i915) >= 14)
- 
- #define HAS_DOUBLE_BUFFERED_M_N(i915)	(DISPLAY_VER(i915) >= 9 || IS_BROADWELL(i915))
- 
- #define HAS_CDCLK_CRAWL(i915)	 (INTEL_INFO(i915)->display.has_cdclk_crawl)
- #define HAS_CDCLK_SQUASH(i915)	 (INTEL_INFO(i915)->display.has_cdclk_squash)
- #define HAS_DDI(i915)		 (INTEL_INFO(i915)->display.has_ddi)
- #define HAS_FPGA_DBG_UNCLAIMED(i915) (INTEL_INFO(i915)->display.has_fpga_dbg)
- #define HAS_PSR(i915)		 (INTEL_INFO(i915)->display.has_psr)
- #define HAS_PSR_HW_TRACKING(i915) \
- 	(INTEL_INFO(i915)->display.has_psr_hw_tracking)
- #define HAS_PSR2_SEL_FETCH(i915)	 (DISPLAY_VER(i915) >= 12)
- #define HAS_TRANSCODER(i915, trans)	 ((RUNTIME_INFO(i915)->cpu_transcoder_mask & BIT(trans)) != 0)
  
 -#define HAS_RC6(dev_priv)		 (INTEL_INFO(dev_priv)->has_rc6)
 -#define HAS_RC6p(dev_priv)		 (INTEL_INFO(dev_priv)->has_rc6p)
 -#define HAS_RC6pp(dev_priv)		 (false) /* HW was never validated */
 +#define HAS_RC6(i915)		 (INTEL_INFO(i915)->has_rc6)
 +#define HAS_RC6p(i915)		 (INTEL_INFO(i915)->has_rc6p)
 +#define HAS_RC6pp(i915)		 (false) /* HW was never validated */
  
 -#define HAS_RPS(dev_priv)	(INTEL_INFO(dev_priv)->has_rps)
 +#define HAS_RPS(i915)	(INTEL_INFO(i915)->has_rps)
  
- #define HAS_DMC(i915)	(RUNTIME_INFO(i915)->has_dmc)
- #define HAS_DSB(i915)	(INTEL_INFO(i915)->display.has_dsb)
- #define HAS_DSC(__i915)		(RUNTIME_INFO(__i915)->has_dsc)
- #define HAS_HW_SAGV_WM(i915) (DISPLAY_VER(i915) >= 13 && !IS_DGFX(i915))
- 
 -#define HAS_HECI_PXP(dev_priv) \
 -	(INTEL_INFO(dev_priv)->has_heci_pxp)
 +#define HAS_HECI_PXP(i915) \
 +	(INTEL_INFO(i915)->has_heci_pxp)
  
 -#define HAS_HECI_GSCFI(dev_priv) \
 -	(INTEL_INFO(dev_priv)->has_heci_gscfi)
 +#define HAS_HECI_GSCFI(i915) \
 +	(INTEL_INFO(i915)->has_heci_gscfi)
  
 -#define HAS_HECI_GSC(dev_priv) (HAS_HECI_PXP(dev_priv) || HAS_HECI_GSCFI(dev_priv))
 +#define HAS_HECI_GSC(i915) (HAS_HECI_PXP(i915) || HAS_HECI_GSCFI(i915))
  
- #define HAS_MSO(i915)		(DISPLAY_VER(i915) >= 12)
- 
 -#define HAS_RUNTIME_PM(dev_priv) (INTEL_INFO(dev_priv)->has_runtime_pm)
 -#define HAS_64BIT_RELOC(dev_priv) (INTEL_INFO(dev_priv)->has_64bit_reloc)
 +#define HAS_RUNTIME_PM(i915) (INTEL_INFO(i915)->has_runtime_pm)
 +#define HAS_64BIT_RELOC(i915) (INTEL_INFO(i915)->has_64bit_reloc)
  
 -#define HAS_OA_BPC_REPORTING(dev_priv) \
 -	(INTEL_INFO(dev_priv)->has_oa_bpc_reporting)
 -#define HAS_OA_SLICE_CONTRIB_LIMITS(dev_priv) \
 -	(INTEL_INFO(dev_priv)->has_oa_slice_contrib_limits)
 -#define HAS_OAM(dev_priv) \
 -	(INTEL_INFO(dev_priv)->has_oam)
 +#define HAS_OA_BPC_REPORTING(i915) \
 +	(INTEL_INFO(i915)->has_oa_bpc_reporting)
 +#define HAS_OA_SLICE_CONTRIB_LIMITS(i915) \
 +	(INTEL_INFO(i915)->has_oa_slice_contrib_limits)
 +#define HAS_OAM(i915) \
 +	(INTEL_INFO(i915)->has_oam)
  
  /*
   * Set this flag, when platform requires 64K GTT page sizes or larger for
   * device local memory access.
   */
 -#define HAS_64K_PAGES(dev_priv) (INTEL_INFO(dev_priv)->has_64k_pages)
 +#define HAS_64K_PAGES(i915) (INTEL_INFO(i915)->has_64k_pages)
  
- #define HAS_IPC(i915)		(INTEL_INFO(i915)->display.has_ipc)
- #define HAS_SAGV(i915)		(DISPLAY_VER(i915) >= 9 && !IS_LP(i915))
- 
  #define HAS_REGION(i915, i) (RUNTIME_INFO(i915)->memory_regions & (i))
  #define HAS_LMEM(i915) HAS_REGION(i915, REGION_LMEM)
  
@@@ -881,49 -841,32 +841,32 @@@
   * Platform has the dedicated compression control state for each lmem surfaces
   * stored in lmem to support the 3D and media compression formats.
   */
 -#define HAS_FLAT_CCS(dev_priv)   (INTEL_INFO(dev_priv)->has_flat_ccs)
 +#define HAS_FLAT_CCS(i915)   (INTEL_INFO(i915)->has_flat_ccs)
  
 -#define HAS_GT_UC(dev_priv)	(INTEL_INFO(dev_priv)->has_gt_uc)
 +#define HAS_GT_UC(i915)	(INTEL_INFO(i915)->has_gt_uc)
  
 -#define HAS_POOLED_EU(dev_priv)	(RUNTIME_INFO(dev_priv)->has_pooled_eu)
 +#define HAS_POOLED_EU(i915)	(RUNTIME_INFO(i915)->has_pooled_eu)
  
 -#define HAS_GLOBAL_MOCS_REGISTERS(dev_priv)	(INTEL_INFO(dev_priv)->has_global_mocs)
 +#define HAS_GLOBAL_MOCS_REGISTERS(i915)	(INTEL_INFO(i915)->has_global_mocs)
  
- #define HAS_GMCH(i915) (INTEL_INFO(i915)->display.has_gmch)
- 
  #define HAS_GMD_ID(i915)	(INTEL_INFO(i915)->has_gmd_id)
  
- #define HAS_LSPCON(i915) (IS_DISPLAY_VER(i915, 9, 10))
- 
  #define HAS_L3_CCS_READ(i915) (INTEL_INFO(i915)->has_l3_ccs_read)
  
  /* DPF == dynamic parity feature */
 -#define HAS_L3_DPF(dev_priv) (INTEL_INFO(dev_priv)->has_l3_dpf)
 -#define NUM_L3_SLICES(dev_priv) (IS_HSW_GT3(dev_priv) ? \
 -				 2 : HAS_L3_DPF(dev_priv))
 +#define HAS_L3_DPF(i915) (INTEL_INFO(i915)->has_l3_dpf)
 +#define NUM_L3_SLICES(i915) (IS_HSW_GT3(i915) ? \
 +				 2 : HAS_L3_DPF(i915))
  
- #define INTEL_NUM_PIPES(i915) (hweight8(RUNTIME_INFO(i915)->pipe_mask))
- 
- #define HAS_DISPLAY(i915) (RUNTIME_INFO(i915)->pipe_mask != 0)
- 
- #define HAS_VRR(i915)	(DISPLAY_VER(i915) >= 11)
- 
- #define HAS_ASYNC_FLIPS(i915)		(DISPLAY_VER(i915) >= 5)
- 
  /* Only valid when HAS_DISPLAY() is true */
 -#define INTEL_DISPLAY_ENABLED(dev_priv) \
 -	(drm_WARN_ON(&(dev_priv)->drm, !HAS_DISPLAY(dev_priv)),		\
 -	 !(dev_priv)->params.disable_display &&				\
 -	 !intel_opregion_headless_sku(dev_priv))
 +#define INTEL_DISPLAY_ENABLED(i915) \
 +	(drm_WARN_ON(&(i915)->drm, !HAS_DISPLAY(i915)),		\
 +	 !(i915)->params.disable_display &&				\
 +	 !intel_opregion_headless_sku(i915))
  
 -#define HAS_GUC_DEPRIVILEGE(dev_priv) \
 -	(INTEL_INFO(dev_priv)->has_guc_deprivilege)
 +#define HAS_GUC_DEPRIVILEGE(i915) \
 +	(INTEL_INFO(i915)->has_guc_deprivilege)
  
- #define HAS_D12_PLANE_MINIMIZATION(i915) (IS_ROCKETLAKE(i915) || \
- 					      IS_ALDERLAKE_S(i915))
- 
- #define HAS_MBUS_JOINING(i915) (IS_ALDERLAKE_P(i915) || DISPLAY_VER(i915) >= 14)
- 
  #define HAS_3D_PIPELINE(i915)	(INTEL_INFO(i915)->has_3d_pipeline)
  
  #define HAS_ONE_EU_PER_FUSE_BIT(i915)	(INTEL_INFO(i915)->has_one_eu_per_fuse_bit)