From: "Zanoni, Paulo R" <paulo.r.zanoni@intel.com>
To: "ville.syrjala@linux.intel.com" <ville.syrjala@linux.intel.com>,
"maarten.lankhorst@linux.intel.com"
<maarten.lankhorst@linux.intel.com>
Cc: "intel-gfx@lists.freedesktop.org" <intel-gfx@lists.freedesktop.org>
Subject: Re: [PATCH v1.1 1/2] drm/i915: Allow preservation of watermarks, v2.
Date: Wed, 2 Mar 2016 19:44:57 +0000 [thread overview]
Message-ID: <1456947896.2408.30.camel@intel.com> (raw)
In-Reply-To: <56D6D09E.5040007@linux.intel.com>
Em Qua, 2016-03-02 às 12:38 +0100, Maarten Lankhorst escreveu:
> As Paulo has noted we can help bisectability by separating computing
> watermarks on a noop in 2 separate commits.
>
> This patch no longer clears the crtc watermark state, but
> recalculates
> it completely. Regardless whether a level is used the full values for
> each level are calculated. If a level is invalid wm[level].enable is
> unset.
>
> Changes since v1:
> - Only call ilk_validate_wm_level when level <= usable_level.
LGTM.
Reviewed-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
>
> Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
> ---
> drivers/gpu/drm/i915/intel_pm.c | 23 +++++++++++++----------
> 1 file changed, 13 insertions(+), 10 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/intel_pm.c
> b/drivers/gpu/drm/i915/intel_pm.c
> index 61dcac9dea37..4c21b98e5a5c 100644
> --- a/drivers/gpu/drm/i915/intel_pm.c
> +++ b/drivers/gpu/drm/i915/intel_pm.c
> @@ -2300,7 +2300,7 @@ static int ilk_compute_pipe_wm(struct
> intel_crtc *intel_crtc,
> struct intel_plane_state *pristate = NULL;
> struct intel_plane_state *sprstate = NULL;
> struct intel_plane_state *curstate = NULL;
> - int level, max_level = ilk_wm_max_level(dev);
> + int level, max_level = ilk_wm_max_level(dev), usable_level;
> struct ilk_wm_maximums max;
>
> cstate = intel_atomic_get_crtc_state(state, intel_crtc);
> @@ -2308,7 +2308,6 @@ static int ilk_compute_pipe_wm(struct
> intel_crtc *intel_crtc,
> return PTR_ERR(cstate);
>
> pipe_wm = &cstate->wm.optimal.ilk;
> - memset(pipe_wm, 0, sizeof(*pipe_wm));
>
> for_each_intel_plane_on_crtc(dev, intel_crtc, intel_plane) {
> ps = drm_atomic_get_plane_state(state,
> @@ -2330,13 +2329,15 @@ static int ilk_compute_pipe_wm(struct
> intel_crtc *intel_crtc,
> (drm_rect_width(&sprstate->dst) !=
> drm_rect_width(&sprstate->src) >> 16 ||
> drm_rect_height(&sprstate->dst) !=
> drm_rect_height(&sprstate->src) >> 16);
>
> + usable_level = max_level;
> +
> /* ILK/SNB: LP2+ watermarks only w/o sprites */
> if (INTEL_INFO(dev)->gen <= 6 && sprstate->visible)
> - max_level = 1;
> + usable_level = 1;
>
> /* ILK/SNB/IVB: LP1+ watermarks only w/o scaling */
> if (pipe_wm->sprites_scaled)
> - max_level = 0;
> + usable_level = 0;
>
> ilk_compute_wm_level(dev_priv, intel_crtc, 0, cstate,
> pristate, sprstate, curstate, &pipe_wm-
> >wm[0]);
> @@ -2350,20 +2351,22 @@ static int ilk_compute_pipe_wm(struct
> intel_crtc *intel_crtc,
> ilk_compute_wm_reg_maximums(dev, 1, &max);
>
> for (level = 1; level <= max_level; level++) {
> - struct intel_wm_level wm = {};
> + struct intel_wm_level *wm = &pipe_wm->wm[level];
>
> ilk_compute_wm_level(dev_priv, intel_crtc, level,
> cstate,
> - pristate, sprstate, curstate,
> &wm);
> + pristate, sprstate, curstate,
> wm);
>
> /*
> * Disable any watermark level that exceeds the
> * register maximums since such watermarks are
> * always invalid.
> */
> - if (!ilk_validate_wm_level(level, &max, &wm))
> - break;
> -
> - pipe_wm->wm[level] = wm;
> + if (level > usable_level) {
> + wm->enable = false;
> + } else if (!ilk_validate_wm_level(level, &max, wm))
> {
> + wm->enable = false;
> + usable_level = level;
> + }
> }
>
> return 0;
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
next prev parent reply other threads:[~2016-03-02 19:44 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-03-01 10:07 [PATCH 1/2] drm/i915: Allow preservation of watermarks Maarten Lankhorst
2016-03-01 10:07 ` [PATCH 2/2] drm/i915: Only recalculate wm's for planes part of the state, v2 Maarten Lankhorst
2016-03-01 22:28 ` Matt Roper
2016-03-02 21:08 ` Zanoni, Paulo R
2016-03-03 8:23 ` Maarten Lankhorst
2016-03-01 12:55 ` ✗ Fi.CI.BAT: failure for series starting with [1/2] drm/i915: Allow preservation of watermarks Patchwork
2016-03-02 11:17 ` [PATCH 1/2] " Ville Syrjälä
2016-03-02 11:25 ` Maarten Lankhorst
2016-03-02 11:38 ` [PATCH v1.1 1/2] drm/i915: Allow preservation of watermarks, v2 Maarten Lankhorst
2016-03-02 19:44 ` Zanoni, Paulo R [this message]
2016-03-04 19:11 ` Ville Syrjälä
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1456947896.2408.30.camel@intel.com \
--to=paulo.r.zanoni@intel.com \
--cc=intel-gfx@lists.freedesktop.org \
--cc=maarten.lankhorst@linux.intel.com \
--cc=ville.syrjala@linux.intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.