drm/i915/skl: tell the user about pre-production hardware
authorPaulo Zanoni <paulo.r.zanoni@intel.com>
Mon, 26 Sep 2016 12:07:52 +0000 (15:07 +0300)
committerJani Nikula <jani.nikula@intel.com>
Tue, 27 Sep 2016 06:30:39 +0000 (09:30 +0300)
We just removed the implementation for all the pre-production
workarounds, so now tell the user that we expect his machine to not
work properly. Also convert this to DRM_ERROR so we can more easily
spot these problems in bug reports and CI/QA runs.

Cc: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/1474891672-23414-2-git-send-email-jani.nikula@intel.com
drivers/gpu/drm/i915/i915_drv.c

index bfb2efd8d4d44e996d6af1d75299f12fab534c92..9c1543240e27fb22121964ce244109cd30d98446 100644 (file)
@@ -771,6 +771,19 @@ static void i915_workqueues_cleanup(struct drm_i915_private *dev_priv)
        destroy_workqueue(dev_priv->wq);
 }
 
+/*
+ * We don't keep the workarounds for pre-production hardware, so we expect our
+ * driver to fail on these machines in one way or another. A little warning on
+ * dmesg may help both the user and the bug triagers.
+ */
+static void intel_detect_preproduction_hw(struct drm_i915_private *dev_priv)
+{
+       if (IS_HSW_EARLY_SDV(dev_priv) ||
+           IS_SKL_REVID(dev_priv, 0, SKL_REVID_F0))
+               DRM_ERROR("This is a pre-production stepping. "
+                         "It may not be fully functional.\n");
+}
+
 /**
  * i915_driver_init_early - setup state not requiring device access
  * @dev_priv: device private
@@ -838,13 +851,7 @@ static int i915_driver_init_early(struct drm_i915_private *dev_priv,
 
        intel_device_info_dump(dev_priv);
 
-       /* Not all pre-production machines fall into this category, only the
-        * very first ones. Almost everything should work, except for maybe
-        * suspend/resume. And we don't implement workarounds that affect only
-        * pre-production machines. */
-       if (IS_HSW_EARLY_SDV(dev_priv))
-               DRM_INFO("This is an early pre-production Haswell machine. "
-                        "It may not be fully functional.\n");
+       intel_detect_preproduction_hw(dev_priv);
 
        return 0;