diff mbox series

drm/i915: Add needs_compact_pt flag

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

Commit Message

Ramalingam C Jan. 20, 2022, 4:21 p.m. UTC
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(-)

Comments

Bob Beckett Jan. 20, 2022, 4:42 p.m. UTC | #1
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); \
>
Ramalingam C Jan. 20, 2022, 6:47 p.m. UTC | #2
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); \
> >
kernel test robot Jan. 21, 2022, 12:16 a.m. UTC | #3
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
kernel test robot Jan. 21, 2022, 8:08 a.m. UTC | #4
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 mbox series

Patch

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); \