[Intel-gfx] [PATCH] drm/i915: Enable atomic support by default on supported platforms.

Lyude Paul lyude at redhat.com
Thu Feb 2 15:20:02 UTC 2017


Nice! I actually was already thinking of bringing up the fact we should
just be turning this on by default now, especially so we can see atomic
start getting some real use.

So, I'm more then happy to say I support flipping the switch :)
Reviewed-by: Lyude <lyude at redhat.com>

On Thu, 2017-02-02 at 08:41 +0100, Maarten Lankhorst wrote:
> i915 is pretty much feature complete. Support for atomic i915-
> specific
> connector properties is still missing; those properties can (for now)
> only be set through the legacy ioctl.
> 
> ILK style watermarks and gen9+ watermarks are handled atomically,
> and nonblocking modesets work. FBC has also been made to work with
> atomic.
> 
> gen4x- and vlv/chv watermarks still need to be fixed, so disable
> atomic
> by default there for now.
> 
> Flip the switch!!
> 
> Signed-off-by: Maarten Lankhorst <maarten.lankhorst at linux.intel.com>
> Cc: Ander Conselvan de Oliveira <ander.conselvan.de.oliveira at intel.co
> m>
> Cc: Chris Wilson <chris at chris-wilson.co.uk>
> Cc: Daniel Vetter <daniel.vetter at ffwll.ch>
> Cc: Lyude <cpaul at redhat.com>
> Cc: Matt Roper <matthew.d.roper at intel.com>
> Cc: Paulo Zanoni <paulo.r.zanoni at intel.com>
> Cc: Rodrigo Vivi <rodrigo.vivi at intel.com>
> Cc: Ville Syrjälä <ville.syrjala at linux.intel.com>
> ---
> I probably missed a lot of people who also worked on atomic support
> in i915,
> feel free to ack the patch if you've worked on it. :)
> 
>  drivers/gpu/drm/i915/i915_drv.c    | 10 +++++++---
>  drivers/gpu/drm/i915/i915_params.c |  4 ++--
>  2 files changed, 9 insertions(+), 5 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/i915_drv.c
> b/drivers/gpu/drm/i915/i915_drv.c
> index 0e8eb4b6db00..d4d1abf6d9d2 100644
> --- a/drivers/gpu/drm/i915/i915_drv.c
> +++ b/drivers/gpu/drm/i915/i915_drv.c
> @@ -1206,11 +1206,15 @@ static void i915_driver_unregister(struct
> drm_i915_private *dev_priv)
>   */
>  int i915_driver_load(struct pci_dev *pdev, const struct
> pci_device_id *ent)
>  {
> +	const struct intel_device_info *match_info =
> +		(struct intel_device_info *) ent->driver_data;
>  	struct drm_i915_private *dev_priv;
>  	int ret;
>  
> -	if (i915.nuclear_pageflip)
> -		driver.driver_features |= DRIVER_ATOMIC;
> +	/* Enable nuclear pageflip on ILK+, except vlv/chv */
> +	if (!i915.nuclear_pageflip &&
> +	    (match_info->gen < 5 || match_info->has_gmch_display))
> +		driver.driver_features &= ~DRIVER_ATOMIC;
>  
>  	ret = -ENOMEM;
>  	dev_priv = kzalloc(sizeof(*dev_priv), GFP_KERNEL);
> @@ -2614,7 +2618,7 @@ static struct drm_driver driver = {
>  	 */
>  	.driver_features =
>  	    DRIVER_HAVE_IRQ | DRIVER_IRQ_SHARED | DRIVER_GEM |
> DRIVER_PRIME |
> -	    DRIVER_RENDER | DRIVER_MODESET,
> +	    DRIVER_RENDER | DRIVER_MODESET | DRIVER_ATOMIC,
>  	.open = i915_driver_open,
>  	.lastclose = i915_driver_lastclose,
>  	.preclose = i915_driver_preclose,
> diff --git a/drivers/gpu/drm/i915/i915_params.c
> b/drivers/gpu/drm/i915/i915_params.c
> index 0e280fbd52f1..bb3feabec238 100644
> --- a/drivers/gpu/drm/i915/i915_params.c
> +++ b/drivers/gpu/drm/i915/i915_params.c
> @@ -205,9 +205,9 @@ module_param_named(verbose_state_checks,
> i915.verbose_state_checks, bool, 0600);
>  MODULE_PARM_DESC(verbose_state_checks,
>  	"Enable verbose logs (ie. WARN_ON()) in case of unexpected
> hw state conditions.");
>  
> -module_param_named_unsafe(nuclear_pageflip, i915.nuclear_pageflip,
> bool, 0600);
> +module_param_named_unsafe(nuclear_pageflip, i915.nuclear_pageflip,
> bool, 0400);
>  MODULE_PARM_DESC(nuclear_pageflip,
> -		 "Force atomic modeset functionality; asynchronous
> mode is not yet supported. (default: false).");
> +		 "Force enable atomic functionality on platforms
> that don't have full support yet.");
>  
>  /* WA to get away with the default setting in VBT for early
> platforms.Will be removed */
>  module_param_named_unsafe(edp_vswing, i915.edp_vswing, int, 0400);


More information about the Intel-gfx mailing list