From: Daniel Vetter <daniel.vetter@ffwll.ch>
Date: Sun, 26 Aug 2012 18:33:18 +0000 (+0200)
Subject: drm/i915: disable rc6 on ilk when vt-d is enabled
X-Git-Tag: firefly_0821_release~3680^2~1922^2~30^2~1
X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=cd7988eea561a70a4f98e431c1395f913672d626;p=firefly-linux-kernel-4.4.55.git

drm/i915: disable rc6 on ilk when vt-d is enabled

It blows up. And hopefully this is the root-cause of the mysterious
rc6 related hang on ilk. For reference, the commit that enabled rc6 on
ilk again is:

commit 456470eb583f063ee84c6818251e638598be0fb8
Author: Daniel Vetter <daniel.vetter@ffwll.ch>
Date:   Wed Aug 8 23:35:40 2012 +0200

    drm/i915: enable rc6 on ilk again

Reported-by: Dave Airlie <airlied@gmail.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
---

diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c
index c0721ffb56a2..ebe3498bc9c0 100644
--- a/drivers/gpu/drm/i915/intel_pm.c
+++ b/drivers/gpu/drm/i915/intel_pm.c
@@ -2372,6 +2372,11 @@ int intel_enable_rc6(const struct drm_device *dev)
 		return i915_enable_rc6;
 
 	if (INTEL_INFO(dev)->gen == 5) {
+#ifdef CONFIG_INTEL_IOMMU
+		/* Disable rc6 on ilk if VT-d is on. */
+		if (intel_iommu_gfx_mapped)
+			return false;
+#endif
 		DRM_DEBUG_DRIVER("Ironlake: only RC6 available\n");
 		return INTEL_RC6_ENABLE;
 	}