Re: [PATCH] drm/i915: By default, enable RC6 on IVB and SNB when reasonable

From: Keith Packard
Date: Sat Nov 19 2011 - 13:32:31 EST


On Sat, 19 Nov 2011 07:25:09 -0200, Eugeni Dodonov <eugeni@xxxxxxxxxxx> wrote:

> Just one question I caught on 2nd read. Shouldn't we have #else within
> this #ifdef block, to return 1? Otherwise, if CONFIG_INTEL_IOMMU is
> not defined, we'll always disable rc6.

Oops! Thanks for catching this. Here's a new version of that function
(the rest of the patch is the same). This one has explicit conditions
for Ironlake and Sandybridge (when CONFIG_INTEL_IOMMU is set), allowing
the Ivybridge and Sandybridge-without-IOMMU cases to take the default
path. This will also cause all future chips to enable rc6 by default.

+static bool intel_enable_rc6(struct drm_device *dev)
+{
+ /*
+ * Respect the kernel parameter if it is set
+ */
+ if (i915_enable_rc6 >= 0)
+ return i915_enable_rc6;
+
+ /*
+ * Disable RC6 on Ironlake
+ */
+ if (INTEL_INFO(dev)->gen == 5)
+ return 0;
+
+#ifdef CONFIG_INTEL_IOMMU
+ /*
+ * Enable rc6 on Sandybridge if DMA remapping is disabled
+ */
+ if (INTEL_INFO(dev)->gen == 6)
+ return no_iommu || dmar_disabled;
+#endif
+ return 1;
+}
+

--
keith.packard@xxxxxxxxx

Attachment: pgp00000.pgp
Description: PGP signature