All of lore.kernel.org
 help / color / mirror / Atom feed
* [Intel-xe] [RFC] drm/i915: add kconfig option to enable/disable legacy platform support
@ 2023-03-09 19:19 Jani Nikula
  2023-03-10  9:06 ` Tvrtko Ursulin
                   ` (4 more replies)
  0 siblings, 5 replies; 20+ messages in thread
From: Jani Nikula @ 2023-03-09 19:19 UTC (permalink / raw)
  To: intel-xe
  Cc: Tvrtko Ursulin, jani.nikula, Lucas De Marchi, Joonas Lahtinen,
	Rodrigo Vivi, Ville Syrjälä

Add config option DRM_I915_LEGACY to enable/disable legacy platform
support. This is primarily for the benefit of the drm/xe driver, and
legacy is defined in terms of the platforms drm/xe does not support,
i.e. anything before Tigerlake.

While the kconfig option will be CONFIG_DRM_I915_LEGACY, the intention
is that it's not used in code. Instead, we'll pass -DI915_LEGACY=1 in
the i915 Makefile for CONFIG_DRM_I915_LEGACY=y, while the xe Makefile
does no such thing, regardless of the kconfig value.

Initially, the knob does the bare minimum: drops the legacy platforms
from module PCI ID table (and the compiler in turn automagically drops
all the unreferenced device infos).

Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Cc: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Cc: Lucas De Marchi <lucas.demarchi@intel.com>
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>

---

*** NOTE ***

For now, I'm only sending this to the intel-xe mailing list with a bunch
of Cc's for first impressions.

The xe driver reuses i915 display code, but there's a lot of unnecessary
and/or incompatible code for platforms xe does not support. Currently
this is handled with a bunch of #ifdef I915 added to i915 in the xe
branch that isn't really upstreamble, and I'm thinking this patch might
be a better option.

This patch alone does what the commit message says, and drops the legacy
platform support, although all the code is left in place. Everything
beyond this is basically an optimization of what more to drop out of the
build. It doesn't really need to be perfect for starters but we could
start converting the legacy platform related #ifdefs from I915 to
I915_LEGACY, and that could be upstreamable to i915.

Not all of the #ifdef I915 in the xe branch are related to legacy
platforms, and they need to be handled differently. But this kconfig
knob would hopefully be a future compatible start to clean up one aspect
of them.

Thoughts?

BR,
Jani.
---
 drivers/gpu/drm/i915/Kconfig    | 11 +++++++++++
 drivers/gpu/drm/i915/Makefile   |  7 +++++++
 drivers/gpu/drm/i915/i915_pci.c |  2 ++
 3 files changed, 20 insertions(+)

diff --git a/drivers/gpu/drm/i915/Kconfig b/drivers/gpu/drm/i915/Kconfig
index 8eb3e60aeec9..a569c1606f51 100644
--- a/drivers/gpu/drm/i915/Kconfig
+++ b/drivers/gpu/drm/i915/Kconfig
@@ -53,6 +53,17 @@ config DRM_I915
 
 	  If "M" is selected, the module will be called i915.
 
+config DRM_I915_LEGACY
+	bool "Support legacy hardware in i915"
+	depends on DRM_I915
+	depends on EXPERT
+	default y
+	help
+	  Disable this option if you want the i915 driver to only support modern
+	  Intel Graphics, starting from Tigerlake.
+
+	  If in doubt, say "Y".
+
 config DRM_I915_FORCE_PROBE
 	string "Force probe i915 for selected Intel hardware IDs"
 	depends on DRM_I915
diff --git a/drivers/gpu/drm/i915/Makefile b/drivers/gpu/drm/i915/Makefile
index a6e7cd2185c2..653d43e5b534 100644
--- a/drivers/gpu/drm/i915/Makefile
+++ b/drivers/gpu/drm/i915/Makefile
@@ -23,6 +23,13 @@ subdir-ccflags-y += $(call cc-disable-warning, unused-but-set-variable)
 subdir-ccflags-y += $(call cc-disable-warning, frame-address)
 subdir-ccflags-$(CONFIG_DRM_I915_WERROR) += -Werror
 
+# Legacy platform support.
+#
+# Note: Source code needs to check for I915_LEGACY instead of
+# CONFIG_DRM_I915_LEGACY to allow Xe driver build without legacy support
+# independent of the Kconfig setting.
+subdir-ccflags-$(CONFIG_DRM_I915_LEGACY) += -DI915_LEGACY=1
+
 # Fine grained warnings disable
 CFLAGS_i915_pci.o = $(call cc-disable-warning, override-init)
 CFLAGS_display/intel_fbdev.o = $(call cc-disable-warning, override-init)
diff --git a/drivers/gpu/drm/i915/i915_pci.c b/drivers/gpu/drm/i915/i915_pci.c
index bc6fc268739d..9f421015d2bb 100644
--- a/drivers/gpu/drm/i915/i915_pci.c
+++ b/drivers/gpu/drm/i915/i915_pci.c
@@ -1162,6 +1162,7 @@ static const struct intel_device_info mtl_info = {
  * PCI ID matches, otherwise we'll use the wrong info struct above.
  */
 static const struct pci_device_id pciidlist[] = {
+#if IS_ENABLED(I915_LEGACY)
 	INTEL_I830_IDS(&i830_info),
 	INTEL_I845G_IDS(&i845g_info),
 	INTEL_I85X_IDS(&i85x_info),
@@ -1225,6 +1226,7 @@ static const struct pci_device_id pciidlist[] = {
 	INTEL_ICL_11_IDS(&icl_info),
 	INTEL_EHL_IDS(&ehl_info),
 	INTEL_JSL_IDS(&jsl_info),
+#endif
 	INTEL_TGL_12_IDS(&tgl_info),
 	INTEL_RKL_IDS(&rkl_info),
 	INTEL_ADLS_IDS(&adl_s_info),
-- 
2.39.1


^ permalink raw reply related	[flat|nested] 20+ messages in thread

end of thread, other threads:[~2023-03-14 19:17 UTC | newest]

Thread overview: 20+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-03-09 19:19 [Intel-xe] [RFC] drm/i915: add kconfig option to enable/disable legacy platform support Jani Nikula
2023-03-10  9:06 ` Tvrtko Ursulin
2023-03-10 10:11   ` Jani Nikula
2023-03-10 13:14     ` Ville Syrjälä
2023-03-10 13:36       ` Jani Nikula
2023-03-10 13:47         ` Ville Syrjälä
2023-03-10 13:54           ` Jani Nikula
2023-03-10 13:57             ` Ville Syrjälä
2023-03-10 14:26               ` Jani Nikula
2023-03-13 17:03 ` [Intel-xe] ✓ CI.Patch_applied: success for " Patchwork
2023-03-13 17:04 ` [Intel-xe] ✓ CI.KUnit: " Patchwork
2023-03-13 17:08 ` [Intel-xe] ✓ CI.Build: " Patchwork
2023-03-14 11:43 ` [Intel-xe] [RFC] " Jani Nikula
2023-03-14 12:52   ` Tvrtko Ursulin
2023-03-14 16:42     ` Jani Nikula
2023-03-14 17:22       ` Lucas De Marchi
2023-03-14 18:27         ` Tvrtko Ursulin
2023-03-14 18:48           ` Jani Nikula
2023-03-14 19:16           ` Mauro Carvalho Chehab
2023-03-14 19:17             ` Mauro Carvalho Chehab

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.