Message ID | 20220120162102.10652-1-ramalingam.c@intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | drm/i915: Add needs_compact_pt flag | expand |
On 20/01/2022 16:21, Ramalingam C wrote: > Add a new platform flag, needs_compact_pt, to mark the requirement of > compact pt layout support for the ppGTT when using 64K GTT pages. > > With this flag has_64k_pages will only indicate requirement of 64K > GTT page sizes or larger for device local memory access. > > Suggested-by: Matthew Auld <matthew.auld@intel.com> > Signed-off-by: Ramalingam C <ramalingam.c@intel.com> > cc: Robert Beckett <bob.beckett@collabora.com> > --- > drivers/gpu/drm/i915/i915_drv.h | 10 +++++++--- > drivers/gpu/drm/i915/i915_pci.c | 2 ++ > drivers/gpu/drm/i915/intel_device_info.h | 1 + > 3 files changed, 10 insertions(+), 3 deletions(-) > > diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h > index 890f1f6fbc49..23f4713005bb 100644 > --- a/drivers/gpu/drm/i915/i915_drv.h > +++ b/drivers/gpu/drm/i915/i915_drv.h > @@ -1512,12 +1512,16 @@ IS_SUBPLATFORM(const struct drm_i915_private *i915, > > /* > * Set this flag, when platform requires 64K GTT page sizes or larger for > - * device local memory access. Also this flag implies that we require or > - * at least support the compact PT layout for the ppGTT when using the 64K > - * GTT pages. > + * device local memory access. > */ > #define HAS_64K_PAGES(dev_priv) (INTEL_INFO(dev_priv)->has_64k_pages) > > +/* Set this flag when platform doesn't allow both 64k pages and 4k pages in > + * the same PT. this flag means we need to support compact PT layout for the > + * ppGTT when using the 64K GTT pages. > + */ > +#define NEEDS_COMPACT_PT(dev_priv) (INTEL_INFO(dev_priv)->needs_compact_pt) > + > #define HAS_IPC(dev_priv) (INTEL_INFO(dev_priv)->display.has_ipc) > > #define HAS_REGION(i915, i) (INTEL_INFO(i915)->memory_regions & (i)) > diff --git a/drivers/gpu/drm/i915/i915_pci.c b/drivers/gpu/drm/i915/i915_pci.c > index 8261b6455747..3e7555ce6894 100644 > --- a/drivers/gpu/drm/i915/i915_pci.c > +++ b/drivers/gpu/drm/i915/i915_pci.c > @@ -1028,6 +1028,7 @@ static const struct intel_device_info xehpsdv_info = { > PLATFORM(INTEL_XEHPSDV), > .display = { }, > .has_64k_pages = 1, > + .needs_compact_pt = 1, > .platform_engine_mask = > BIT(RCS0) | BIT(BCS0) | > BIT(VECS0) | BIT(VECS1) | BIT(VECS2) | BIT(VECS3) | > @@ -1046,6 +1047,7 @@ static const struct intel_device_info dg2_info = { > .media.rel = 55, > PLATFORM(INTEL_DG2), > .has_64k_pages = 1, > + .needs_compact_pt = 1, > .platform_engine_mask = > BIT(RCS0) | BIT(BCS0) | > BIT(VECS0) | BIT(VECS1) | > diff --git a/drivers/gpu/drm/i915/intel_device_info.h b/drivers/gpu/drm/i915/intel_device_info.h > index 3699b1c539ea..8ff676f49471 100644 > --- a/drivers/gpu/drm/i915/intel_device_info.h > +++ b/drivers/gpu/drm/i915/intel_device_info.h > @@ -130,6 +130,7 @@ enum intel_ppgtt_type { > /* Keep has_* in alphabetical order */ \ > func(has_64bit_reloc); \ > func(has_64k_pages); \ > + func(needs_compact_pt; \ missing `)` instead of chucking untested patches on ml, I'll add a fixed version to the in review series and include it in v3 after testing > func(gpu_reset_clobbers_display); \ > func(has_reset_engine); \ > func(has_global_mocs); \ >
On 2022-01-20 at 16:42:52 +0000, Robert Beckett wrote: > > > On 20/01/2022 16:21, Ramalingam C wrote: > > Add a new platform flag, needs_compact_pt, to mark the requirement of > > compact pt layout support for the ppGTT when using 64K GTT pages. > > > > With this flag has_64k_pages will only indicate requirement of 64K > > GTT page sizes or larger for device local memory access. > > > > Suggested-by: Matthew Auld <matthew.auld@intel.com> > > Signed-off-by: Ramalingam C <ramalingam.c@intel.com> > > cc: Robert Beckett <bob.beckett@collabora.com> > > --- > > drivers/gpu/drm/i915/i915_drv.h | 10 +++++++--- > > drivers/gpu/drm/i915/i915_pci.c | 2 ++ > > drivers/gpu/drm/i915/intel_device_info.h | 1 + > > 3 files changed, 10 insertions(+), 3 deletions(-) > > > > diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h > > index 890f1f6fbc49..23f4713005bb 100644 > > --- a/drivers/gpu/drm/i915/i915_drv.h > > +++ b/drivers/gpu/drm/i915/i915_drv.h > > @@ -1512,12 +1512,16 @@ IS_SUBPLATFORM(const struct drm_i915_private *i915, > > /* > > * Set this flag, when platform requires 64K GTT page sizes or larger for > > - * device local memory access. Also this flag implies that we require or > > - * at least support the compact PT layout for the ppGTT when using the 64K > > - * GTT pages. > > + * device local memory access. > > */ > > #define HAS_64K_PAGES(dev_priv) (INTEL_INFO(dev_priv)->has_64k_pages) > > +/* Set this flag when platform doesn't allow both 64k pages and 4k pages in > > + * the same PT. this flag means we need to support compact PT layout for the > > + * ppGTT when using the 64K GTT pages. > > + */ > > +#define NEEDS_COMPACT_PT(dev_priv) (INTEL_INFO(dev_priv)->needs_compact_pt) > > + > > #define HAS_IPC(dev_priv) (INTEL_INFO(dev_priv)->display.has_ipc) > > #define HAS_REGION(i915, i) (INTEL_INFO(i915)->memory_regions & (i)) > > diff --git a/drivers/gpu/drm/i915/i915_pci.c b/drivers/gpu/drm/i915/i915_pci.c > > index 8261b6455747..3e7555ce6894 100644 > > --- a/drivers/gpu/drm/i915/i915_pci.c > > +++ b/drivers/gpu/drm/i915/i915_pci.c > > @@ -1028,6 +1028,7 @@ static const struct intel_device_info xehpsdv_info = { > > PLATFORM(INTEL_XEHPSDV), > > .display = { }, > > .has_64k_pages = 1, > > + .needs_compact_pt = 1, > > .platform_engine_mask = > > BIT(RCS0) | BIT(BCS0) | > > BIT(VECS0) | BIT(VECS1) | BIT(VECS2) | BIT(VECS3) | > > @@ -1046,6 +1047,7 @@ static const struct intel_device_info dg2_info = { > > .media.rel = 55, > > PLATFORM(INTEL_DG2), > > .has_64k_pages = 1, > > + .needs_compact_pt = 1, > > .platform_engine_mask = > > BIT(RCS0) | BIT(BCS0) | > > BIT(VECS0) | BIT(VECS1) | > > diff --git a/drivers/gpu/drm/i915/intel_device_info.h b/drivers/gpu/drm/i915/intel_device_info.h > > index 3699b1c539ea..8ff676f49471 100644 > > --- a/drivers/gpu/drm/i915/intel_device_info.h > > +++ b/drivers/gpu/drm/i915/intel_device_info.h > > @@ -130,6 +130,7 @@ enum intel_ppgtt_type { > > /* Keep has_* in alphabetical order */ \ > > func(has_64bit_reloc); \ > > func(has_64k_pages); \ > > + func(needs_compact_pt; \ > > missing `)` > instead of chucking untested patches on ml, I'll add a fixed version to the > in review series and include it in v3 after testing Thanks Ram > > > func(gpu_reset_clobbers_display); \ > > func(has_reset_engine); \ > > func(has_global_mocs); \ > >
Hi Ramalingam, Thank you for the patch! Yet something to improve: [auto build test ERROR on drm-intel/for-linux-next] [also build test ERROR on drm-tip/drm-tip drm-exynos/exynos-drm-next drm/drm-next next-20220120] [cannot apply to tegra-drm/drm/tegra/for-next airlied/drm-next v5.16] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use '--base' as documented in https://git-scm.com/docs/git-format-patch] url: https://github.com/0day-ci/linux/commits/Ramalingam-C/drm-i915-Add-needs_compact_pt-flag/20220121-002256 base: git://anongit.freedesktop.org/drm-intel for-linux-next config: x86_64-randconfig-a005 (https://download.01.org/0day-ci/archive/20220121/202201210857.CAeUyl4W-lkp@intel.com/config) compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project f7b7138a62648f4019c55e4671682af1f851f295) reproduce (this is a W=1 build): wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # https://github.com/0day-ci/linux/commit/cf1a6660ac07b3b3618b35dccab57042d592ea2c git remote add linux-review https://github.com/0day-ci/linux git fetch --no-tags linux-review Ramalingam-C/drm-i915-Add-needs_compact_pt-flag/20220121-002256 git checkout cf1a6660ac07b3b3618b35dccab57042d592ea2c # save the config file to linux build tree mkdir build_dir COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=x86_64 SHELL=/bin/bash drivers/gpu/ If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <lkp@intel.com> All errors (new ones prefixed by >>): In file included from drivers/gpu/drm/i915/i915_config.c:6: In file included from drivers/gpu/drm/i915/i915_drv.h:83: In file included from drivers/gpu/drm/i915/gt/intel_engine.h:18: In file included from drivers/gpu/drm/i915/gt/intel_gt_types.h:18: In file included from drivers/gpu/drm/i915/gt/uc/intel_uc.h:9: In file included from drivers/gpu/drm/i915/gt/uc/intel_guc.h:19: >> drivers/gpu/drm/i915/gt/uc/intel_uc_fw.h:12:2: error: embedding a #include directive within macro arguments is not supported #include "i915_gem.h" ^ drivers/gpu/drm/i915/intel_device_info.h:201:25: note: expansion of macro 'DEFINE_FLAG' requested here DEV_INFO_FOR_EACH_FLAG(DEFINE_FLAG); ^ In file included from drivers/gpu/drm/i915/i915_config.c:6: In file included from drivers/gpu/drm/i915/i915_drv.h:83: In file included from drivers/gpu/drm/i915/gt/intel_engine.h:18: In file included from drivers/gpu/drm/i915/gt/intel_gt_types.h:18: In file included from drivers/gpu/drm/i915/gt/uc/intel_uc.h:9: In file included from drivers/gpu/drm/i915/gt/uc/intel_guc.h:19: drivers/gpu/drm/i915/gt/uc/intel_uc_fw.h:13:2: error: embedding a #include directive within macro arguments is not supported #include "i915_vma.h" ^ drivers/gpu/drm/i915/intel_device_info.h:201:25: note: expansion of macro 'DEFINE_FLAG' requested here DEV_INFO_FOR_EACH_FLAG(DEFINE_FLAG); ^ In file included from drivers/gpu/drm/i915/i915_config.c:6: In file included from drivers/gpu/drm/i915/i915_drv.h:83: In file included from drivers/gpu/drm/i915/gt/intel_engine.h:18: In file included from drivers/gpu/drm/i915/gt/intel_gt_types.h:18: In file included from drivers/gpu/drm/i915/gt/uc/intel_uc.h:9: >> drivers/gpu/drm/i915/gt/uc/intel_guc.h:20:2: error: embedding a #include directive within macro arguments is not supported #include "i915_utils.h" ^ drivers/gpu/drm/i915/intel_device_info.h:201:25: note: expansion of macro 'DEFINE_FLAG' requested here DEV_INFO_FOR_EACH_FLAG(DEFINE_FLAG); ^ In file included from drivers/gpu/drm/i915/i915_config.c:6: In file included from drivers/gpu/drm/i915/i915_drv.h:83: In file included from drivers/gpu/drm/i915/gt/intel_engine.h:18: In file included from drivers/gpu/drm/i915/gt/intel_gt_types.h:18: In file included from drivers/gpu/drm/i915/gt/uc/intel_uc.h:9: drivers/gpu/drm/i915/gt/uc/intel_guc.h:21:2: error: embedding a #include directive within macro arguments is not supported #include "i915_vma.h" ^ drivers/gpu/drm/i915/intel_device_info.h:201:25: note: expansion of macro 'DEFINE_FLAG' requested here DEV_INFO_FOR_EACH_FLAG(DEFINE_FLAG); ^ In file included from drivers/gpu/drm/i915/i915_config.c:6: In file included from drivers/gpu/drm/i915/i915_drv.h:83: In file included from drivers/gpu/drm/i915/gt/intel_engine.h:18: In file included from drivers/gpu/drm/i915/gt/intel_gt_types.h:18: >> drivers/gpu/drm/i915/gt/uc/intel_uc.h:10:2: error: embedding a #include directive within macro arguments is not supported #include "intel_guc_rc.h" ^ drivers/gpu/drm/i915/intel_device_info.h:201:25: note: expansion of macro 'DEFINE_FLAG' requested here DEV_INFO_FOR_EACH_FLAG(DEFINE_FLAG); ^ In file included from drivers/gpu/drm/i915/i915_config.c:6: In file included from drivers/gpu/drm/i915/i915_drv.h:83: In file included from drivers/gpu/drm/i915/gt/intel_engine.h:18: In file included from drivers/gpu/drm/i915/gt/intel_gt_types.h:18: drivers/gpu/drm/i915/gt/uc/intel_uc.h:11:2: error: embedding a #include directive within macro arguments is not supported #include "intel_guc_submission.h" ^ drivers/gpu/drm/i915/intel_device_info.h:201:25: note: expansion of macro 'DEFINE_FLAG' requested here DEV_INFO_FOR_EACH_FLAG(DEFINE_FLAG); ^ In file included from drivers/gpu/drm/i915/i915_config.c:6: In file included from drivers/gpu/drm/i915/i915_drv.h:83: In file included from drivers/gpu/drm/i915/gt/intel_engine.h:18: In file included from drivers/gpu/drm/i915/gt/intel_gt_types.h:18: drivers/gpu/drm/i915/gt/uc/intel_uc.h:12:2: error: embedding a #include directive within macro arguments is not supported #include "intel_guc_slpc.h" ^ drivers/gpu/drm/i915/intel_device_info.h:201:25: note: expansion of macro 'DEFINE_FLAG' requested here DEV_INFO_FOR_EACH_FLAG(DEFINE_FLAG); ^ In file included from drivers/gpu/drm/i915/i915_config.c:6: In file included from drivers/gpu/drm/i915/i915_drv.h:83: In file included from drivers/gpu/drm/i915/gt/intel_engine.h:18: In file included from drivers/gpu/drm/i915/gt/intel_gt_types.h:18: drivers/gpu/drm/i915/gt/uc/intel_uc.h:13:2: error: embedding a #include directive within macro arguments is not supported #include "intel_huc.h" ^ drivers/gpu/drm/i915/intel_device_info.h:201:25: note: expansion of macro 'DEFINE_FLAG' requested here DEV_INFO_FOR_EACH_FLAG(DEFINE_FLAG); ^ In file included from drivers/gpu/drm/i915/i915_config.c:6: In file included from drivers/gpu/drm/i915/i915_drv.h:83: In file included from drivers/gpu/drm/i915/gt/intel_engine.h:18: In file included from drivers/gpu/drm/i915/gt/intel_gt_types.h:18: drivers/gpu/drm/i915/gt/uc/intel_uc.h:14:2: error: embedding a #include directive within macro arguments is not supported #include "i915_params.h" ^ drivers/gpu/drm/i915/intel_device_info.h:201:25: note: expansion of macro 'DEFINE_FLAG' requested here DEV_INFO_FOR_EACH_FLAG(DEFINE_FLAG); ^ In file included from drivers/gpu/drm/i915/i915_config.c:6: In file included from drivers/gpu/drm/i915/i915_drv.h:83: In file included from drivers/gpu/drm/i915/gt/intel_engine.h:18: >> drivers/gpu/drm/i915/gt/intel_gt_types.h:20:2: error: embedding a #include directive within macro arguments is not supported #include "i915_vma.h" ^ drivers/gpu/drm/i915/intel_device_info.h:201:25: note: expansion of macro 'DEFINE_FLAG' requested here DEV_INFO_FOR_EACH_FLAG(DEFINE_FLAG); ^ In file included from drivers/gpu/drm/i915/i915_config.c:6: In file included from drivers/gpu/drm/i915/i915_drv.h:83: In file included from drivers/gpu/drm/i915/gt/intel_engine.h:18: drivers/gpu/drm/i915/gt/intel_gt_types.h:21:2: error: embedding a #include directive within macro arguments is not supported #include "intel_engine_types.h" ^ drivers/gpu/drm/i915/intel_device_info.h:201:25: note: expansion of macro 'DEFINE_FLAG' requested here DEV_INFO_FOR_EACH_FLAG(DEFINE_FLAG); ^ In file included from drivers/gpu/drm/i915/i915_config.c:6: In file included from drivers/gpu/drm/i915/i915_drv.h:83: In file included from drivers/gpu/drm/i915/gt/intel_engine.h:18: drivers/gpu/drm/i915/gt/intel_gt_types.h:22:2: error: embedding a #include directive within macro arguments is not supported #include "intel_gt_buffer_pool_types.h" ^ drivers/gpu/drm/i915/intel_device_info.h:201:25: note: expansion of macro 'DEFINE_FLAG' requested here DEV_INFO_FOR_EACH_FLAG(DEFINE_FLAG); ^ In file included from drivers/gpu/drm/i915/i915_config.c:6: In file included from drivers/gpu/drm/i915/i915_drv.h:83: In file included from drivers/gpu/drm/i915/gt/intel_engine.h:18: drivers/gpu/drm/i915/gt/intel_gt_types.h:23:2: error: embedding a #include directive within macro arguments is not supported #include "intel_llc_types.h" ^ drivers/gpu/drm/i915/intel_device_info.h:201:25: note: expansion of macro 'DEFINE_FLAG' requested here DEV_INFO_FOR_EACH_FLAG(DEFINE_FLAG); ^ In file included from drivers/gpu/drm/i915/i915_config.c:6: In file included from drivers/gpu/drm/i915/i915_drv.h:83: In file included from drivers/gpu/drm/i915/gt/intel_engine.h:18: drivers/gpu/drm/i915/gt/intel_gt_types.h:24:2: error: embedding a #include directive within macro arguments is not supported #include "intel_reset_types.h" ^ drivers/gpu/drm/i915/intel_device_info.h:201:25: note: expansion of macro 'DEFINE_FLAG' requested here DEV_INFO_FOR_EACH_FLAG(DEFINE_FLAG); ^ In file included from drivers/gpu/drm/i915/i915_config.c:6: In file included from drivers/gpu/drm/i915/i915_drv.h:83: In file included from drivers/gpu/drm/i915/gt/intel_engine.h:18: drivers/gpu/drm/i915/gt/intel_gt_types.h:25:2: error: embedding a #include directive within macro arguments is not supported #include "intel_rc6_types.h" ^ drivers/gpu/drm/i915/intel_device_info.h:201:25: note: expansion of macro 'DEFINE_FLAG' requested here DEV_INFO_FOR_EACH_FLAG(DEFINE_FLAG); ^ In file included from drivers/gpu/drm/i915/i915_config.c:6: In file included from drivers/gpu/drm/i915/i915_drv.h:83: In file included from drivers/gpu/drm/i915/gt/intel_engine.h:18: drivers/gpu/drm/i915/gt/intel_gt_types.h:26:2: error: embedding a #include directive within macro arguments is not supported #include "intel_rps_types.h" ^ drivers/gpu/drm/i915/intel_device_info.h:201:25: note: expansion of macro 'DEFINE_FLAG' requested here DEV_INFO_FOR_EACH_FLAG(DEFINE_FLAG); ^ In file included from drivers/gpu/drm/i915/i915_config.c:6: In file included from drivers/gpu/drm/i915/i915_drv.h:83: In file included from drivers/gpu/drm/i915/gt/intel_engine.h:18: drivers/gpu/drm/i915/gt/intel_gt_types.h:27:2: error: embedding a #include directive within macro arguments is not supported #include "intel_migrate_types.h" ^ drivers/gpu/drm/i915/intel_device_info.h:201:25: note: expansion of macro 'DEFINE_FLAG' requested here DEV_INFO_FOR_EACH_FLAG(DEFINE_FLAG); ^ In file included from drivers/gpu/drm/i915/i915_config.c:6: In file included from drivers/gpu/drm/i915/i915_drv.h:83: In file included from drivers/gpu/drm/i915/gt/intel_engine.h:18: drivers/gpu/drm/i915/gt/intel_gt_types.h:28:2: error: embedding a #include directive within macro arguments is not supported #include "intel_wakeref.h" ^ drivers/gpu/drm/i915/intel_device_info.h:201:25: note: expansion of macro 'DEFINE_FLAG' requested here DEV_INFO_FOR_EACH_FLAG(DEFINE_FLAG); ^ In file included from drivers/gpu/drm/i915/i915_config.c:6: In file included from drivers/gpu/drm/i915/i915_drv.h:83: In file included from drivers/gpu/drm/i915/gt/intel_engine.h:18: drivers/gpu/drm/i915/gt/intel_gt_types.h:29:2: error: embedding a #include directive within macro arguments is not supported #include "pxp/intel_pxp_types.h" ^ drivers/gpu/drm/i915/intel_device_info.h:201:25: note: expansion of macro 'DEFINE_FLAG' requested here DEV_INFO_FOR_EACH_FLAG(DEFINE_FLAG); ^ fatal error: too many errors emitted, stopping now [-ferror-limit=] 20 errors generated. -- In file included from drivers/gpu/drm/i915/gt/uc/intel_uc_debugfs.c:12: In file included from drivers/gpu/drm/i915/gt/uc/intel_uc.h:9: In file included from drivers/gpu/drm/i915/gt/uc/intel_guc.h:19: >> drivers/gpu/drm/i915/gt/uc/intel_uc_fw.h:12:2: error: embedding a #include directive within macro arguments is not supported #include "i915_gem.h" ^ drivers/gpu/drm/i915/intel_device_info.h:201:25: note: expansion of macro 'DEFINE_FLAG' requested here DEV_INFO_FOR_EACH_FLAG(DEFINE_FLAG); ^ In file included from drivers/gpu/drm/i915/gt/uc/intel_uc_debugfs.c:12: In file included from drivers/gpu/drm/i915/gt/uc/intel_uc.h:9: In file included from drivers/gpu/drm/i915/gt/uc/intel_guc.h:19: drivers/gpu/drm/i915/gt/uc/intel_uc_fw.h:13:2: error: embedding a #include directive within macro arguments is not supported #include "i915_vma.h" ^ drivers/gpu/drm/i915/intel_device_info.h:201:25: note: expansion of macro 'DEFINE_FLAG' requested here DEV_INFO_FOR_EACH_FLAG(DEFINE_FLAG); ^ In file included from drivers/gpu/drm/i915/gt/uc/intel_uc_debugfs.c:12: In file included from drivers/gpu/drm/i915/gt/uc/intel_uc.h:9: >> drivers/gpu/drm/i915/gt/uc/intel_guc.h:20:2: error: embedding a #include directive within macro arguments is not supported #include "i915_utils.h" ^ drivers/gpu/drm/i915/intel_device_info.h:201:25: note: expansion of macro 'DEFINE_FLAG' requested here DEV_INFO_FOR_EACH_FLAG(DEFINE_FLAG); ^ In file included from drivers/gpu/drm/i915/gt/uc/intel_uc_debugfs.c:12: In file included from drivers/gpu/drm/i915/gt/uc/intel_uc.h:9: drivers/gpu/drm/i915/gt/uc/intel_guc.h:21:2: error: embedding a #include directive within macro arguments is not supported #include "i915_vma.h" ^ drivers/gpu/drm/i915/intel_device_info.h:201:25: note: expansion of macro 'DEFINE_FLAG' requested here DEV_INFO_FOR_EACH_FLAG(DEFINE_FLAG); ^ In file included from drivers/gpu/drm/i915/gt/uc/intel_uc_debugfs.c:12: >> drivers/gpu/drm/i915/gt/uc/intel_uc.h:10:2: error: embedding a #include directive within macro arguments is not supported #include "intel_guc_rc.h" ^ drivers/gpu/drm/i915/intel_device_info.h:201:25: note: expansion of macro 'DEFINE_FLAG' requested here DEV_INFO_FOR_EACH_FLAG(DEFINE_FLAG); ^ In file included from drivers/gpu/drm/i915/gt/uc/intel_uc_debugfs.c:12: drivers/gpu/drm/i915/gt/uc/intel_uc.h:11:2: error: embedding a #include directive within macro arguments is not supported #include "intel_guc_submission.h" ^ drivers/gpu/drm/i915/intel_device_info.h:201:25: note: expansion of macro 'DEFINE_FLAG' requested here DEV_INFO_FOR_EACH_FLAG(DEFINE_FLAG); ^ In file included from drivers/gpu/drm/i915/gt/uc/intel_uc_debugfs.c:12: drivers/gpu/drm/i915/gt/uc/intel_uc.h:12:2: error: embedding a #include directive within macro arguments is not supported #include "intel_guc_slpc.h" ^ drivers/gpu/drm/i915/intel_device_info.h:201:25: note: expansion of macro 'DEFINE_FLAG' requested here DEV_INFO_FOR_EACH_FLAG(DEFINE_FLAG); ^ In file included from drivers/gpu/drm/i915/gt/uc/intel_uc_debugfs.c:12: drivers/gpu/drm/i915/gt/uc/intel_uc.h:13:2: error: embedding a #include directive within macro arguments is not supported #include "intel_huc.h" ^ drivers/gpu/drm/i915/intel_device_info.h:201:25: note: expansion of macro 'DEFINE_FLAG' requested here DEV_INFO_FOR_EACH_FLAG(DEFINE_FLAG); ^ In file included from drivers/gpu/drm/i915/gt/uc/intel_uc_debugfs.c:12: drivers/gpu/drm/i915/gt/uc/intel_uc.h:14:2: error: embedding a #include directive within macro arguments is not supported #include "i915_params.h" ^ drivers/gpu/drm/i915/intel_device_info.h:201:25: note: expansion of macro 'DEFINE_FLAG' requested here DEV_INFO_FOR_EACH_FLAG(DEFINE_FLAG); ^ >> drivers/gpu/drm/i915/gt/uc/intel_uc_debugfs.c:13:2: error: embedding a #include directive within macro arguments is not supported #include "intel_uc_debugfs.h" ^ drivers/gpu/drm/i915/intel_device_info.h:201:25: note: expansion of macro 'DEFINE_FLAG' requested here DEV_INFO_FOR_EACH_FLAG(DEFINE_FLAG); ^ >> drivers/gpu/drm/i915/intel_device_info.h:201:25: error: unterminated function-like macro invocation DEV_INFO_FOR_EACH_FLAG(DEFINE_FLAG); ^ drivers/gpu/drm/i915/intel_device_info.h:200:9: note: macro 'DEFINE_FLAG' defined here #define DEFINE_FLAG(name) u8 name:1 ^ >> drivers/gpu/drm/i915/gt/uc/intel_uc_debugfs.c:59:2: error: expected '}' } ^ drivers/gpu/drm/i915/intel_device_info.h:179:26: note: to match this '{' struct intel_device_info { ^ >> drivers/gpu/drm/i915/gt/uc/intel_uc_debugfs.c:59:2: error: expected ';' after struct } ^ 13 errors generated. -- In file included from drivers/gpu/drm/i915/gt/uc/intel_uc_fw.c:11: >> drivers/gpu/drm/i915/gt/uc/intel_uc_fw.h:12:2: error: embedding a #include directive within macro arguments is not supported #include "i915_gem.h" ^ drivers/gpu/drm/i915/intel_device_info.h:201:25: note: expansion of macro 'DEFINE_FLAG' requested here DEV_INFO_FOR_EACH_FLAG(DEFINE_FLAG); ^ In file included from drivers/gpu/drm/i915/gt/uc/intel_uc_fw.c:11: drivers/gpu/drm/i915/gt/uc/intel_uc_fw.h:13:2: error: embedding a #include directive within macro arguments is not supported #include "i915_vma.h" ^ drivers/gpu/drm/i915/intel_device_info.h:201:25: note: expansion of macro 'DEFINE_FLAG' requested here DEV_INFO_FOR_EACH_FLAG(DEFINE_FLAG); ^ >> drivers/gpu/drm/i915/gt/uc/intel_uc_fw.c:12:2: error: embedding a #include directive within macro arguments is not supported #include "intel_uc_fw_abi.h" ^ drivers/gpu/drm/i915/intel_device_info.h:201:25: note: expansion of macro 'DEFINE_FLAG' requested here DEV_INFO_FOR_EACH_FLAG(DEFINE_FLAG); ^ drivers/gpu/drm/i915/gt/uc/intel_uc_fw.c:13:2: error: embedding a #include directive within macro arguments is not supported #include "i915_drv.h" ^ drivers/gpu/drm/i915/intel_device_info.h:201:25: note: expansion of macro 'DEFINE_FLAG' requested here DEV_INFO_FOR_EACH_FLAG(DEFINE_FLAG); ^ >> drivers/gpu/drm/i915/intel_device_info.h:201:25: error: unterminated function-like macro invocation DEV_INFO_FOR_EACH_FLAG(DEFINE_FLAG); ^ drivers/gpu/drm/i915/intel_device_info.h:200:9: note: macro 'DEFINE_FLAG' defined here #define DEFINE_FLAG(name) u8 name:1 ^ >> drivers/gpu/drm/i915/gt/uc/intel_uc_fw.c:794:2: error: expected '}' } ^ drivers/gpu/drm/i915/intel_device_info.h:179:26: note: to match this '{' struct intel_device_info { ^ >> drivers/gpu/drm/i915/gt/uc/intel_uc_fw.c:794:2: error: expected ';' after struct } ^ 7 errors generated. .. vim +201 drivers/gpu/drm/i915/intel_device_info.h a5b7ef27da60c90 José Roberto de Souza 2021-10-19 178 b978520d1e35b99 Michal Wajdeczko 2017-12-21 179 struct intel_device_info { a5b7ef27da60c90 José Roberto de Souza 2021-10-19 180 struct ip_version graphics; a5b7ef27da60c90 José Roberto de Souza 2021-10-19 181 struct ip_version media; 93babb061e2ab5e Lucas De Marchi 2021-04-12 182 792592e72aba416 Daniele Ceraolo Spurio 2020-07-07 183 intel_engine_mask_t platform_engine_mask; /* Engines supported by the HW */ b978520d1e35b99 Michal Wajdeczko 2017-12-21 184 b978520d1e35b99 Michal Wajdeczko 2017-12-21 185 enum intel_platform platform; b978520d1e35b99 Michal Wajdeczko 2017-12-21 186 31a02eb70b8d9e6 Michael J. Ruhl 2020-04-17 187 unsigned int dma_mask_size; /* available DMA address bits */ 31a02eb70b8d9e6 Michael J. Ruhl 2020-04-17 188 cbecbccaa120fd9 Chris Wilson 2019-03-14 189 enum intel_ppgtt_type ppgtt_type; cbecbccaa120fd9 Chris Wilson 2019-03-14 190 unsigned int ppgtt_size; /* log2, e.g. 31/32/48 bits */ cbecbccaa120fd9 Chris Wilson 2019-03-14 191 4552f50a439c36f Tvrtko Ursulin 2018-02-22 192 unsigned int page_sizes; /* page sizes supported by the HW */ 3aae9d08532c8e5 Abdiel Janulgue 2019-10-18 193 3aae9d08532c8e5 Abdiel Janulgue 2019-10-18 194 u32 memory_regions; /* regions supported by the HW */ 4552f50a439c36f Tvrtko Ursulin 2018-02-22 195 b978520d1e35b99 Michal Wajdeczko 2017-12-21 196 u32 display_mmio_offset; b978520d1e35b99 Michal Wajdeczko 2017-12-21 197 938c778f6a22fa1 John Harrison 2021-07-23 198 u8 gt; /* GT number, 0 if undefined */ 938c778f6a22fa1 John Harrison 2021-07-23 199 b978520d1e35b99 Michal Wajdeczko 2017-12-21 200 #define DEFINE_FLAG(name) u8 name:1 b978520d1e35b99 Michal Wajdeczko 2017-12-21 @201 DEV_INFO_FOR_EACH_FLAG(DEFINE_FLAG); b978520d1e35b99 Michal Wajdeczko 2017-12-21 202 #undef DEFINE_FLAG d53db442db36fdb José Roberto de Souza 2018-11-30 203 d53db442db36fdb José Roberto de Souza 2018-11-30 204 struct { 4df9c1ae7a4bb93 Lucas De Marchi 2021-04-12 205 u8 ver; a5b7ef27da60c90 José Roberto de Souza 2021-10-19 206 u8 rel; 01eb15c9165e416 Matt Roper 2021-03-19 207 6678916dfa01251 Ville Syrjälä 2021-12-10 208 u8 pipe_mask; 6678916dfa01251 Ville Syrjälä 2021-12-10 209 u8 cpu_transcoder_mask; 6678916dfa01251 Ville Syrjälä 2021-12-10 210 u8 abox_mask; 6678916dfa01251 Ville Syrjälä 2021-12-10 211 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
Hi Ramalingam, Thank you for the patch! Yet something to improve: [auto build test ERROR on drm-intel/for-linux-next] [also build test ERROR on drm-tip/drm-tip drm-exynos/exynos-drm-next drm/drm-next next-20220121] [cannot apply to v5.16] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use '--base' as documented in https://git-scm.com/docs/git-format-patch] url: https://github.com/0day-ci/linux/commits/Ramalingam-C/drm-i915-Add-needs_compact_pt-flag/20220121-002256 base: git://anongit.freedesktop.org/drm-intel for-linux-next config: x86_64-randconfig-c002 (https://download.01.org/0day-ci/archive/20220121/202201211550.31D9jnOx-lkp@intel.com/config) compiler: gcc-9 (Debian 9.3.0-22) 9.3.0 reproduce (this is a W=1 build): # https://github.com/0day-ci/linux/commit/cf1a6660ac07b3b3618b35dccab57042d592ea2c git remote add linux-review https://github.com/0day-ci/linux git fetch --no-tags linux-review Ramalingam-C/drm-i915-Add-needs_compact_pt-flag/20220121-002256 git checkout cf1a6660ac07b3b3618b35dccab57042d592ea2c # save the config file to linux build tree mkdir build_dir make W=1 O=build_dir ARCH=x86_64 SHELL=/bin/bash drivers/gpu/ If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <lkp@intel.com> All errors (new ones prefixed by >>): In file included from drivers/gpu/drm/i915/gt/uc/intel_uc_fw.h:11, from drivers/gpu/drm/i915/gt/uc/intel_guc.h:19, from drivers/gpu/drm/i915/gt/uc/intel_uc.h:9, from drivers/gpu/drm/i915/gt/intel_gt_types.h:18, from drivers/gpu/drm/i915/gt/intel_engine.h:18, from drivers/gpu/drm/i915/i915_drv.h:83, from drivers/gpu/drm/i915/display/intel_cdclk.h:11, from drivers/gpu/drm/i915/i915_driver.c:50: >> drivers/gpu/drm/i915/intel_device_info.h:274: error: unterminated argument list invoking macro "DEFINE_FLAG" 274 | #endif | >> drivers/gpu/drm/i915/intel_device_info.h:201:25: error: expected specifier-qualifier-list before 'DEFINE_FLAG' 201 | DEV_INFO_FOR_EACH_FLAG(DEFINE_FLAG); | ^~~~~~~~~~~ drivers/gpu/drm/i915/intel_device_info.h:130:2: note: in definition of macro 'DEV_INFO_FOR_EACH_FLAG' 130 | func(needs_compact_pt; \ | ^~~~ -- In file included from drivers/gpu/drm/i915/gt/uc/intel_uc_fw.h:11, from drivers/gpu/drm/i915/gt/uc/intel_guc.h:19, from drivers/gpu/drm/i915/gt/uc/intel_uc.h:9, from drivers/gpu/drm/i915/gt/intel_gt_types.h:18, from drivers/gpu/drm/i915/gt/intel_engine.h:18, from drivers/gpu/drm/i915/i915_drv.h:83, from drivers/gpu/drm/i915/display/intel_cdclk.h:11, from drivers/gpu/drm/i915/intel_device_info.c:28: >> drivers/gpu/drm/i915/intel_device_info.h:274: error: unterminated argument list invoking macro "DEFINE_FLAG" 274 | #endif | >> drivers/gpu/drm/i915/intel_device_info.h:201:25: error: expected specifier-qualifier-list before 'DEFINE_FLAG' 201 | DEV_INFO_FOR_EACH_FLAG(DEFINE_FLAG); | ^~~~~~~~~~~ drivers/gpu/drm/i915/intel_device_info.h:130:2: note: in definition of macro 'DEV_INFO_FOR_EACH_FLAG' 130 | func(needs_compact_pt; \ | ^~~~ >> drivers/gpu/drm/i915/intel_device_info.c:396: error: unterminated argument list invoking macro "PRINT_FLAG" 396 | } | vim +/DEFINE_FLAG +274 drivers/gpu/drm/i915/intel_device_info.h a5b7ef27da60c9 José Roberto de Souza 2021-10-19 178 b978520d1e35b9 Michal Wajdeczko 2017-12-21 179 struct intel_device_info { a5b7ef27da60c9 José Roberto de Souza 2021-10-19 180 struct ip_version graphics; a5b7ef27da60c9 José Roberto de Souza 2021-10-19 181 struct ip_version media; 93babb061e2ab5 Lucas De Marchi 2021-04-12 182 792592e72aba41 Daniele Ceraolo Spurio 2020-07-07 183 intel_engine_mask_t platform_engine_mask; /* Engines supported by the HW */ b978520d1e35b9 Michal Wajdeczko 2017-12-21 184 b978520d1e35b9 Michal Wajdeczko 2017-12-21 185 enum intel_platform platform; b978520d1e35b9 Michal Wajdeczko 2017-12-21 186 31a02eb70b8d9e Michael J. Ruhl 2020-04-17 187 unsigned int dma_mask_size; /* available DMA address bits */ 31a02eb70b8d9e Michael J. Ruhl 2020-04-17 188 cbecbccaa120fd Chris Wilson 2019-03-14 189 enum intel_ppgtt_type ppgtt_type; cbecbccaa120fd Chris Wilson 2019-03-14 190 unsigned int ppgtt_size; /* log2, e.g. 31/32/48 bits */ cbecbccaa120fd Chris Wilson 2019-03-14 191 4552f50a439c36 Tvrtko Ursulin 2018-02-22 192 unsigned int page_sizes; /* page sizes supported by the HW */ 3aae9d08532c8e Abdiel Janulgue 2019-10-18 193 3aae9d08532c8e Abdiel Janulgue 2019-10-18 194 u32 memory_regions; /* regions supported by the HW */ 4552f50a439c36 Tvrtko Ursulin 2018-02-22 195 b978520d1e35b9 Michal Wajdeczko 2017-12-21 196 u32 display_mmio_offset; b978520d1e35b9 Michal Wajdeczko 2017-12-21 197 938c778f6a22fa John Harrison 2021-07-23 198 u8 gt; /* GT number, 0 if undefined */ 938c778f6a22fa John Harrison 2021-07-23 199 b978520d1e35b9 Michal Wajdeczko 2017-12-21 200 #define DEFINE_FLAG(name) u8 name:1 b978520d1e35b9 Michal Wajdeczko 2017-12-21 @201 DEV_INFO_FOR_EACH_FLAG(DEFINE_FLAG); b978520d1e35b9 Michal Wajdeczko 2017-12-21 202 #undef DEFINE_FLAG d53db442db36fd José Roberto de Souza 2018-11-30 203 d53db442db36fd José Roberto de Souza 2018-11-30 204 struct { 4df9c1ae7a4bb9 Lucas De Marchi 2021-04-12 205 u8 ver; a5b7ef27da60c9 José Roberto de Souza 2021-10-19 206 u8 rel; 01eb15c9165e41 Matt Roper 2021-03-19 207 6678916dfa0125 Ville Syrjälä 2021-12-10 208 u8 pipe_mask; 6678916dfa0125 Ville Syrjälä 2021-12-10 209 u8 cpu_transcoder_mask; 6678916dfa0125 Ville Syrjälä 2021-12-10 210 u8 abox_mask; 6678916dfa0125 Ville Syrjälä 2021-12-10 211 d53db442db36fd José Roberto de Souza 2018-11-30 212 #define DEFINE_FLAG(name) u8 name:1 d53db442db36fd José Roberto de Souza 2018-11-30 213 DEV_INFO_DISPLAY_FOR_EACH_FLAG(DEFINE_FLAG); d53db442db36fd José Roberto de Souza 2018-11-30 214 #undef DEFINE_FLAG d53db442db36fd José Roberto de Souza 2018-11-30 215 } display; d53db442db36fd José Roberto de Souza 2018-11-30 216 708de86e10e593 Ville Syrjälä 2021-04-16 217 struct { 708de86e10e593 Ville Syrjälä 2021-04-16 218 u16 size; /* in blocks */ 578e6edec45cf8 Ville Syrjälä 2021-04-16 219 u8 slice_mask; 708de86e10e593 Ville Syrjälä 2021-04-16 220 } dbuf; b978520d1e35b9 Michal Wajdeczko 2017-12-21 221 b978520d1e35b9 Michal Wajdeczko 2017-12-21 222 /* Register offsets for the various display pipes and transcoders */ b978520d1e35b9 Michal Wajdeczko 2017-12-21 223 int pipe_offsets[I915_MAX_TRANSCODERS]; b978520d1e35b9 Michal Wajdeczko 2017-12-21 224 int trans_offsets[I915_MAX_TRANSCODERS]; b978520d1e35b9 Michal Wajdeczko 2017-12-21 225 int cursor_offsets[I915_MAX_PIPES]; b978520d1e35b9 Michal Wajdeczko 2017-12-21 226 0258404f9d3859 Jani Nikula 2018-12-31 227 struct color_luts { 89a72304f2f3d4 Shashank Sharma 2019-06-12 228 u32 degamma_lut_size; 89a72304f2f3d4 Shashank Sharma 2019-06-12 229 u32 gamma_lut_size; e4c0d5314dede3 Matt Roper 2019-01-30 230 u32 degamma_lut_tests; e4c0d5314dede3 Matt Roper 2019-01-30 231 u32 gamma_lut_tests; 0258404f9d3859 Jani Nikula 2018-12-31 232 } color; 0258404f9d3859 Jani Nikula 2018-12-31 233 }; 0258404f9d3859 Jani Nikula 2018-12-31 234 0258404f9d3859 Jani Nikula 2018-12-31 235 struct intel_runtime_info { 805446c8347c9e Tvrtko Ursulin 2019-03-27 236 /* 805446c8347c9e Tvrtko Ursulin 2019-03-27 237 * Platform mask is used for optimizing or-ed IS_PLATFORM calls into 805446c8347c9e Tvrtko Ursulin 2019-03-27 238 * into single runtime conditionals, and also to provide groundwork 805446c8347c9e Tvrtko Ursulin 2019-03-27 239 * for future per platform, or per SKU build optimizations. 805446c8347c9e Tvrtko Ursulin 2019-03-27 240 * 805446c8347c9e Tvrtko Ursulin 2019-03-27 241 * Array can be extended when necessary if the corresponding 805446c8347c9e Tvrtko Ursulin 2019-03-27 242 * BUILD_BUG_ON is hit. 805446c8347c9e Tvrtko Ursulin 2019-03-27 243 */ 805446c8347c9e Tvrtko Ursulin 2019-03-27 244 u32 platform_mask[2]; 805446c8347c9e Tvrtko Ursulin 2019-03-27 245 0258404f9d3859 Jani Nikula 2018-12-31 246 u16 device_id; 0258404f9d3859 Jani Nikula 2018-12-31 247 0258404f9d3859 Jani Nikula 2018-12-31 248 u8 num_sprites[I915_MAX_PIPES]; 0258404f9d3859 Jani Nikula 2018-12-31 249 u8 num_scalers[I915_MAX_PIPES]; 0258404f9d3859 Jani Nikula 2018-12-31 250 b04002f4dbee03 Chris Wilson 2020-02-16 251 u32 rawclk_freq; 439c8dccb6a7f7 Jani Nikula 2021-03-26 252 5644dc0a75674d Jani Nikula 2021-03-26 253 struct intel_step_info step; b978520d1e35b9 Michal Wajdeczko 2017-12-21 254 }; b978520d1e35b9 Michal Wajdeczko 2017-12-21 255 3fed180812edeb Chris Wilson 2018-02-07 256 struct intel_driver_caps { 3fed180812edeb Chris Wilson 2018-02-07 257 unsigned int scheduler; 481827b441674b Chris Wilson 2018-07-06 258 bool has_logical_contexts:1; 3fed180812edeb Chris Wilson 2018-02-07 259 }; 3fed180812edeb Chris Wilson 2018-02-07 260 b978520d1e35b9 Michal Wajdeczko 2017-12-21 261 const char *intel_platform_name(enum intel_platform platform); b978520d1e35b9 Michal Wajdeczko 2017-12-21 262 805446c8347c9e Tvrtko Ursulin 2019-03-27 263 void intel_device_info_subplatform_init(struct drm_i915_private *dev_priv); 1400cc7e0dcdf1 Jani Nikula 2018-12-31 264 void intel_device_info_runtime_init(struct drm_i915_private *dev_priv); 7240497850f76e Chris Wilson 2019-12-07 265 7240497850f76e Chris Wilson 2019-12-07 266 void intel_device_info_print_static(const struct intel_device_info *info, b978520d1e35b9 Michal Wajdeczko 2017-12-21 267 struct drm_printer *p); 7240497850f76e Chris Wilson 2019-12-07 268 void intel_device_info_print_runtime(const struct intel_runtime_info *info, 5fbbe8d4e10235 Michal Wajdeczko 2017-12-21 269 struct drm_printer *p); b978520d1e35b9 Michal Wajdeczko 2017-12-21 270 3fed180812edeb Chris Wilson 2018-02-07 271 void intel_driver_caps_print(const struct intel_driver_caps *caps, 3fed180812edeb Chris Wilson 2018-02-07 272 struct drm_printer *p); 3fed180812edeb Chris Wilson 2018-02-07 273 b978520d1e35b9 Michal Wajdeczko 2017-12-21 @274 #endif --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h index 890f1f6fbc49..23f4713005bb 100644 --- a/drivers/gpu/drm/i915/i915_drv.h +++ b/drivers/gpu/drm/i915/i915_drv.h @@ -1512,12 +1512,16 @@ IS_SUBPLATFORM(const struct drm_i915_private *i915, /* * Set this flag, when platform requires 64K GTT page sizes or larger for - * device local memory access. Also this flag implies that we require or - * at least support the compact PT layout for the ppGTT when using the 64K - * GTT pages. + * device local memory access. */ #define HAS_64K_PAGES(dev_priv) (INTEL_INFO(dev_priv)->has_64k_pages) +/* Set this flag when platform doesn't allow both 64k pages and 4k pages in + * the same PT. this flag means we need to support compact PT layout for the + * ppGTT when using the 64K GTT pages. + */ +#define NEEDS_COMPACT_PT(dev_priv) (INTEL_INFO(dev_priv)->needs_compact_pt) + #define HAS_IPC(dev_priv) (INTEL_INFO(dev_priv)->display.has_ipc) #define HAS_REGION(i915, i) (INTEL_INFO(i915)->memory_regions & (i)) diff --git a/drivers/gpu/drm/i915/i915_pci.c b/drivers/gpu/drm/i915/i915_pci.c index 8261b6455747..3e7555ce6894 100644 --- a/drivers/gpu/drm/i915/i915_pci.c +++ b/drivers/gpu/drm/i915/i915_pci.c @@ -1028,6 +1028,7 @@ static const struct intel_device_info xehpsdv_info = { PLATFORM(INTEL_XEHPSDV), .display = { }, .has_64k_pages = 1, + .needs_compact_pt = 1, .platform_engine_mask = BIT(RCS0) | BIT(BCS0) | BIT(VECS0) | BIT(VECS1) | BIT(VECS2) | BIT(VECS3) | @@ -1046,6 +1047,7 @@ static const struct intel_device_info dg2_info = { .media.rel = 55, PLATFORM(INTEL_DG2), .has_64k_pages = 1, + .needs_compact_pt = 1, .platform_engine_mask = BIT(RCS0) | BIT(BCS0) | BIT(VECS0) | BIT(VECS1) | diff --git a/drivers/gpu/drm/i915/intel_device_info.h b/drivers/gpu/drm/i915/intel_device_info.h index 3699b1c539ea..8ff676f49471 100644 --- a/drivers/gpu/drm/i915/intel_device_info.h +++ b/drivers/gpu/drm/i915/intel_device_info.h @@ -130,6 +130,7 @@ enum intel_ppgtt_type { /* Keep has_* in alphabetical order */ \ func(has_64bit_reloc); \ func(has_64k_pages); \ + func(needs_compact_pt; \ func(gpu_reset_clobbers_display); \ func(has_reset_engine); \ func(has_global_mocs); \
Add a new platform flag, needs_compact_pt, to mark the requirement of compact pt layout support for the ppGTT when using 64K GTT pages. With this flag has_64k_pages will only indicate requirement of 64K GTT page sizes or larger for device local memory access. Suggested-by: Matthew Auld <matthew.auld@intel.com> Signed-off-by: Ramalingam C <ramalingam.c@intel.com> cc: Robert Beckett <bob.beckett@collabora.com> --- drivers/gpu/drm/i915/i915_drv.h | 10 +++++++--- drivers/gpu/drm/i915/i915_pci.c | 2 ++ drivers/gpu/drm/i915/intel_device_info.h | 1 + 3 files changed, 10 insertions(+), 3 deletions(-)