It'd be nice to be able to target a single platform to reduce the size for the i915 driver. Start low-fi and coarse grained: it's easy to split the (S)DVO code out, the API surface is reduced to two init functions. Signed-off-by: Damien Lespiau <damien.lespiau@xxxxxxxxx> --- drivers/gpu/drm/i915/Kconfig | 25 +++++++++++++++++++++++++ drivers/gpu/drm/i915/Makefile | 18 +++++++++--------- drivers/gpu/drm/i915/intel_drv.h | 12 ++++++++++++ 3 files changed, 46 insertions(+), 9 deletions(-) diff --git a/drivers/gpu/drm/i915/Kconfig b/drivers/gpu/drm/i915/Kconfig index 437e182..b92a999 100644 --- a/drivers/gpu/drm/i915/Kconfig +++ b/drivers/gpu/drm/i915/Kconfig @@ -34,6 +34,31 @@ config DRM_I915 i810 driver instead, and the Atom z5xx series has an entirely different implementation. +config DRM_I915_DVO + bool + +choice + prompt "Platform support" + default DRM_I915_PLATFORM_ALL + help + The i915 driver can be compiled for a single chip to reduce its .text + size. The driver can only be compiled that way for a subset of the + supported platforms. + + If in doubt, choose "Multi-platform". + +config DRM_I915_PLATFORM_ALL + bool "Multi-platform" + select DRM_I915_DVO + +config DRM_I915_PLATFORM_HASWELL + bool "Haswell" + +config DRM_I915_PLATFORM_BROADWELL + bool "Broadwell" + +endchoice + config DRM_I915_KMS bool "Enable modesetting on intel by default" depends on DRM_I915 diff --git a/drivers/gpu/drm/i915/Makefile b/drivers/gpu/drm/i915/Makefile index cad1683..346c3c1 100644 --- a/drivers/gpu/drm/i915/Makefile +++ b/drivers/gpu/drm/i915/Makefile @@ -50,25 +50,25 @@ i915-$(CONFIG_ACPI) += intel_acpi.o intel_opregion.o i915-$(CONFIG_DRM_I915_FBDEV) += intel_fbdev.o # modesetting output/encoder code -i915-y += dvo_ch7017.o \ - dvo_ch7xxx.o \ - dvo_ivch.o \ - dvo_ns2501.o \ - dvo_sil164.o \ - dvo_tfp410.o \ - intel_crt.o \ +i915-$(CONFIG_DRM_I915_DVO) += dvo_ch7017.o \ + dvo_ch7xxx.o \ + dvo_ivch.o \ + dvo_ns2501.o \ + dvo_sil164.o \ + dvo_tfp410.o \ + intel_dvo.o \ + intel_sdvo.o +i915-y += intel_crt.o \ intel_ddi.o \ intel_dp.o \ intel_dsi_cmd.o \ intel_dsi.o \ intel_dsi_pll.o \ intel_dsi_panel_vbt.o \ - intel_dvo.o \ intel_hdmi.o \ intel_i2c.o \ intel_lvds.o \ intel_panel.o \ - intel_sdvo.o \ intel_tv.o # legacy horrors diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h index 81451e9..dd38095 100644 --- a/drivers/gpu/drm/i915/intel_drv.h +++ b/drivers/gpu/drm/i915/intel_drv.h @@ -871,7 +871,11 @@ void intel_dsi_init(struct drm_device *dev); /* intel_dvo.c */ +#ifdef CONFIG_DRM_I915_DVO void intel_dvo_init(struct drm_device *dev); +#else +static inline void intel_dvo_init(struct drm_device *dev) {} +#endif /* legacy fbdev emulation in intel_fbdev.c */ @@ -1010,7 +1014,15 @@ void ilk_wm_get_hw_state(struct drm_device *dev); /* intel_sdvo.c */ +#ifdef CONFIG_DRM_I915_DVO bool intel_sdvo_init(struct drm_device *dev, uint32_t sdvo_reg, bool is_sdvob); +#else +static inline bool +intel_sdvo_init(struct drm_device *dev, uint32_t sdvo_reg, bool is_sdvob) +{ + return false; +} +#endif /* intel_sprite.c */ -- 1.8.3.1 _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/intel-gfx