[PATCH 1/3] drm/i915/display: Add aux function pointer for fast wake sync pulse count

Ville Syrjälä ville.syrjala at linux.intel.com
Wed Feb 21 19:05:00 UTC 2024


On Wed, Feb 21, 2024 at 09:53:20AM +0200, Jouni Högander wrote:
> ALPM AUX-Wake fast wake sync pulse count is needed by PSR to calculate IO
> wake and fast wake lines.
> 
> Signed-off-by: Jouni Högander <jouni.hogander at intel.com>
> ---
>  drivers/gpu/drm/i915/display/intel_display_types.h |  6 ++++++
>  drivers/gpu/drm/i915/display/intel_dp_aux.c        | 12 +++++++-----
>  2 files changed, 13 insertions(+), 5 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/display/intel_display_types.h b/drivers/gpu/drm/i915/display/intel_display_types.h
> index 0d4012097db1..1231d374aeec 100644
> --- a/drivers/gpu/drm/i915/display/intel_display_types.h
> +++ b/drivers/gpu/drm/i915/display/intel_display_types.h
> @@ -1798,6 +1798,12 @@ struct intel_dp {
>  	u32 (*get_aux_send_ctl)(struct intel_dp *dp, int send_bytes,
>  				u32 aux_clock_divider);
>  
> +	/*
> +	 * This function returns the number of fast wake sync pulses. It is
> +	 * needed by PSR code to calculate needed fast wake and io wake lines.
> +	 */
> +	u8 (*get_aux_fw_sync_len)(void);

We have just the one function so I don't really see the 
point of having this function pointer.

> +
>  	i915_reg_t (*aux_ch_ctl_reg)(struct intel_dp *dp);
>  	i915_reg_t (*aux_ch_data_reg)(struct intel_dp *dp, int index);
>  
> diff --git a/drivers/gpu/drm/i915/display/intel_dp_aux.c b/drivers/gpu/drm/i915/display/intel_dp_aux.c
> index 4f4a0e3b3114..fad39b2e3022 100644
> --- a/drivers/gpu/drm/i915/display/intel_dp_aux.c
> +++ b/drivers/gpu/drm/i915/display/intel_dp_aux.c
> @@ -143,10 +143,10 @@ static int intel_dp_aux_sync_len(void)
>  	return precharge + preamble;
>  }
>  
> -static int intel_dp_aux_fw_sync_len(void)
> +static u8 intel_dp_aux_fw_sync_len(void)
>  {
> -	int precharge = 10; /* 10-16 */
> -	int preamble = 8;
> +	u8 precharge = 10; /* 10-16 */
> +	u8 preamble = 8;
>  
>  	return precharge + preamble;
>  }
> @@ -793,10 +793,12 @@ void intel_dp_aux_init(struct intel_dp *intel_dp)
>  	else
>  		intel_dp->get_aux_clock_divider = g4x_get_aux_clock_divider;
>  
> -	if (DISPLAY_VER(i915) >= 9)
> +	if (DISPLAY_VER(i915) >= 9) {
>  		intel_dp->get_aux_send_ctl = skl_get_aux_send_ctl;
> -	else
> +		intel_dp->get_aux_fw_sync_len = intel_dp_aux_fw_sync_len;
> +	} else {
>  		intel_dp->get_aux_send_ctl = g4x_get_aux_send_ctl;
> +	}
>  
>  	intel_dp->aux.drm_dev = &i915->drm;
>  	drm_dp_aux_init(&intel_dp->aux);
> -- 
> 2.34.1

-- 
Ville Syrjälä
Intel


More information about the Intel-gfx mailing list