Re: [PATCH v5 3/8] drm/i915: store the peak bw per QGV point

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, May 12, 2023 at 02:17:45AM +0300, Vinod Govindapillai wrote:
> In MTL onwards, pcode locks the GV point based on the peak BW
> of a QGV point. So store the peak BW of all the QGV points.
> 
> v2: use DIV_ROUND_CLOSEST() for the peakBW calculation
> 
> Bspec: 64636
> 
> Signed-off-by: Vinod Govindapillai <vinod.govindapillai@xxxxxxxxx>

Reviewed-by: Stanislav Lisovskiy <stanislav.lisovskiy@xxxxxxxxx>

> ---
>  drivers/gpu/drm/i915/display/intel_bw.c           | 8 ++++++--
>  drivers/gpu/drm/i915/display/intel_display_core.h | 2 ++
>  2 files changed, 8 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/display/intel_bw.c b/drivers/gpu/drm/i915/display/intel_bw.c
> index c8075a37c3ab..db117638d23b 100644
> --- a/drivers/gpu/drm/i915/display/intel_bw.c
> +++ b/drivers/gpu/drm/i915/display/intel_bw.c
> @@ -534,10 +534,14 @@ static int tgl_get_bw_info(struct drm_i915_private *dev_priv, const struct intel
>  
>  			bi->deratedbw[j] = min(maxdebw,
>  					       bw * (100 - sa->derating) / 100);
> +			bi->peakbw[j] = DIV_ROUND_CLOSEST(sp->dclk *
> +							  num_channels *
> +							  qi.channel_width, 8);
>  
>  			drm_dbg_kms(&dev_priv->drm,
> -				    "BW%d / QGV %d: num_planes=%d deratedbw=%u\n",
> -				    i, j, bi->num_planes, bi->deratedbw[j]);
> +				    "BW%d / QGV %d: num_planes=%d deratedbw=%u peakbw: %u\n",
> +				    i, j, bi->num_planes, bi->deratedbw[j],
> +				    bi->peakbw[j]);
>  		}
>  
>  		for (j = 0; j < qi.num_psf_points; j++) {
> diff --git a/drivers/gpu/drm/i915/display/intel_display_core.h b/drivers/gpu/drm/i915/display/intel_display_core.h
> index e36f88a39b86..9f66d734edf6 100644
> --- a/drivers/gpu/drm/i915/display/intel_display_core.h
> +++ b/drivers/gpu/drm/i915/display/intel_display_core.h
> @@ -314,6 +314,8 @@ struct intel_display {
>  			unsigned int deratedbw[I915_NUM_QGV_POINTS];
>  			/* for each PSF GV point */
>  			unsigned int psf_bw[I915_NUM_PSF_GV_POINTS];
> +			/* Peak BW for each QGV point */
> +			unsigned int peakbw[I915_NUM_QGV_POINTS];
>  			u8 num_qgv_points;
>  			u8 num_psf_gv_points;
>  			u8 num_planes;
> -- 
> 2.34.1
> 



[Index of Archives]     [AMD Graphics]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux