Re: [PATCH 1/2] drm/i915: Provide a config option to select a target platform

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




> -----Original Message-----
> From: Intel-gfx [mailto:intel-gfx-bounces@xxxxxxxxxxxxxxxxxxxxx] On Behalf
> Of Damien Lespiau
> Sent: Friday, July 11, 2014 6:34 PM
> To: intel-gfx@xxxxxxxxxxxxxxxxxxxxx
> Subject:  [PATCH 1/2] drm/i915: Provide a config option to select a
> target platform
> 
> 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>

Is this the right way to go?

I think what will happen is that we are just going to have everything enabled anyway because you'd want your kernel to boot on any intel platform. Certainly on the stuff I'm working on I'll just have to enable this stuff all the time because I don't know if the system image is going to be installed on a broadwell or a valleyview. The same comment applies to patch 2.

Thanks,
Rafael

> ---
>  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
_______________________________________________
Intel-gfx mailing list
Intel-gfx@xxxxxxxxxxxxxxxxxxxxx
http://lists.freedesktop.org/mailman/listinfo/intel-gfx




[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]
  Powered by Linux