From: "Ville Syrjälä" <ville.syrjala@linux.intel.com>
To: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Cc: intel-gfx@lists.freedesktop.org
Subject: Re: [PATCH v2 4/4] drm/i915: Calculate vlv/chv intermediate watermarks correctly, v2.
Date: Wed, 3 May 2017 17:11:59 +0300 [thread overview]
Message-ID: <20170503141159.GM12629@intel.com> (raw)
In-Reply-To: <587a919a-52a9-ed40-9e18-e6da724be1b0@linux.intel.com>
On Wed, May 03, 2017 at 04:06:37PM +0200, Maarten Lankhorst wrote:
> Op 03-05-17 om 15:45 schreef Ville Syrjälä:
> > On Mon, May 01, 2017 at 03:34:34PM +0200, Maarten Lankhorst wrote:
> >> The watermarks it should calculate against are the old optimal watermarks.
> >> The currently active crtc watermarks are pure fiction, and are invalid in
> >> case of a nonblocking modeset, page flip enabling/disabling planes or any
> >> other reason.
> >>
> >> When the crtc is disabled or during a modeset the intermediate watermarks
> >> don't need to be programmed separately, and could be directly assigned
> >> to the optimal watermarks.
> >>
> >> Also rename crtc_state to new_crtc_state, to distinguish it from the old state.
> >>
> >> Changes since v1:
> >> - Use intel_atomic_get_old_crtc_state. (ville)
> >>
> >> Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
> >> ---
> >> drivers/gpu/drm/i915/intel_pm.c | 20 ++++++++++++++------
> >> 1 file changed, 14 insertions(+), 6 deletions(-)
> >>
> >> diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c
> >> index 0f344b1fff45..a09396ee1f3d 100644
> >> --- a/drivers/gpu/drm/i915/intel_pm.c
> >> +++ b/drivers/gpu/drm/i915/intel_pm.c
> >> @@ -1458,16 +1458,24 @@ static void vlv_atomic_update_fifo(struct intel_atomic_state *state,
> >>
> >> static int vlv_compute_intermediate_wm(struct drm_device *dev,
> >> struct intel_crtc *crtc,
> >> - struct intel_crtc_state *crtc_state)
> >> + struct intel_crtc_state *new_crtc_state)
> >> {
> >> - struct vlv_wm_state *intermediate = &crtc_state->wm.vlv.intermediate;
> >> - const struct vlv_wm_state *optimal = &crtc_state->wm.vlv.optimal;
> >> - const struct vlv_wm_state *active = &crtc->wm.active.vlv;
> >> + struct vlv_wm_state *intermediate = &new_crtc_state->wm.vlv.intermediate;
> >> + const struct vlv_wm_state *optimal = &new_crtc_state->wm.vlv.optimal;
> >> + const struct intel_crtc_state *old_crtc_state =
> >> + intel_atomic_get_old_crtc_state(new_crtc_state->base.state, crtc);
> >> + const struct vlv_wm_state *active = &old_crtc_state->wm.vlv.optimal;
> >> int level;
> >>
> >> + if (!new_crtc_state->base.active || drm_atomic_crtc_needs_modeset(&new_crtc_state->base)) {
> >> + *intermediate = *optimal;
> >> +
> >> + return 0;
> >> + }
> >> +
> >> intermediate->num_levels = min(optimal->num_levels, active->num_levels);
> >> intermediate->cxsr = optimal->cxsr && active->cxsr &&
> >> - !crtc_state->disable_cxsr;
> >> + !new_crtc_state->disable_cxsr;
> > We need to consider disable_cxsr even in the modeset case.
> Why is this? crtc_state->disable_cxsr is set if any plane is part of the crtc during modeset, so it's disabled during modeset already.
It's set if any plane is enabling/disabling, which should be quite
typical during a modeset.
--
Ville Syrjälä
Intel OTC
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
next prev parent reply other threads:[~2017-05-03 14:12 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-05-01 13:34 [PATCH v2 0/4] drm/i915: Calculate intermediate watermarks correctly Maarten Lankhorst
2017-05-01 13:34 ` [PATCH v2 1/4] drm/i915: Change use get_new_plane_state instead of existing plane state Maarten Lankhorst
2017-05-03 13:45 ` Ville Syrjälä
2017-05-01 13:34 ` [PATCH v2 2/4] drm/i915: Change get_existing_crtc_state to old state Maarten Lankhorst
2017-05-03 13:46 ` Ville Syrjälä
2017-05-01 13:34 ` [PATCH v2 3/4] drm/i915: Calculate ironlake intermediate watermarks correctly, v2 Maarten Lankhorst
2017-05-03 13:48 ` Ville Syrjälä
2017-05-01 13:34 ` [PATCH v2 4/4] drm/i915: Calculate vlv/chv " Maarten Lankhorst
2017-05-03 13:45 ` Ville Syrjälä
2017-05-03 14:06 ` Maarten Lankhorst
2017-05-03 14:11 ` Ville Syrjälä [this message]
2017-05-03 15:53 ` Maarten Lankhorst
2017-05-03 16:07 ` Ville Syrjälä
2017-05-03 16:18 ` Maarten Lankhorst
2017-05-03 18:03 ` Ville Syrjälä
2017-05-03 20:28 ` Maarten Lankhorst
2017-05-04 8:12 ` Maarten Lankhorst
2017-05-04 10:56 ` Ville Syrjälä
2017-05-01 13:53 ` ✓ Fi.CI.BAT: success for drm/i915: Calculate intermediate watermarks correctly Patchwork
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=20170503141159.GM12629@intel.com \
--to=ville.syrjala@linux.intel.com \
--cc=intel-gfx@lists.freedesktop.org \
--cc=maarten.lankhorst@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.