From: Ander Conselvan De Oliveira <conselvan2@gmail.com>
To: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>,
intel-gfx@lists.freedesktop.org
Subject: Re: [PATCH v2 09/14] drm/i915: Remove atomic.pre_disable_primary.
Date: Tue, 10 Nov 2015 13:29:53 +0200 [thread overview]
Message-ID: <1447154993.2584.17.camel@gmail.com> (raw)
In-Reply-To: <1446535913-31970-10-git-send-email-maarten.lankhorst@linux.intel.com>
On Tue, 2015-11-03 at 08:31 +0100, Maarten Lankhorst wrote:
> This can be derived from the atomic state in pre_plane_update,
> which makes it more clear when it's supposed to be called.
>
> Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
> ---
> drivers/gpu/drm/i915/intel_display.c | 28 ++++++++++++++++++++--------
> drivers/gpu/drm/i915/intel_drv.h | 1 -
> 2 files changed, 20 insertions(+), 9 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/intel_display.c
> b/drivers/gpu/drm/i915/intel_display.c
> index 58074f4adca2..b1d6ce80daaf 100644
> --- a/drivers/gpu/drm/i915/intel_display.c
> +++ b/drivers/gpu/drm/i915/intel_display.c
> @@ -4766,26 +4766,40 @@ static void intel_post_plane_update(struct intel_crtc
> *crtc)
> memset(atomic, 0, sizeof(*atomic));
> }
>
> -static void intel_pre_plane_update(struct intel_crtc *crtc)
> +static void intel_pre_plane_update(struct intel_crtc_state *old_crtc_state)
> {
> + struct intel_crtc *crtc = to_intel_crtc(old_crtc_state->base.crtc);
> struct drm_device *dev = crtc->base.dev;
> struct drm_i915_private *dev_priv = dev->dev_private;
> struct intel_crtc_atomic_commit *atomic = &crtc->atomic;
> struct intel_crtc_state *pipe_config =
> to_intel_crtc_state(crtc->base.state);
> + struct drm_atomic_state *old_state = old_crtc_state->base.state;
> + struct drm_plane *primary = crtc->base.primary;
> + struct drm_plane_state *old_pri_state =
> + drm_atomic_get_existing_plane_state(old_state, primary);
> + bool modeset = needs_modeset(&pipe_config->base);
>
> if (atomic->disable_fbc)
> intel_fbc_disable_crtc(crtc);
>
> - if (atomic->pre_disable_primary)
> - intel_pre_disable_primary(&crtc->base);
> + if (old_pri_state) {
> + struct intel_plane_state *primary_state =
> + to_intel_plane_state(primary->state);
> + struct intel_plane_state *old_primary_state =
> + to_intel_plane_state(old_pri_state);
Hmm, old_primary_state is the intel_state cast of old_pri_state. Not very
descriptive. Maybe we could have a intel_atomic_get_existing_plane_state()
helper that does the cast for us. Seems like that's the end goal almost every
time we call drm_atomic_get_existing_plane_state() anyway. But I guess that can
be done later, so
Reviewed-by: Ander Conselvan de Oliveira <conselvan2@gmail.com>
> +
> + if (old_primary_state->visible &&
> + (modeset || !primary_state->visible))
> + intel_pre_disable_primary(&crtc->base);
> + }
>
> if (pipe_config->visible_changed) {
> crtc->wm.cxsr_allowed = false;
> intel_set_memory_cxsr(dev_priv, false);
> }
>
> - if (!needs_modeset(&pipe_config->base) && pipe_config->wm_changed)
> + if (!modeset && pipe_config->wm_changed)
> intel_update_watermarks(&crtc->base);
> }
>
> @@ -11677,7 +11691,6 @@ int intel_plane_atomic_calc_changes(struct
> drm_crtc_state *crtc_state,
>
> switch (plane->type) {
> case DRM_PLANE_TYPE_PRIMARY:
> - intel_crtc->atomic.pre_disable_primary = turn_off;
> intel_crtc->atomic.post_enable_primary = turn_on;
>
> if (turn_off)
> @@ -13318,7 +13331,7 @@ static int intel_atomic_commit(struct drm_device *dev,
> if (!needs_modeset(crtc->state))
> continue;
>
> - intel_pre_plane_update(intel_crtc);
> + intel_pre_plane_update(to_intel_crtc_state(crtc_state));
>
> if (crtc_state->active) {
> intel_crtc_disable_planes(crtc, crtc_state
> ->plane_mask);
> @@ -13341,7 +13354,6 @@ static int intel_atomic_commit(struct drm_device *dev,
>
> /* Now enable the clocks, plane, pipe, and connectors that we set up.
> */
> for_each_crtc_in_state(state, crtc, crtc_state, i) {
> - struct intel_crtc *intel_crtc = to_intel_crtc(crtc);
> bool modeset = needs_modeset(crtc->state);
> struct intel_crtc_state *pipe_config =
> to_intel_crtc_state(crtc->state);
> @@ -13361,7 +13373,7 @@ static int intel_atomic_commit(struct drm_device *dev,
> }
>
> if (!modeset)
> - intel_pre_plane_update(intel_crtc);
> + intel_pre_plane_update(to_intel_crtc_state(crtc_state
> ));
>
> if (crtc->state->active &&
> (crtc->state->planes_changed || update_pipe))
> diff --git a/drivers/gpu/drm/i915/intel_drv.h
> b/drivers/gpu/drm/i915/intel_drv.h
> index ce5f10fc92aa..8d86627069e5 100644
> --- a/drivers/gpu/drm/i915/intel_drv.h
> +++ b/drivers/gpu/drm/i915/intel_drv.h
> @@ -537,7 +537,6 @@ struct intel_mmio_flip {
> struct intel_crtc_atomic_commit {
> /* Sleepable operations to perform before commit */
> bool disable_fbc;
> - bool pre_disable_primary;
>
> /* Sleepable operations to perform after commit */
> unsigned fb_bits;
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx
next prev parent reply other threads:[~2015-11-10 11:29 UTC|newest]
Thread overview: 39+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-11-03 7:31 [PATCH v2 00/14] Kill off intel_crtc->atomic, rework Maarten Lankhorst
2015-11-03 7:31 ` [PATCH v2 01/14] drm/i915: Use passed plane state for sprite planes, v3 Maarten Lankhorst
2015-11-03 9:22 ` Ville Syrjälä
2015-11-03 10:26 ` Maarten Lankhorst
2015-11-03 7:31 ` [PATCH v2 02/14] drm/i915: Extend DSL readout fix to BDW and SKL Maarten Lankhorst
2015-11-03 9:23 ` Ville Syrjälä
2015-11-03 11:32 ` Jani Nikula
2015-11-03 12:44 ` Maarten Lankhorst
2015-11-05 16:33 ` Jesse Barnes
2015-11-06 9:47 ` Jani Nikula
2015-11-03 7:31 ` [PATCH v2 03/14] drm/i915: Do not acquire crtc state to check clock during modeset, v2 Maarten Lankhorst
2015-11-03 10:09 ` Maarten Lankhorst
2015-11-03 7:31 ` [PATCH v2 04/14] drm/i915: Handle cdclk limits on broadwell Maarten Lankhorst
2015-11-03 7:31 ` [PATCH v2 05/14] drm/i915/bxt: Use the bypass frequency if there are no active pipes Maarten Lankhorst
2015-11-03 7:31 ` [PATCH v2 06/14] drm/i915: Update watermark related members in the crtc_state, v2 Maarten Lankhorst
2015-11-09 14:48 ` Ander Conselvan De Oliveira
2015-11-09 16:10 ` Maarten Lankhorst
2015-11-09 16:20 ` Ville Syrjälä
2015-11-03 7:31 ` [PATCH v2 07/14] drm/i915: Kill off intel_crtc->atomic.wait_vblank Maarten Lankhorst
2015-11-09 15:08 ` Ander Conselvan De Oliveira
2015-11-03 7:31 ` [PATCH v2 08/14] drm/i915: Remove intel_crtc->atomic.disable_ips Maarten Lankhorst
2015-11-09 15:28 ` Ander Conselvan De Oliveira
2015-11-03 7:31 ` [PATCH v2 09/14] drm/i915: Remove atomic.pre_disable_primary Maarten Lankhorst
2015-11-10 11:29 ` Ander Conselvan De Oliveira [this message]
2015-11-03 7:31 ` [PATCH v2 10/14] drm/i915: Remove update_sprite_watermarks Maarten Lankhorst
2015-11-03 16:58 ` Matt Roper
2015-11-03 7:31 ` [PATCH v2 11/14] drm/i915: Remove some post-commit members from intel_crtc->atomic Maarten Lankhorst
2015-11-10 12:31 ` Ander Conselvan De Oliveira
2015-11-03 7:31 ` [PATCH v2 12/14] drm/i915: Nuke fbc " Maarten Lankhorst
2015-11-10 13:21 ` Ander Conselvan De Oliveira
2015-11-03 7:31 ` [PATCH v2 13/14] drm/i915/skl: Update watermarks before the crtc is disabled Maarten Lankhorst
2015-11-03 7:31 ` [PATCH v2 14/14] drm/i915/skl: Do not allow scaling when " Maarten Lankhorst
2015-11-03 9:09 ` Ville Syrjälä
2015-11-03 10:06 ` Maarten Lankhorst
2015-11-03 10:40 ` Ville Syrjälä
2015-11-03 12:00 ` Maarten Lankhorst
2015-11-03 13:11 ` Ville Syrjälä
2015-11-17 13:59 ` Maarten Lankhorst
2015-11-17 14:19 ` 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=1447154993.2584.17.camel@gmail.com \
--to=conselvan2@gmail.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.