[Intel-gfx] [PATCH 04/12] drm/i915/psr: hsw_psr_activate.

Pandiyan, Dhinakaran dhinakaran.pandiyan at intel.com
Thu Sep 7 20:07:10 UTC 2017


On Wed, 2017-07-12 at 12:20 -0700, Rodrigo Vivi wrote:
> Oh HSW the real activate of PSR is decided by the source

Typos: On HSW+

> after certain amount of configured idle frames.
> 
> However for the driver perspective where we track psr.active
> variable this function here is the actual activate one. So
> let's rename it before moving to vfunc with that.
> 
> Cc: Dhinakaran Pandiyan <dhinakaran.pandiyan at intel.com>
> Cc: Jim Bride <jim.bride at linux.intel.com>
> Cc: Vathsala NAgaraju <vathsala.nagaraju at intel.com>
> Signed-off-by: Rodrigo Vivi <rodrigo.vivi at intel.com>
> ---
>  drivers/gpu/drm/i915/intel_psr.c | 21 +++++++++++----------
>  1 file changed, 11 insertions(+), 10 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/intel_psr.c b/drivers/gpu/drm/i915/intel_psr.c
> index 535ea0b7ec20..45c640989a46 100644
> --- a/drivers/gpu/drm/i915/intel_psr.c
> +++ b/drivers/gpu/drm/i915/intel_psr.c
> @@ -254,7 +254,7 @@ static void vlv_psr_activate(struct intel_dp *intel_dp)
>  		   VLV_EDP_PSR_ACTIVE_ENTRY);
>  }
>  
> -static void intel_enable_source_psr1(struct intel_dp *intel_dp)
> +static void hsw_activate_psr1(struct intel_dp *intel_dp)
>  {
>  	struct intel_digital_port *dig_port = dp_to_dig_port(intel_dp);
>  	struct drm_device *dev = dig_port->base.base.dev;
> @@ -307,7 +307,7 @@ static void intel_enable_source_psr1(struct intel_dp *intel_dp)
>  	I915_WRITE(EDP_PSR_CTL, val);
>  }
>  
> -static void intel_enable_source_psr2(struct intel_dp *intel_dp)
> +static void hsw_activate_psr2(struct intel_dp *intel_dp)
>  {
>  	struct intel_digital_port *dig_port = dp_to_dig_port(intel_dp);
>  	struct drm_device *dev = dig_port->base.base.dev;
> @@ -343,17 +343,22 @@ static void intel_enable_source_psr2(struct intel_dp *intel_dp)
>  	I915_WRITE(EDP_PSR2_CTL, val);
>  }
>  
> -static void hsw_psr_enable_source(struct intel_dp *intel_dp)
> +static void hsw_psr_activate(struct intel_dp *intel_dp)
>  {
>  	struct intel_digital_port *dig_port = dp_to_dig_port(intel_dp);
>  	struct drm_device *dev = dig_port->base.base.dev;
>  	struct drm_i915_private *dev_priv = to_i915(dev);
>  
> +	/* On HSW+ after we enable PSR on source it will activate it
> +	 * as soon as it match configure idle_frame count. So
> +	 * we just actually enable it here on activation time.
> +	 */
> +
>  	/* psr1 and psr2 are mutually exclusive.*/
>  	if (dev_priv->psr.psr2_support)
> -		intel_enable_source_psr2(intel_dp);
> +		hsw_activate_psr2(intel_dp);
>  	else
> -		intel_enable_source_psr1(intel_dp);
> +		hsw_activate_psr1(intel_dp);
>  }
>  
>  static bool intel_psr_match_conditions(struct intel_dp *intel_dp)
> @@ -459,11 +464,7 @@ static void intel_psr_activate(struct intel_dp *intel_dp)
>  
>  	/* Enable/Re-enable PSR on the host */
>  	if (HAS_DDI(dev_priv))
> -		/* On HSW+ after we enable PSR on source it will activate it
> -		 * as soon as it match configure idle_frame count. So
> -		 * we just actually enable it here on activation time.
> -		 */
> -		hsw_psr_enable_source(intel_dp);
> +		hsw_psr_activate(intel_dp);
>  	else
>  		vlv_psr_activate(intel_dp);
>  


More information about the Intel-gfx mailing list