From: Tvrtko Ursulin <tvrtko.ursu...@intel.com> Signed-off-by: Tvrtko Ursulin <tvrtko.ursu...@intel.com> --- drivers/gpu/drm/i915/Kconfig | 5 + drivers/gpu/drm/i915/Kconfig.platforms | 7 ++ drivers/gpu/drm/i915/i915_drv.h | 126 +++++++++++++++---------- drivers/gpu/drm/i915/i915_pci.c | 44 ++++++++- 4 files changed, 129 insertions(+), 53 deletions(-) create mode 100644 drivers/gpu/drm/i915/Kconfig.platforms
diff --git a/drivers/gpu/drm/i915/Kconfig b/drivers/gpu/drm/i915/Kconfig index 2ac220bfd0ed..e8c2549ca433 100644 --- a/drivers/gpu/drm/i915/Kconfig +++ b/drivers/gpu/drm/i915/Kconfig @@ -145,6 +145,11 @@ config DRM_I915_PXP protected session and manage the status of the alive software session, as well as its life cycle. +menu "Platform support" +depends on DRM_I915 +source "drivers/gpu/drm/i915/Kconfig.platforms" +endmenu + menu "drm/i915 Debugging" depends on DRM_I915 depends on EXPERT diff --git a/drivers/gpu/drm/i915/Kconfig.platforms b/drivers/gpu/drm/i915/Kconfig.platforms new file mode 100644 index 000000000000..731be430cfad --- /dev/null +++ b/drivers/gpu/drm/i915/Kconfig.platforms @@ -0,0 +1,7 @@ +config DRM_I915_INTEGRATED_GPU_SUPPORT + bool "Support integrated GPUs" + default y + depends on DRM_I915 + help + Include support for integrated GPUs. + diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h index 00e7594b59c9..1d22d72163c1 100644 --- a/drivers/gpu/drm/i915/i915_drv.h +++ b/drivers/gpu/drm/i915/i915_drv.h @@ -1118,8 +1118,26 @@ static inline struct intel_gt *to_gt(struct drm_i915_private *i915) #define GRAPHICS_VER(i915) (INTEL_INFO(i915)->graphics.ver) #define GRAPHICS_VER_FULL(i915) IP_VER(INTEL_INFO(i915)->graphics.ver, \ INTEL_INFO(i915)->graphics.rel) + +#ifdef CONFIG_DRM_I915_INTEGRATED_GPU_SUPPORT #define IS_GRAPHICS_VER(i915, from, until) \ (GRAPHICS_VER(i915) >= (from) && GRAPHICS_VER(i915) <= (until)) +#else +#define IS_GRAPHICS_VER(i915, from, until) \ +({ \ + const unsigned int s_ = 12; \ + const unsigned int e_ = UINT_MAX; \ + unsigned int res_; \ + \ + if ((s_ > (from) ? (s_): (from)) <= ((e_) < (until)? (e_): (until))) \ + res_ = GRAPHICS_VER(i915) >= (from) && \ + GRAPHICS_VER(i915) <= (until); \ + else \ + res_ = 0; \ + \ + (res_); \ +}) +#endif #define MEDIA_VER(i915) (INTEL_INFO(i915)->media.ver) #define MEDIA_VER_FULL(i915) IP_VER(INTEL_INFO(i915)->media.arch, \ @@ -1213,49 +1231,53 @@ IS_SUBPLATFORM(const struct drm_i915_private *i915, return ((mask << (msb - pb)) & (mask << (msb - s))) & BIT(msb); } +#define IS_IGP_PLATFORM(dev_priv, p) \ + (IS_ENABLED(CONFIG_DRM_I915_INTEGRATED_GPU_SUPPORT) && \ + IS_PLATFORM(dev_priv, p)) + #define IS_MOBILE(dev_priv) (INTEL_INFO(dev_priv)->is_mobile) #define IS_DGFX(dev_priv) (INTEL_INFO(dev_priv)->is_dgfx) -#define IS_I830(dev_priv) IS_PLATFORM(dev_priv, INTEL_I830) -#define IS_I845G(dev_priv) IS_PLATFORM(dev_priv, INTEL_I845G) -#define IS_I85X(dev_priv) IS_PLATFORM(dev_priv, INTEL_I85X) -#define IS_I865G(dev_priv) IS_PLATFORM(dev_priv, INTEL_I865G) -#define IS_I915G(dev_priv) IS_PLATFORM(dev_priv, INTEL_I915G) -#define IS_I915GM(dev_priv) IS_PLATFORM(dev_priv, INTEL_I915GM) -#define IS_I945G(dev_priv) IS_PLATFORM(dev_priv, INTEL_I945G) -#define IS_I945GM(dev_priv) IS_PLATFORM(dev_priv, INTEL_I945GM) -#define IS_I965G(dev_priv) IS_PLATFORM(dev_priv, INTEL_I965G) -#define IS_I965GM(dev_priv) IS_PLATFORM(dev_priv, INTEL_I965GM) -#define IS_G45(dev_priv) IS_PLATFORM(dev_priv, INTEL_G45) -#define IS_GM45(dev_priv) IS_PLATFORM(dev_priv, INTEL_GM45) +#define IS_I830(dev_priv) IS_IGP_PLATFORM(dev_priv, INTEL_I830) +#define IS_I845G(dev_priv) IS_IGP_PLATFORM(dev_priv, INTEL_I845G) +#define IS_I85X(dev_priv) IS_IGP_PLATFORM(dev_priv, INTEL_I85X) +#define IS_I865G(dev_priv) IS_IGP_PLATFORM(dev_priv, INTEL_I865G) +#define IS_I915G(dev_priv) IS_IGP_PLATFORM(dev_priv, INTEL_I915G) +#define IS_I915GM(dev_priv) IS_IGP_PLATFORM(dev_priv, INTEL_I915GM) +#define IS_I945G(dev_priv) IS_IGP_PLATFORM(dev_priv, INTEL_I945G) +#define IS_I945GM(dev_priv) IS_IGP_PLATFORM(dev_priv, INTEL_I945GM) +#define IS_I965G(dev_priv) IS_IGP_PLATFORM(dev_priv, INTEL_I965G) +#define IS_I965GM(dev_priv) IS_IGP_PLATFORM(dev_priv, INTEL_I965GM) +#define IS_G45(dev_priv) IS_IGP_PLATFORM(dev_priv, INTEL_G45) +#define IS_GM45(dev_priv) IS_IGP_PLATFORM(dev_priv, INTEL_GM45) #define IS_G4X(dev_priv) (IS_G45(dev_priv) || IS_GM45(dev_priv)) -#define IS_PINEVIEW(dev_priv) IS_PLATFORM(dev_priv, INTEL_PINEVIEW) -#define IS_G33(dev_priv) IS_PLATFORM(dev_priv, INTEL_G33) -#define IS_IRONLAKE(dev_priv) IS_PLATFORM(dev_priv, INTEL_IRONLAKE) +#define IS_PINEVIEW(dev_priv) IS_IGP_PLATFORM(dev_priv, INTEL_PINEVIEW) +#define IS_G33(dev_priv) IS_IGP_PLATFORM(dev_priv, INTEL_G33) +#define IS_IRONLAKE(dev_priv) IS_IGP_PLATFORM(dev_priv, INTEL_IRONLAKE) #define IS_IRONLAKE_M(dev_priv) \ - (IS_PLATFORM(dev_priv, INTEL_IRONLAKE) && IS_MOBILE(dev_priv)) -#define IS_SANDYBRIDGE(dev_priv) IS_PLATFORM(dev_priv, INTEL_SANDYBRIDGE) -#define IS_IVYBRIDGE(dev_priv) IS_PLATFORM(dev_priv, INTEL_IVYBRIDGE) + (IS_IGP_PLATFORM(dev_priv, INTEL_IRONLAKE) && IS_MOBILE(dev_priv)) +#define IS_SANDYBRIDGE(dev_priv) IS_IGP_PLATFORM(dev_priv, INTEL_SANDYBRIDGE) +#define IS_IVYBRIDGE(dev_priv) IS_IGP_PLATFORM(dev_priv, INTEL_IVYBRIDGE) #define IS_IVB_GT1(dev_priv) (IS_IVYBRIDGE(dev_priv) && \ INTEL_INFO(dev_priv)->gt == 1) -#define IS_VALLEYVIEW(dev_priv) IS_PLATFORM(dev_priv, INTEL_VALLEYVIEW) -#define IS_CHERRYVIEW(dev_priv) IS_PLATFORM(dev_priv, INTEL_CHERRYVIEW) -#define IS_HASWELL(dev_priv) IS_PLATFORM(dev_priv, INTEL_HASWELL) -#define IS_BROADWELL(dev_priv) IS_PLATFORM(dev_priv, INTEL_BROADWELL) -#define IS_SKYLAKE(dev_priv) IS_PLATFORM(dev_priv, INTEL_SKYLAKE) -#define IS_BROXTON(dev_priv) IS_PLATFORM(dev_priv, INTEL_BROXTON) -#define IS_KABYLAKE(dev_priv) IS_PLATFORM(dev_priv, INTEL_KABYLAKE) -#define IS_GEMINILAKE(dev_priv) IS_PLATFORM(dev_priv, INTEL_GEMINILAKE) -#define IS_COFFEELAKE(dev_priv) IS_PLATFORM(dev_priv, INTEL_COFFEELAKE) -#define IS_COMETLAKE(dev_priv) IS_PLATFORM(dev_priv, INTEL_COMETLAKE) -#define IS_ICELAKE(dev_priv) IS_PLATFORM(dev_priv, INTEL_ICELAKE) -#define IS_JSL_EHL(dev_priv) (IS_PLATFORM(dev_priv, INTEL_JASPERLAKE) || \ - IS_PLATFORM(dev_priv, INTEL_ELKHARTLAKE)) -#define IS_TIGERLAKE(dev_priv) IS_PLATFORM(dev_priv, INTEL_TIGERLAKE) -#define IS_ROCKETLAKE(dev_priv) IS_PLATFORM(dev_priv, INTEL_ROCKETLAKE) +#define IS_VALLEYVIEW(dev_priv) IS_IGP_PLATFORM(dev_priv, INTEL_VALLEYVIEW) +#define IS_CHERRYVIEW(dev_priv) IS_IGP_PLATFORM(dev_priv, INTEL_CHERRYVIEW) +#define IS_HASWELL(dev_priv) IS_IGP_PLATFORM(dev_priv, INTEL_HASWELL) +#define IS_BROADWELL(dev_priv) IS_IGP_PLATFORM(dev_priv, INTEL_BROADWELL) +#define IS_SKYLAKE(dev_priv) IS_IGP_PLATFORM(dev_priv, INTEL_SKYLAKE) +#define IS_BROXTON(dev_priv) IS_IGP_PLATFORM(dev_priv, INTEL_BROXTON) +#define IS_KABYLAKE(dev_priv) IS_IGP_PLATFORM(dev_priv, INTEL_KABYLAKE) +#define IS_GEMINILAKE(dev_priv) IS_IGP_PLATFORM(dev_priv, INTEL_GEMINILAKE) +#define IS_COFFEELAKE(dev_priv) IS_IGP_PLATFORM(dev_priv, INTEL_COFFEELAKE) +#define IS_COMETLAKE(dev_priv) IS_IGP_PLATFORM(dev_priv, INTEL_COMETLAKE) +#define IS_ICELAKE(dev_priv) IS_IGP_PLATFORM(dev_priv, INTEL_ICELAKE) +#define IS_JSL_EHL(dev_priv) (IS_IGP_PLATFORM(dev_priv, INTEL_JASPERLAKE) || \ + IS_IGP_PLATFORM(dev_priv, INTEL_ELKHARTLAKE)) +#define IS_TIGERLAKE(dev_priv) IS_IGP_PLATFORM(dev_priv, INTEL_TIGERLAKE) +#define IS_ROCKETLAKE(dev_priv) IS_IGP_PLATFORM(dev_priv, INTEL_ROCKETLAKE) #define IS_DG1(dev_priv) IS_PLATFORM(dev_priv, INTEL_DG1) -#define IS_ALDERLAKE_S(dev_priv) IS_PLATFORM(dev_priv, INTEL_ALDERLAKE_S) -#define IS_ALDERLAKE_P(dev_priv) IS_PLATFORM(dev_priv, INTEL_ALDERLAKE_P) +#define IS_ALDERLAKE_S(dev_priv) IS_IGP_PLATFORM(dev_priv, INTEL_ALDERLAKE_S) +#define IS_ALDERLAKE_P(dev_priv) IS_IGP_PLATFORM(dev_priv, INTEL_ALDERLAKE_P) #define IS_XEHPSDV(dev_priv) IS_PLATFORM(dev_priv, INTEL_XEHPSDV) #define IS_DG2(dev_priv) IS_PLATFORM(dev_priv, INTEL_DG2) #define IS_DG2_G10(dev_priv) \ @@ -1263,34 +1285,34 @@ IS_SUBPLATFORM(const struct drm_i915_private *i915, #define IS_DG2_G11(dev_priv) \ IS_SUBPLATFORM(dev_priv, INTEL_DG2, INTEL_SUBPLATFORM_G11) #define IS_ADLS_RPLS(dev_priv) \ - IS_SUBPLATFORM(dev_priv, INTEL_ALDERLAKE_S, INTEL_SUBPLATFORM_RPL_S) + (IS_ALDERLAKE_S(dev_priv) && IS_SUBPLATFORM(dev_priv, INTEL_ALDERLAKE_S, INTEL_SUBPLATFORM_RPL_S)) #define IS_ADLP_N(dev_priv) \ - IS_SUBPLATFORM(dev_priv, INTEL_ALDERLAKE_P, INTEL_SUBPLATFORM_N) + (IS_ALDERLAKE_P(dev_priv) && IS_SUBPLATFORM(dev_priv, INTEL_ALDERLAKE_P, INTEL_SUBPLATFORM_N)) #define IS_HSW_EARLY_SDV(dev_priv) (IS_HASWELL(dev_priv) && \ (INTEL_DEVID(dev_priv) & 0xFF00) == 0x0C00) #define IS_BDW_ULT(dev_priv) \ - IS_SUBPLATFORM(dev_priv, INTEL_BROADWELL, INTEL_SUBPLATFORM_ULT) + (IS_BROADWELL(dev_priv) && IS_SUBPLATFORM(dev_priv, INTEL_BROADWELL, INTEL_SUBPLATFORM_ULT)) #define IS_BDW_ULX(dev_priv) \ - IS_SUBPLATFORM(dev_priv, INTEL_BROADWELL, INTEL_SUBPLATFORM_ULX) + (IS_BROADWELL(dev_priv) && IS_SUBPLATFORM(dev_priv, INTEL_BROADWELL, INTEL_SUBPLATFORM_ULX)) #define IS_BDW_GT3(dev_priv) (IS_BROADWELL(dev_priv) && \ INTEL_INFO(dev_priv)->gt == 3) #define IS_HSW_ULT(dev_priv) \ - IS_SUBPLATFORM(dev_priv, INTEL_HASWELL, INTEL_SUBPLATFORM_ULT) + (IS_HASWELL(dev_priv) && IS_SUBPLATFORM(dev_priv, INTEL_HASWELL, INTEL_SUBPLATFORM_ULT)) #define IS_HSW_GT3(dev_priv) (IS_HASWELL(dev_priv) && \ INTEL_INFO(dev_priv)->gt == 3) #define IS_HSW_GT1(dev_priv) (IS_HASWELL(dev_priv) && \ INTEL_INFO(dev_priv)->gt == 1) /* ULX machines are also considered ULT. */ #define IS_HSW_ULX(dev_priv) \ - IS_SUBPLATFORM(dev_priv, INTEL_HASWELL, INTEL_SUBPLATFORM_ULX) + (IS_HASWELL(dev_priv) && IS_SUBPLATFORM(dev_priv, INTEL_HASWELL, INTEL_SUBPLATFORM_ULX)) #define IS_SKL_ULT(dev_priv) \ - IS_SUBPLATFORM(dev_priv, INTEL_SKYLAKE, INTEL_SUBPLATFORM_ULT) + (IS_SKYLAKE(dev_priv) && IS_SUBPLATFORM(dev_priv, INTEL_SKYLAKE, INTEL_SUBPLATFORM_ULT)) #define IS_SKL_ULX(dev_priv) \ - IS_SUBPLATFORM(dev_priv, INTEL_SKYLAKE, INTEL_SUBPLATFORM_ULX) + (IS_SKYLAKE(dev_priv) && IS_SUBPLATFORM(dev_priv, INTEL_SKYLAKE, INTEL_SUBPLATFORM_ULX)) #define IS_KBL_ULT(dev_priv) \ - IS_SUBPLATFORM(dev_priv, INTEL_KABYLAKE, INTEL_SUBPLATFORM_ULT) + (IS_KABYLAKE(dev_priv) && IS_SUBPLATFORM(dev_priv, INTEL_KABYLAKE, INTEL_SUBPLATFORM_ULT)) #define IS_KBL_ULX(dev_priv) \ - IS_SUBPLATFORM(dev_priv, INTEL_KABYLAKE, INTEL_SUBPLATFORM_ULX) + (IS_KABYLAKE(dev_priv) && IS_SUBPLATFORM(dev_priv, INTEL_KABYLAKE, INTEL_SUBPLATFORM_ULX)) #define IS_SKL_GT2(dev_priv) (IS_SKYLAKE(dev_priv) && \ INTEL_INFO(dev_priv)->gt == 2) #define IS_SKL_GT3(dev_priv) (IS_SKYLAKE(dev_priv) && \ @@ -1302,29 +1324,29 @@ IS_SUBPLATFORM(const struct drm_i915_private *i915, #define IS_KBL_GT3(dev_priv) (IS_KABYLAKE(dev_priv) && \ INTEL_INFO(dev_priv)->gt == 3) #define IS_CFL_ULT(dev_priv) \ - IS_SUBPLATFORM(dev_priv, INTEL_COFFEELAKE, INTEL_SUBPLATFORM_ULT) + (IS_COFFEELAKE(dev_priv) && IS_SUBPLATFORM(dev_priv, INTEL_COFFEELAKE, INTEL_SUBPLATFORM_ULT)) #define IS_CFL_ULX(dev_priv) \ - IS_SUBPLATFORM(dev_priv, INTEL_COFFEELAKE, INTEL_SUBPLATFORM_ULX) + (IS_COFFEELAKE(dev_priv) && IS_SUBPLATFORM(dev_priv, INTEL_COFFEELAKE, INTEL_SUBPLATFORM_ULX)) #define IS_CFL_GT2(dev_priv) (IS_COFFEELAKE(dev_priv) && \ INTEL_INFO(dev_priv)->gt == 2) #define IS_CFL_GT3(dev_priv) (IS_COFFEELAKE(dev_priv) && \ INTEL_INFO(dev_priv)->gt == 3) #define IS_CML_ULT(dev_priv) \ - IS_SUBPLATFORM(dev_priv, INTEL_COMETLAKE, INTEL_SUBPLATFORM_ULT) + (IS_COMETLAKE(dev_priv) && IS_SUBPLATFORM(dev_priv, INTEL_COMETLAKE, INTEL_SUBPLATFORM_ULT)) #define IS_CML_ULX(dev_priv) \ - IS_SUBPLATFORM(dev_priv, INTEL_COMETLAKE, INTEL_SUBPLATFORM_ULX) + (IS_COMETLAKE(dev_priv) && IS_SUBPLATFORM(dev_priv, INTEL_COMETLAKE, INTEL_SUBPLATFORM_ULX)) #define IS_CML_GT2(dev_priv) (IS_COMETLAKE(dev_priv) && \ INTEL_INFO(dev_priv)->gt == 2) #define IS_ICL_WITH_PORT_F(dev_priv) \ - IS_SUBPLATFORM(dev_priv, INTEL_ICELAKE, INTEL_SUBPLATFORM_PORTF) + (IS_ICELAKE(dev_priv) && IS_SUBPLATFORM(dev_priv, INTEL_ICELAKE, INTEL_SUBPLATFORM_PORTF)) #define IS_TGL_U(dev_priv) \ - IS_SUBPLATFORM(dev_priv, INTEL_TIGERLAKE, INTEL_SUBPLATFORM_ULT) + (IS_TIGERLAKE(dev_priv) && IS_SUBPLATFORM(dev_priv, INTEL_TIGERLAKE, INTEL_SUBPLATFORM_ULT)) #define IS_TGL_Y(dev_priv) \ - IS_SUBPLATFORM(dev_priv, INTEL_TIGERLAKE, INTEL_SUBPLATFORM_ULX) + (IS_TIGERLAKE(dev_priv) && IS_SUBPLATFORM(dev_priv, INTEL_TIGERLAKE, INTEL_SUBPLATFORM_ULX)) #define IS_SKL_GRAPHICS_STEP(p, since, until) (IS_SKYLAKE(p) && IS_GRAPHICS_STEP(p, since, until)) diff --git a/drivers/gpu/drm/i915/i915_pci.c b/drivers/gpu/drm/i915/i915_pci.c index 983546d5f415..2797cc369835 100644 --- a/drivers/gpu/drm/i915/i915_pci.c +++ b/drivers/gpu/drm/i915/i915_pci.c @@ -201,6 +201,7 @@ GEN_DEFAULT_PAGE_SIZES, \ GEN_DEFAULT_REGIONS +#ifdef CONFIG_DRM_I915_INTEGRATED_GPU_SUPPORT static const struct intel_device_info i830_info = { I830_FEATURES, PLATFORM(INTEL_I830), @@ -222,6 +223,7 @@ static const struct intel_device_info i865g_info = { PLATFORM(INTEL_I865G), .display.fbc_mask = BIT(INTEL_FBC_A), }; +#endif #define GEN3_FEATURES \ GEN(3), \ @@ -239,6 +241,7 @@ static const struct intel_device_info i865g_info = { GEN_DEFAULT_PAGE_SIZES, \ GEN_DEFAULT_REGIONS +#ifdef CONFIG_DRM_I915_INTEGRATED_GPU_SUPPORT static const struct intel_device_info i915g_info = { GEN3_FEATURES, PLATFORM(INTEL_I915G), @@ -312,6 +315,7 @@ static const struct intel_device_info pnv_m_info = { .display.has_overlay = 1, .dma_mask_size = 36, }; +#endif #define GEN4_FEATURES \ GEN(4), \ @@ -330,6 +334,7 @@ static const struct intel_device_info pnv_m_info = { GEN_DEFAULT_PAGE_SIZES, \ GEN_DEFAULT_REGIONS +#ifdef CONFIG_DRM_I915_INTEGRATED_GPU_SUPPORT static const struct intel_device_info i965g_info = { GEN4_FEATURES, PLATFORM(INTEL_I965G), @@ -365,6 +370,7 @@ static const struct intel_device_info gm45_info = { .platform_engine_mask = BIT(RCS0) | BIT(VCS0), .gpu_reset_clobbers_display = false, }; +#endif #define GEN5_FEATURES \ GEN(5), \ @@ -383,6 +389,7 @@ static const struct intel_device_info gm45_info = { GEN_DEFAULT_PAGE_SIZES, \ GEN_DEFAULT_REGIONS +#ifdef CONFIG_DRM_I915_INTEGRATED_GPU_SUPPORT static const struct intel_device_info ilk_d_info = { GEN5_FEATURES, PLATFORM(INTEL_IRONLAKE), @@ -395,6 +402,7 @@ static const struct intel_device_info ilk_m_info = { .has_rps = true, .display.fbc_mask = BIT(INTEL_FBC_A), }; +#endif #define GEN6_FEATURES \ GEN(6), \ @@ -421,6 +429,7 @@ static const struct intel_device_info ilk_m_info = { GEN6_FEATURES, \ PLATFORM(INTEL_SANDYBRIDGE) +#ifdef CONFIG_DRM_I915_INTEGRATED_GPU_SUPPORT static const struct intel_device_info snb_d_gt1_info = { SNB_D_PLATFORM, .gt = 1, @@ -430,6 +439,7 @@ static const struct intel_device_info snb_d_gt2_info = { SNB_D_PLATFORM, .gt = 2, }; +#endif #define SNB_M_PLATFORM \ GEN6_FEATURES, \ @@ -437,6 +447,7 @@ static const struct intel_device_info snb_d_gt2_info = { .is_mobile = 1 +#ifdef CONFIG_DRM_I915_INTEGRATED_GPU_SUPPORT static const struct intel_device_info snb_m_gt1_info = { SNB_M_PLATFORM, .gt = 1, @@ -446,6 +457,7 @@ static const struct intel_device_info snb_m_gt2_info = { SNB_M_PLATFORM, .gt = 2, }; +#endif #define GEN7_FEATURES \ GEN(7), \ @@ -474,6 +486,7 @@ static const struct intel_device_info snb_m_gt2_info = { PLATFORM(INTEL_IVYBRIDGE), \ .has_l3_dpf = 1 +#ifdef CONFIG_DRM_I915_INTEGRATED_GPU_SUPPORT static const struct intel_device_info ivb_d_gt1_info = { IVB_D_PLATFORM, .gt = 1, @@ -483,6 +496,7 @@ static const struct intel_device_info ivb_d_gt2_info = { IVB_D_PLATFORM, .gt = 2, }; +#endif #define IVB_M_PLATFORM \ GEN7_FEATURES, \ @@ -490,6 +504,7 @@ static const struct intel_device_info ivb_d_gt2_info = { .is_mobile = 1, \ .has_l3_dpf = 1 +#ifdef CONFIG_DRM_I915_INTEGRATED_GPU_SUPPORT static const struct intel_device_info ivb_m_gt1_info = { IVB_M_PLATFORM, .gt = 1, @@ -534,6 +549,7 @@ static const struct intel_device_info vlv_info = { GEN_DEFAULT_PAGE_SIZES, GEN_DEFAULT_REGIONS, }; +#endif #define G75_FEATURES \ GEN7_FEATURES, \ @@ -552,6 +568,7 @@ static const struct intel_device_info vlv_info = { PLATFORM(INTEL_HASWELL), \ .has_l3_dpf = 1 +#ifdef CONFIG_DRM_I915_INTEGRATED_GPU_SUPPORT static const struct intel_device_info hsw_gt1_info = { HSW_PLATFORM, .gt = 1, @@ -566,6 +583,7 @@ static const struct intel_device_info hsw_gt3_info = { HSW_PLATFORM, .gt = 3, }; +#endif #define GEN8_FEATURES \ G75_FEATURES, \ @@ -580,6 +598,7 @@ static const struct intel_device_info hsw_gt3_info = { GEN8_FEATURES, \ PLATFORM(INTEL_BROADWELL) +#ifdef CONFIG_DRM_I915_INTEGRATED_GPU_SUPPORT static const struct intel_device_info bdw_gt1_info = { BDW_PLATFORM, .gt = 1, @@ -632,6 +651,7 @@ static const struct intel_device_info chv_info = { GEN_DEFAULT_PAGE_SIZES, GEN_DEFAULT_REGIONS, }; +#endif #define GEN9_DEFAULT_PAGE_SIZES \ .page_sizes = I915_GTT_PAGE_SIZE_4K | \ @@ -654,6 +674,7 @@ static const struct intel_device_info chv_info = { GEN9_FEATURES, \ PLATFORM(INTEL_SKYLAKE) +#ifdef CONFIG_DRM_I915_INTEGRATED_GPU_SUPPORT static const struct intel_device_info skl_gt1_info = { SKL_PLATFORM, .gt = 1, @@ -663,6 +684,7 @@ static const struct intel_device_info skl_gt2_info = { SKL_PLATFORM, .gt = 2, }; +#endif #define SKL_GT3_PLUS_PLATFORM \ SKL_PLATFORM, \ @@ -670,6 +692,7 @@ static const struct intel_device_info skl_gt2_info = { BIT(RCS0) | BIT(VCS0) | BIT(BCS0) | BIT(VECS0) | BIT(VCS1) +#ifdef CONFIG_DRM_I915_INTEGRATED_GPU_SUPPORT static const struct intel_device_info skl_gt3_info = { SKL_GT3_PLUS_PLATFORM, .gt = 3, @@ -679,6 +702,7 @@ static const struct intel_device_info skl_gt4_info = { SKL_GT3_PLUS_PLATFORM, .gt = 4, }; +#endif #define GEN9_LP_FEATURES \ GEN(9), \ @@ -717,6 +741,7 @@ static const struct intel_device_info skl_gt4_info = { GEN9_DEFAULT_PAGE_SIZES, \ GEN_DEFAULT_REGIONS +#ifdef CONFIG_DRM_I915_INTEGRATED_GPU_SUPPORT static const struct intel_device_info bxt_info = { GEN9_LP_FEATURES, PLATFORM(INTEL_BROXTON), @@ -730,11 +755,13 @@ static const struct intel_device_info glk_info = { .dbuf.size = 1024 - 4, /* 4 blocks for bypass path allocation */ GLK_COLORS, }; +#endif #define KBL_PLATFORM \ GEN9_FEATURES, \ PLATFORM(INTEL_KABYLAKE) +#ifdef CONFIG_DRM_I915_INTEGRATED_GPU_SUPPORT static const struct intel_device_info kbl_gt1_info = { KBL_PLATFORM, .gt = 1, @@ -751,11 +778,13 @@ static const struct intel_device_info kbl_gt3_info = { .platform_engine_mask = BIT(RCS0) | BIT(VCS0) | BIT(BCS0) | BIT(VECS0) | BIT(VCS1), }; +#endif #define CFL_PLATFORM \ GEN9_FEATURES, \ PLATFORM(INTEL_COFFEELAKE) +#ifdef CONFIG_DRM_I915_INTEGRATED_GPU_SUPPORT static const struct intel_device_info cfl_gt1_info = { CFL_PLATFORM, .gt = 1, @@ -772,11 +801,13 @@ static const struct intel_device_info cfl_gt3_info = { .platform_engine_mask = BIT(RCS0) | BIT(VCS0) | BIT(BCS0) | BIT(VECS0) | BIT(VCS1), }; +#endif #define CML_PLATFORM \ GEN9_FEATURES, \ PLATFORM(INTEL_COMETLAKE) +#ifdef CONFIG_DRM_I915_INTEGRATED_GPU_SUPPORT static const struct intel_device_info cml_gt1_info = { CML_PLATFORM, .gt = 1, @@ -786,6 +817,7 @@ static const struct intel_device_info cml_gt2_info = { CML_PLATFORM, .gt = 2, }; +#endif #define GEN11_DEFAULT_PAGE_SIZES \ .page_sizes = I915_GTT_PAGE_SIZE_4K | \ @@ -823,6 +855,7 @@ static const struct intel_device_info cml_gt2_info = { .has_coherent_ggtt = false, \ .has_logical_ring_elsq = 1 +#ifdef CONFIG_DRM_I915_INTEGRATED_GPU_SUPPORT static const struct intel_device_info icl_info = { GEN11_FEATURES, PLATFORM(INTEL_ICELAKE), @@ -843,6 +876,7 @@ static const struct intel_device_info jsl_info = { .platform_engine_mask = BIT(RCS0) | BIT(BCS0) | BIT(VCS0) | BIT(VECS0), .ppgtt_size = 36, }; +#endif #define GEN12_FEATURES \ GEN11_FEATURES, \ @@ -873,6 +907,7 @@ static const struct intel_device_info jsl_info = { .has_pxp = 1, \ .display.has_dsb = 0 /* FIXME: LUT load is broken with DSB */ +#ifdef CONFIG_DRM_I915_INTEGRATED_GPU_SUPPORT static const struct intel_device_info tgl_info = { GEN12_FEATURES, PLATFORM(INTEL_TIGERLAKE), @@ -893,6 +928,7 @@ static const struct intel_device_info rkl_info = { .platform_engine_mask = BIT(RCS0) | BIT(BCS0) | BIT(VECS0) | BIT(VCS0), }; +#endif #define DGFX_FEATURES \ .memory_regions = REGION_SMEM | REGION_LMEM | REGION_STOLEN_LMEM, \ @@ -915,6 +951,7 @@ static const struct intel_device_info dg1_info = { .ppgtt_size = 47, }; +#ifdef CONFIG_DRM_I915_INTEGRATED_GPU_SUPPORT static const struct intel_device_info adl_s_info = { GEN12_FEATURES, PLATFORM(INTEL_ALDERLAKE_S), @@ -925,6 +962,7 @@ static const struct intel_device_info adl_s_info = { BIT(RCS0) | BIT(BCS0) | BIT(VECS0) | BIT(VCS0) | BIT(VCS2), .dma_mask_size = 39, }; +#endif #define XE_LPD_CURSOR_OFFSETS \ .cursor_offsets = { \ @@ -974,6 +1012,7 @@ static const struct intel_device_info adl_s_info = { }, \ XE_LPD_CURSOR_OFFSETS +#ifdef CONFIG_DRM_I915_INTEGRATED_GPU_SUPPORT static const struct intel_device_info adl_p_info = { GEN12_FEATURES, XE_LPD_FEATURES, @@ -989,6 +1028,7 @@ static const struct intel_device_info adl_p_info = { .ppgtt_size = 48, .dma_mask_size = 39, }; +#endif #undef GEN @@ -1065,6 +1105,7 @@ static const struct intel_device_info dg2_info = { * PCI ID matches, otherwise we'll use the wrong info struct above. */ static const struct pci_device_id pciidlist[] = { +#ifdef CONFIG_DRM_I915_INTEGRATED_GPU_SUPPORT INTEL_I830_IDS(&i830_info), INTEL_I845G_IDS(&i845g_info), INTEL_I85X_IDS(&i85x_info), @@ -1133,8 +1174,9 @@ static const struct pci_device_id pciidlist[] = { INTEL_ADLS_IDS(&adl_s_info), INTEL_ADLP_IDS(&adl_p_info), INTEL_ADLN_IDS(&adl_p_info), - INTEL_DG1_IDS(&dg1_info), INTEL_RPLS_IDS(&adl_s_info), +#endif + INTEL_DG1_IDS(&dg1_info), {0, 0, 0} }; MODULE_DEVICE_TABLE(pci, pciidlist); -- 2.32.0