aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaniel Vetter <daniel.vetter@ffwll.ch>2012-11-02 14:55:04 -0400
committerDaniel Vetter <daniel.vetter@ffwll.ch>2012-11-11 17:51:39 -0500
commit3e37394802c1f2b0000da0a096455d2a3900df48 (patch)
tree56ccf85e09e58d3e7fe97f57746deef1a7e096cf
parentc85aa8855a4b2e0477fe6dfd0835270f2277aa8c (diff)
drm/i915: move pwrctx/renderctx to the other ilk power state
Reviewed-by: Jesse Barnes <jbarnes@virtuousgeek.org> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
-rw-r--r--drivers/gpu/drm/i915/i915_debugfs.c8
-rw-r--r--drivers/gpu/drm/i915/i915_drv.h6
-rw-r--r--drivers/gpu/drm/i915/intel_pm.c32
3 files changed, 23 insertions, 23 deletions
diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c
index 0e405e5278e4..598987ff4fec 100644
--- a/drivers/gpu/drm/i915/i915_debugfs.c
+++ b/drivers/gpu/drm/i915/i915_debugfs.c
@@ -1400,15 +1400,15 @@ static int i915_context_status(struct seq_file *m, void *unused)
1400 if (ret) 1400 if (ret)
1401 return ret; 1401 return ret;
1402 1402
1403 if (dev_priv->pwrctx) { 1403 if (dev_priv->ips.pwrctx) {
1404 seq_printf(m, "power context "); 1404 seq_printf(m, "power context ");
1405 describe_obj(m, dev_priv->pwrctx); 1405 describe_obj(m, dev_priv->ips.pwrctx);
1406 seq_printf(m, "\n"); 1406 seq_printf(m, "\n");
1407 } 1407 }
1408 1408
1409 if (dev_priv->renderctx) { 1409 if (dev_priv->ips.renderctx) {
1410 seq_printf(m, "render context "); 1410 seq_printf(m, "render context ");
1411 describe_obj(m, dev_priv->renderctx); 1411 describe_obj(m, dev_priv->ips.renderctx);
1412 seq_printf(m, "\n"); 1412 seq_printf(m, "\n");
1413 } 1413 }
1414 1414
diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index abf87c6977e8..8c7c43f07873 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -581,6 +581,9 @@ struct intel_ilk_power_mgmt {
581 581
582 int c_m; 582 int c_m;
583 int r_t; 583 int r_t;
584
585 struct drm_i915_gem_object *pwrctx;
586 struct drm_i915_gem_object *renderctx;
584}; 587};
585 588
586typedef struct drm_i915_private { 589typedef struct drm_i915_private {
@@ -618,9 +621,6 @@ typedef struct drm_i915_private {
618 621
619 drm_dma_handle_t *status_page_dmah; 622 drm_dma_handle_t *status_page_dmah;
620 uint32_t counter; 623 uint32_t counter;
621 struct drm_i915_gem_object *pwrctx;
622 struct drm_i915_gem_object *renderctx;
623
624 struct resource mch_res; 624 struct resource mch_res;
625 625
626 atomic_t irq_received; 626 atomic_t irq_received;
diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c
index 263663a3ab68..b6d980b0ac4c 100644
--- a/drivers/gpu/drm/i915/intel_pm.c
+++ b/drivers/gpu/drm/i915/intel_pm.c
@@ -2593,16 +2593,16 @@ void ironlake_teardown_rc6(struct drm_device *dev)
2593{ 2593{
2594 struct drm_i915_private *dev_priv = dev->dev_private; 2594 struct drm_i915_private *dev_priv = dev->dev_private;
2595 2595
2596 if (dev_priv->renderctx) { 2596 if (dev_priv->ips.renderctx) {
2597 i915_gem_object_unpin(dev_priv->renderctx); 2597 i915_gem_object_unpin(dev_priv->ips.renderctx);
2598 drm_gem_object_unreference(&dev_priv->renderctx->base); 2598 drm_gem_object_unreference(&dev_priv->ips.renderctx->base);
2599 dev_priv->renderctx = NULL; 2599 dev_priv->ips.renderctx = NULL;
2600 } 2600 }
2601 2601
2602 if (dev_priv->pwrctx) { 2602 if (dev_priv->ips.pwrctx) {
2603 i915_gem_object_unpin(dev_priv->pwrctx); 2603 i915_gem_object_unpin(dev_priv->ips.pwrctx);
2604 drm_gem_object_unreference(&dev_priv->pwrctx->base); 2604 drm_gem_object_unreference(&dev_priv->ips.pwrctx->base);
2605 dev_priv->pwrctx = NULL; 2605 dev_priv->ips.pwrctx = NULL;
2606 } 2606 }
2607} 2607}
2608 2608
@@ -2628,14 +2628,14 @@ static int ironlake_setup_rc6(struct drm_device *dev)
2628{ 2628{
2629 struct drm_i915_private *dev_priv = dev->dev_private; 2629 struct drm_i915_private *dev_priv = dev->dev_private;
2630 2630
2631 if (dev_priv->renderctx == NULL) 2631 if (dev_priv->ips.renderctx == NULL)
2632 dev_priv->renderctx = intel_alloc_context_page(dev); 2632 dev_priv->ips.renderctx = intel_alloc_context_page(dev);
2633 if (!dev_priv->renderctx) 2633 if (!dev_priv->ips.renderctx)
2634 return -ENOMEM; 2634 return -ENOMEM;
2635 2635
2636 if (dev_priv->pwrctx == NULL) 2636 if (dev_priv->ips.pwrctx == NULL)
2637 dev_priv->pwrctx = intel_alloc_context_page(dev); 2637 dev_priv->ips.pwrctx = intel_alloc_context_page(dev);
2638 if (!dev_priv->pwrctx) { 2638 if (!dev_priv->ips.pwrctx) {
2639 ironlake_teardown_rc6(dev); 2639 ironlake_teardown_rc6(dev);
2640 return -ENOMEM; 2640 return -ENOMEM;
2641 } 2641 }
@@ -2673,7 +2673,7 @@ static void ironlake_enable_rc6(struct drm_device *dev)
2673 2673
2674 intel_ring_emit(ring, MI_SUSPEND_FLUSH | MI_SUSPEND_FLUSH_EN); 2674 intel_ring_emit(ring, MI_SUSPEND_FLUSH | MI_SUSPEND_FLUSH_EN);
2675 intel_ring_emit(ring, MI_SET_CONTEXT); 2675 intel_ring_emit(ring, MI_SET_CONTEXT);
2676 intel_ring_emit(ring, dev_priv->renderctx->gtt_offset | 2676 intel_ring_emit(ring, dev_priv->ips.renderctx->gtt_offset |
2677 MI_MM_SPACE_GTT | 2677 MI_MM_SPACE_GTT |
2678 MI_SAVE_EXT_STATE_EN | 2678 MI_SAVE_EXT_STATE_EN |
2679 MI_RESTORE_EXT_STATE_EN | 2679 MI_RESTORE_EXT_STATE_EN |
@@ -2695,7 +2695,7 @@ static void ironlake_enable_rc6(struct drm_device *dev)
2695 return; 2695 return;
2696 } 2696 }
2697 2697
2698 I915_WRITE(PWRCTXA, dev_priv->pwrctx->gtt_offset | PWRCTX_EN); 2698 I915_WRITE(PWRCTXA, dev_priv->ips.pwrctx->gtt_offset | PWRCTX_EN);
2699 I915_WRITE(RSTDBYCTL, I915_READ(RSTDBYCTL) & ~RCX_SW_EXIT); 2699 I915_WRITE(RSTDBYCTL, I915_READ(RSTDBYCTL) & ~RCX_SW_EXIT);
2700} 2700}
2701 2701