drm/i915: Enable fastboot by default on Skylake and newer
authorHans de Goede <hdegoede@redhat.com>
Thu, 24 Jan 2019 13:01:14 +0000 (14:01 +0100)
committerHans de Goede <hdegoede@redhat.com>
Tue, 29 Jan 2019 09:41:58 +0000 (10:41 +0100)
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>
Link: https://patchwork.freedesktop.org/patch/msgid/20190124130114.3967-1-maarten.lankhorst@linux.intel.com
drivers/gpu/drm/i915/i915_params.c
drivers/gpu/drm/i915/i915_params.h
drivers/gpu/drm/i915/intel_display.c

index 9f0539bdaa398dbfb4050df67f952eb0207e1c57..b5be0abbba359e4372c458c57597bb67e574a172 100644 (file)
@@ -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). "
index 6efcf330bdab83fa41aefac760e0965d5531454d..3f14e9881a0d3057877ee309482b8eb4fc55f072 100644 (file)
@@ -63,10 +63,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) \
index 6cf480a0eb23fc183d48a92e53eef2fe98bcb1f9..734ac77c9a8e5e09e0c79ec243fc72d0aa47303d 100644 (file)
@@ -11719,6 +11719,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,
@@ -11730,7 +11739,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;
        }