Intel-GFX Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] drm/i915: disable rc6 on Cantiga and Crestline
@ 2010-12-25  4:29 Jesse Barnes
  2010-12-25 12:37 ` Chris Wilson
  0 siblings, 1 reply; 4+ messages in thread
From: Jesse Barnes @ 2010-12-25  4:29 UTC (permalink / raw)
  To: intel-gfx

The Ironlake code won't work on these old chips, so disable it to avoid
hanging older systems.

Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
---
 drivers/gpu/drm/i915/intel_display.c |   15 ++++++---------
 1 files changed, 6 insertions(+), 9 deletions(-)

diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
index 3f73690..3a488ef 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -6702,12 +6702,7 @@ void intel_modeset_init(struct drm_device *dev)
 	if (IS_IRONLAKE_M(dev)) {
 		ironlake_enable_drps(dev);
 		intel_init_emon(dev);
-	}
-
-	if (IS_GEN6(dev))
-		gen6_enable_rps(dev_priv);
 
-	if ((IS_GEN4(dev) || IS_GEN5(dev)) && IS_MOBILE(dev)) {
 		dev_priv->renderctx = intel_alloc_context_page(dev);
 		if (!dev_priv->renderctx)
 			goto skip_rc6;
@@ -6720,6 +6715,9 @@ void intel_modeset_init(struct drm_device *dev)
 		ironlake_enable_rc6(dev);
 	}
 
+	if (IS_GEN6(dev))
+		gen6_enable_rps(dev_priv);
+
 skip_rc6:
 	INIT_WORK(&dev_priv->idle_work, intel_idle_update);
 	setup_timer(&dev_priv->idle_timer, intel_gpu_idle_timer,
@@ -6752,14 +6750,13 @@ void intel_modeset_cleanup(struct drm_device *dev)
 	if (dev_priv->display.disable_fbc)
 		dev_priv->display.disable_fbc(dev);
 
-	if (IS_IRONLAKE_M(dev))
+	if (IS_IRONLAKE_M(dev)) {
 		ironlake_disable_drps(dev);
+		ironlake_disable_rc6(dev);
+	}
 	if (IS_GEN6(dev))
 		gen6_disable_rps(dev);
 
-	if ((IS_GEN4(dev) || IS_GEN5(dev)) && IS_MOBILE(dev))
-		ironlake_disable_rc6(dev);
-
 	mutex_unlock(&dev->struct_mutex);
 
 	/* Disable the irq before mode object teardown, for the irq might
-- 
1.7.2.3

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH] drm/i915: disable rc6 on Cantiga and Crestline
  2010-12-25  4:29 [PATCH] drm/i915: disable rc6 on Cantiga and Crestline Jesse Barnes
@ 2010-12-25 12:37 ` Chris Wilson
  2010-12-25 20:35   ` Jesse Barnes
  2010-12-27 19:29   ` Jesse Barnes
  0 siblings, 2 replies; 4+ messages in thread
From: Chris Wilson @ 2010-12-25 12:37 UTC (permalink / raw)
  To: Jesse Barnes, intel-gfx

On Fri, 24 Dec 2010 20:29:34 -0800, Jesse Barnes <jbarnes@virtuousgeek.org> wrote:
> The Ironlake code won't work on these old chips, so disable it to avoid
> hanging older systems.

But AFAICS, pwrctxa is enabled for crestline/cantiga. Any info on whether
that's true?
-Chris

-- 
Chris Wilson, Intel Open Source Technology Centre

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] drm/i915: disable rc6 on Cantiga and Crestline
  2010-12-25 12:37 ` Chris Wilson
@ 2010-12-25 20:35   ` Jesse Barnes
  2010-12-27 19:29   ` Jesse Barnes
  1 sibling, 0 replies; 4+ messages in thread
From: Jesse Barnes @ 2010-12-25 20:35 UTC (permalink / raw)
  To: Chris Wilson, intel-gfx

Yeah, we should be able to get it working, but the MI_SET_CONTEXT is failing.  I tried removing the extended save/restore and suspend flush, but things still hung at load.  We probably need to init some DRPS state as well...



"Chris Wilson" <chris@chris-wilson.co.uk> wrote:

>On Fri, 24 Dec 2010 20:29:34 -0800, Jesse Barnes
><jbarnes@virtuousgeek.org> wrote:
>> The Ironlake code won't work on these old chips, so disable it to
>avoid
>> hanging older systems.
>
>But AFAICS, pwrctxa is enabled for crestline/cantiga. Any info on
>whether
>that's true?
>-Chris
>
>-- 
>Chris Wilson, Intel Open Source Technology Centre

--
Jesse Barnes, Intel Open Source Technology Center

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] drm/i915: disable rc6 on Cantiga and Crestline
  2010-12-25 12:37 ` Chris Wilson
  2010-12-25 20:35   ` Jesse Barnes
@ 2010-12-27 19:29   ` Jesse Barnes
  1 sibling, 0 replies; 4+ messages in thread
From: Jesse Barnes @ 2010-12-27 19:29 UTC (permalink / raw)
  To: Chris Wilson; +Cc: intel-gfx

On Sat, 25 Dec 2010 12:37:52 +0000
Chris Wilson <chris@chris-wilson.co.uk> wrote:

> On Fri, 24 Dec 2010 20:29:34 -0800, Jesse Barnes <jbarnes@virtuousgeek.org> wrote:
> > The Ironlake code won't work on these old chips, so disable it to avoid
> > hanging older systems.
> 
> But AFAICS, pwrctxa is enabled for crestline/cantiga. Any info on whether
> that's true?

Looking at this some more, we don't have a way of checking whether
we're in RC6 on Cantiga.  All the regs appear to be programmed
correctly to allow it, but the bits indicating current RS state on
Ironlake are undefined on Cantiga (and read as 0 on my system).

Running the MI_SET_CONTEXT code on Cantiga results in a hang.  I don't
know why though, even after removing the MI_SUSPEND_FLUSH instructions
(which is only available on ILK+) and reducing the command count it
hangs at load.

Without getting that working and measuring the before/after power, I
don't think we can safely enable RC6 on anything before Ironlake.

-- 
Jesse Barnes, Intel Open Source Technology Center

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2010-12-27 19:29 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-12-25  4:29 [PATCH] drm/i915: disable rc6 on Cantiga and Crestline Jesse Barnes
2010-12-25 12:37 ` Chris Wilson
2010-12-25 20:35   ` Jesse Barnes
2010-12-27 19:29   ` Jesse Barnes

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox