[Intel-gfx] [PATCH 02/13] drm/i915: Pull watermark level validity check out
Chris Wilson
chris at chris-wilson.co.uk
Tue Aug 6 21:41:03 CEST 2013
On Tue, Aug 06, 2013 at 10:24:01PM +0300, ville.syrjala at linux.intel.com wrote:
> From: Ville Syrjälä <ville.syrjala at linux.intel.com>
>
> Refactor the code a bit to split the watermark level validity check into
> a separate function.
>
> Also add hack there that allows us to use it even for LP0 watermarks.
> ATM we don't pre-compute/check the LP0 watermarks, so we just have to
> clamp them to the maximum and hope things work out.
I don't see where we log the unclamped or post-clamped values. This
would be a good opportunity to improve the logging in a common spot.
Comment inline.
> Signed-off-by: Ville Syrjälä <ville.syrjala at linux.intel.com>
> ---
> drivers/gpu/drm/i915/intel_pm.c | 35 +++++++++++++++++++++++++++++++----
> 1 file changed, 31 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c
> index fe0c2af..f2374e0 100644
> --- a/drivers/gpu/drm/i915/intel_pm.c
> +++ b/drivers/gpu/drm/i915/intel_pm.c
> @@ -2284,6 +2284,36 @@ static uint32_t ilk_compute_fbc_wm(struct hsw_pipe_wm_parameters *params,
> params->pri_bytes_per_pixel);
> }
>
> +static bool ilk_check_wm(int level,
> + const struct hsw_wm_maximums *max,
> + struct hsw_lp_wm_result *result)
> +{
> + bool ret;
> +
> + result->enable = result->pri_val <= max->pri &&
> + result->spr_val <= max->spr &&
> + result->cur_val <= max->cur;
> +
> + ret = result->enable;
> +
> + /*
> + * HACK until we can pre-compute everything,
> + * and thus fail gracefully if LP0 watermarks
> + * are exceeded...
> + */
> + if (level == 0 && !result->enable) {
> + result->pri_val = min_t(uint32_t, result->pri_val, max->pri);
> + result->spr_val = min_t(uint32_t, result->spr_val, max->spr);
> + result->cur_val = min_t(uint32_t, result->cur_val, max->cur);
> + result->enable = true;
> + ret = false;
ret is already false.
> + }
> +
> + DRM_DEBUG_KMS("WM%d: %sabled\n", level, result->enable ? "en" : "dis");
> +
> + return ret;
> +}
> +
--
Chris Wilson, Intel Open Source Technology Centre
More information about the Intel-gfx
mailing list