[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