[Intel-gfx] [PATCH 03/10] drm/i915: move pwrctx/renderctx to the other ilk power state
Jesse Barnes
jbarnes at virtuousgeek.org
Fri Nov 2 20:07:54 CET 2012
On Fri, 2 Nov 2012 19:55:04 +0100
Daniel Vetter <daniel.vetter at ffwll.ch> wrote:
> Signed-off-by: Daniel Vetter <daniel.vetter at ffwll.ch>
> ---
> drivers/gpu/drm/i915/i915_debugfs.c | 8 ++++----
> drivers/gpu/drm/i915/i915_drv.h | 6 +++---
> drivers/gpu/drm/i915/intel_pm.c | 32 ++++++++++++++++----------------
> 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 0e405e5..598987f 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)
> if (ret)
> return ret;
>
> - if (dev_priv->pwrctx) {
> + if (dev_priv->ips.pwrctx) {
> seq_printf(m, "power context ");
> - describe_obj(m, dev_priv->pwrctx);
> + describe_obj(m, dev_priv->ips.pwrctx);
> seq_printf(m, "\n");
> }
>
> - if (dev_priv->renderctx) {
> + if (dev_priv->ips.renderctx) {
> seq_printf(m, "render context ");
> - describe_obj(m, dev_priv->renderctx);
> + describe_obj(m, dev_priv->ips.renderctx);
> seq_printf(m, "\n");
> }
>
> diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
> index b7d3933..69cf5fa 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 {
>
> int c_m;
> int r_t;
> +
> + struct drm_i915_gem_object *pwrctx;
> + struct drm_i915_gem_object *renderctx;
> };
>
> typedef struct drm_i915_private {
> @@ -618,9 +621,6 @@ typedef struct drm_i915_private {
>
> drm_dma_handle_t *status_page_dmah;
> uint32_t counter;
> - struct drm_i915_gem_object *pwrctx;
> - struct drm_i915_gem_object *renderctx;
> -
> struct resource mch_res;
>
> atomic_t irq_received;
> diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c
> index 59e089e..e5cff68 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)
> {
> struct drm_i915_private *dev_priv = dev->dev_private;
>
> - if (dev_priv->renderctx) {
> - i915_gem_object_unpin(dev_priv->renderctx);
> - drm_gem_object_unreference(&dev_priv->renderctx->base);
> - dev_priv->renderctx = NULL;
> + if (dev_priv->ips.renderctx) {
> + i915_gem_object_unpin(dev_priv->ips.renderctx);
> + drm_gem_object_unreference(&dev_priv->ips.renderctx->base);
> + dev_priv->ips.renderctx = NULL;
> }
>
> - if (dev_priv->pwrctx) {
> - i915_gem_object_unpin(dev_priv->pwrctx);
> - drm_gem_object_unreference(&dev_priv->pwrctx->base);
> - dev_priv->pwrctx = NULL;
> + if (dev_priv->ips.pwrctx) {
> + i915_gem_object_unpin(dev_priv->ips.pwrctx);
> + drm_gem_object_unreference(&dev_priv->ips.pwrctx->base);
> + dev_priv->ips.pwrctx = NULL;
> }
> }
>
> @@ -2628,14 +2628,14 @@ static int ironlake_setup_rc6(struct drm_device *dev)
> {
> struct drm_i915_private *dev_priv = dev->dev_private;
>
> - if (dev_priv->renderctx == NULL)
> - dev_priv->renderctx = intel_alloc_context_page(dev);
> - if (!dev_priv->renderctx)
> + if (dev_priv->ips.renderctx == NULL)
> + dev_priv->ips.renderctx = intel_alloc_context_page(dev);
> + if (!dev_priv->ips.renderctx)
> return -ENOMEM;
>
> - if (dev_priv->pwrctx == NULL)
> - dev_priv->pwrctx = intel_alloc_context_page(dev);
> - if (!dev_priv->pwrctx) {
> + if (dev_priv->ips.pwrctx == NULL)
> + dev_priv->ips.pwrctx = intel_alloc_context_page(dev);
> + if (!dev_priv->ips.pwrctx) {
> ironlake_teardown_rc6(dev);
> return -ENOMEM;
> }
> @@ -2673,7 +2673,7 @@ static void ironlake_enable_rc6(struct drm_device *dev)
>
> intel_ring_emit(ring, MI_SUSPEND_FLUSH | MI_SUSPEND_FLUSH_EN);
> intel_ring_emit(ring, MI_SET_CONTEXT);
> - intel_ring_emit(ring, dev_priv->renderctx->gtt_offset |
> + intel_ring_emit(ring, dev_priv->ips.renderctx->gtt_offset |
> MI_MM_SPACE_GTT |
> MI_SAVE_EXT_STATE_EN |
> MI_RESTORE_EXT_STATE_EN |
> @@ -2695,7 +2695,7 @@ static void ironlake_enable_rc6(struct drm_device *dev)
> return;
> }
>
> - I915_WRITE(PWRCTXA, dev_priv->pwrctx->gtt_offset | PWRCTX_EN);
> + I915_WRITE(PWRCTXA, dev_priv->ips.pwrctx->gtt_offset | PWRCTX_EN);
> I915_WRITE(RSTDBYCTL, I915_READ(RSTDBYCTL) & ~RCX_SW_EXIT);
> }
>
Reviewed-by: Jesse Barnes <jbarnes at virtuousgeek.org>
--
Jesse Barnes, Intel Open Source Technology Center
More information about the Intel-gfx
mailing list