86 lines
3.3 KiB
Diff
86 lines
3.3 KiB
Diff
|
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
|
||
|
|