diff options
Diffstat (limited to 'i915-enable-fastboot-on-skylake.patch')
-rw-r--r-- | i915-enable-fastboot-on-skylake.patch | 85 |
1 files changed, 85 insertions, 0 deletions
diff --git a/i915-enable-fastboot-on-skylake.patch b/i915-enable-fastboot-on-skylake.patch new file mode 100644 index 000000000..1ccfa18e9 --- /dev/null +++ b/i915-enable-fastboot-on-skylake.patch @@ -0,0 +1,85 @@ +From dff28bd3963af53e9606e4418aaf14b779d32e30 Mon Sep 17 00:00:00 2001 +From: Hans de Goede <hdegoede@redhat.com> +Date: Thu, 24 Jan 2019 14:01:14 +0100 +Subject: [PATCH] drm/i915: Enable fastboot by default on Skylake and newer + +We really want to have fastboot enabled by default to avoid an ugly +modeset during boot. + +Rather then enabling it everywhere, lets start with enabling it on +Skylake and newer. + +Signed-off-by: Hans de Goede <hdegoede@redhat.com> +Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> +Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com> +--- + drivers/gpu/drm/i915/i915_params.c | 6 ++++-- + drivers/gpu/drm/i915/i915_params.h | 2 +- + drivers/gpu/drm/i915/intel_display.c | 11 ++++++++++- + 3 files changed, 15 insertions(+), 4 deletions(-) + +diff --git a/drivers/gpu/drm/i915/i915_params.c b/drivers/gpu/drm/i915/i915_params.c +index 2e0356561839..c75be3f07575 100644 +--- a/drivers/gpu/drm/i915/i915_params.c ++++ b/drivers/gpu/drm/i915/i915_params.c +@@ -97,8 +97,10 @@ i915_param_named_unsafe(disable_power_well, int, 0400, + + i915_param_named_unsafe(enable_ips, int, 0600, "Enable IPS (default: true)"); + +-i915_param_named(fastboot, bool, 0600, +- "Try to skip unnecessary mode sets at boot time (default: false)"); ++i915_param_named(fastboot, int, 0600, ++ "Try to skip unnecessary mode sets at boot time " ++ "(0=disabled, 1=enabled) " ++ "Default: -1 (use per-chip default)"); + + i915_param_named_unsafe(prefault_disable, bool, 0600, + "Disable page prefaulting for pread/pwrite/reloc (default:false). " +diff --git a/drivers/gpu/drm/i915/i915_params.h b/drivers/gpu/drm/i915/i915_params.h +index 7e56c516c815..331cbfccfb80 100644 +--- a/drivers/gpu/drm/i915/i915_params.h ++++ b/drivers/gpu/drm/i915/i915_params.h +@@ -54,10 +54,10 @@ struct drm_printer; + param(int, edp_vswing, 0) \ + param(int, reset, 2) \ + param(unsigned int, inject_load_failure, 0) \ ++ param(int, fastboot, -1) \ + /* leave bools at the end to not create holes */ \ + param(bool, alpha_support, IS_ENABLED(CONFIG_DRM_I915_ALPHA_SUPPORT)) \ + param(bool, enable_hangcheck, true) \ +- param(bool, fastboot, false) \ + param(bool, prefault_disable, false) \ + param(bool, load_detect_test, false) \ + param(bool, force_reset_modeset_test, false) \ +diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c +index 4a552eeb591c..34e8c95b693e 100644 +--- a/drivers/gpu/drm/i915/intel_display.c ++++ b/drivers/gpu/drm/i915/intel_display.c +@@ -11666,6 +11666,15 @@ pipe_config_err(bool adjust, const char *name, const char *format, ...) + va_end(args); + } + ++static bool fastboot_enabled(struct drm_i915_private *dev_priv) ++{ ++ if (i915_modparams.fastboot != -1) ++ return i915_modparams.fastboot; ++ ++ /* Enable fastboot by default on Skylake and newer */ ++ return INTEL_GEN(dev_priv) >= 9; ++} ++ + static bool + intel_pipe_config_compare(struct drm_i915_private *dev_priv, + struct intel_crtc_state *current_config, +@@ -11677,7 +11686,7 @@ intel_pipe_config_compare(struct drm_i915_private *dev_priv, + (current_config->base.mode.private_flags & I915_MODE_FLAG_INHERITED) && + !(pipe_config->base.mode.private_flags & I915_MODE_FLAG_INHERITED); + +- if (fixup_inherited && !i915_modparams.fastboot) { ++ if (fixup_inherited && !fastboot_enabled(dev_priv)) { + DRM_DEBUG_KMS("initial modeset and fastboot not set\n"); + ret = false; + } +-- +2.20.1 + |