From: "Zanoni, Paulo R" <paulo.r.zanoni@intel.com>
To: "intel-gfx@lists.freedesktop.org"
<intel-gfx@lists.freedesktop.org>,
"maarten.lankhorst@linux.intel.com"
<maarten.lankhorst@linux.intel.com>
Subject: Re: [PATCH v4 1/8] drm/i915: Pass crtc state to modeset_get_crtc_power_domains.
Date: Wed, 17 Feb 2016 17:54:14 +0000 [thread overview]
Message-ID: <1455731653.2576.17.camel@intel.com> (raw)
In-Reply-To: <1455108583-29227-2-git-send-email-maarten.lankhorst@linux.intel.com>
Em Qua, 2016-02-10 às 13:49 +0100, Maarten Lankhorst escreveu:
> Use our newly created encoder_mask to iterate over the encoders.
As someone who was not paying attention to the discussion of the
previous patches related to this, I think it would be really good if
your commit message could tell me why we should use the newly created
encoder_mask instead of the current patch. What's bad about the current
version? Please sell me your patch. If you think the answer is trivial,
remember that it's not trivial to many people, and that random people
may find this patch through git-bisect and have to judge its
importance. Also, an explanation really helps the reviewers :)
The patch looks correct, so if you improve the commit message:
Reviewed-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
>
> Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
> ---
> drivers/gpu/drm/i915/intel_display.c | 33 +++++++++++++++++++++-----
> -------
> 1 file changed, 21 insertions(+), 12 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/intel_display.c
> b/drivers/gpu/drm/i915/intel_display.c
> index 30d4db0d776f..b479ba6238d7 100644
> --- a/drivers/gpu/drm/i915/intel_display.c
> +++ b/drivers/gpu/drm/i915/intel_display.c
> @@ -5301,31 +5301,37 @@ intel_display_port_aux_power_domain(struct
> intel_encoder *intel_encoder)
> }
> }
>
> -static unsigned long get_crtc_power_domains(struct drm_crtc *crtc)
> +static unsigned long get_crtc_power_domains(struct drm_crtc *crtc,
> + struct intel_crtc_state
> *crtc_state)
> {
> struct drm_device *dev = crtc->dev;
> - struct intel_encoder *intel_encoder;
> + struct drm_encoder *encoder;
> struct intel_crtc *intel_crtc = to_intel_crtc(crtc);
> enum pipe pipe = intel_crtc->pipe;
> unsigned long mask;
> - enum transcoder transcoder = intel_crtc->config-
> >cpu_transcoder;
> + enum transcoder transcoder = crtc_state->cpu_transcoder;
>
> - if (!crtc->state->active)
> + if (!crtc_state->base.active)
> return 0;
>
> mask = BIT(POWER_DOMAIN_PIPE(pipe));
> mask |= BIT(POWER_DOMAIN_TRANSCODER(transcoder));
> - if (intel_crtc->config->pch_pfit.enabled ||
> - intel_crtc->config->pch_pfit.force_thru)
> + if (crtc_state->pch_pfit.enabled ||
> + crtc_state->pch_pfit.force_thru)
> mask |= BIT(POWER_DOMAIN_PIPE_PANEL_FITTER(pipe));
>
> - for_each_encoder_on_crtc(dev, crtc, intel_encoder)
> + drm_for_each_encoder_mask(encoder, dev, crtc_state-
> >base.encoder_mask) {
> + struct intel_encoder *intel_encoder =
> to_intel_encoder(encoder);
> +
> mask |=
> BIT(intel_display_port_power_domain(intel_encoder));
> + }
>
> return mask;
> }
>
> -static unsigned long modeset_get_crtc_power_domains(struct drm_crtc
> *crtc)
> +static unsigned long
> +modeset_get_crtc_power_domains(struct drm_crtc *crtc,
> + struct intel_crtc_state *crtc_state)
> {
> struct drm_i915_private *dev_priv = crtc->dev->dev_private;
> struct intel_crtc *intel_crtc = to_intel_crtc(crtc);
> @@ -5333,7 +5339,8 @@ static unsigned long
> modeset_get_crtc_power_domains(struct drm_crtc *crtc)
> unsigned long domains, new_domains, old_domains;
>
> old_domains = intel_crtc->enabled_power_domains;
> - intel_crtc->enabled_power_domains = new_domains =
> get_crtc_power_domains(crtc);
> + intel_crtc->enabled_power_domains = new_domains =
> + get_crtc_power_domains(crtc, crtc_state);
>
> domains = new_domains & ~old_domains;
>
> @@ -5365,7 +5372,8 @@ static void
> modeset_update_crtc_power_domains(struct drm_atomic_state *state)
> for_each_crtc_in_state(state, crtc, crtc_state, i) {
> if (needs_modeset(crtc->state))
> put_domains[to_intel_crtc(crtc)->pipe] =
> - modeset_get_crtc_power_domains(crtc)
> ;
> + modeset_get_crtc_power_domains(crtc,
> + to_intel_crtc_state(crtc-
> >state));
> }
>
> if (dev_priv->display.modeset_commit_cdclk &&
> @@ -13486,7 +13494,8 @@ static int intel_atomic_commit(struct
> drm_device *dev,
> }
>
> if (update_pipe) {
> - put_domains =
> modeset_get_crtc_power_domains(crtc);
> + put_domains =
> modeset_get_crtc_power_domains(crtc,
> + to_intel_crtc_state(cr
> tc->state));
>
> /* make sure intel_modeset_check_state runs
> */
> hw_check = true;
> @@ -15830,7 +15839,7 @@ intel_modeset_setup_hw_state(struct
> drm_device *dev)
> for_each_intel_crtc(dev, crtc) {
> unsigned long put_domains;
>
> - put_domains = modeset_get_crtc_power_domains(&crtc-
> >base);
> + put_domains = modeset_get_crtc_power_domains(&crtc-
> >base, crtc->config);
> if (WARN_ON(put_domains))
> modeset_put_power_domains(dev_priv,
> put_domains);
> }
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
next prev parent reply other threads:[~2016-02-17 17:54 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-02-10 12:49 [PATCH v4 0/8] Kill off intel_crtc->atomic! Maarten Lankhorst
2016-02-10 12:49 ` [PATCH v4 1/8] drm/i915: Pass crtc state to modeset_get_crtc_power_domains Maarten Lankhorst
2016-02-17 17:54 ` Zanoni, Paulo R [this message]
2016-02-18 9:51 ` Maarten Lankhorst
2016-02-18 13:08 ` Zanoni, Paulo R
2016-02-18 13:21 ` Maarten Lankhorst
2016-02-10 12:49 ` [PATCH v4 2/8] drm/i915: Unify power domain handling Maarten Lankhorst
2016-02-17 19:54 ` Zanoni, Paulo R
2016-02-10 12:49 ` [PATCH v4 3/8] drm/i915: Kill off intel_crtc->atomic.wait_vblank, v4 Maarten Lankhorst
2016-02-17 21:20 ` Zanoni, Paulo R
2016-02-18 13:22 ` Maarten Lankhorst
2016-02-18 14:14 ` Zanoni, Paulo R
2016-02-18 14:46 ` Maarten Lankhorst
2016-02-18 17:02 ` Zanoni, Paulo R
2016-02-24 10:24 ` [PATCH v6 3/8] drm/i915: Kill off intel_crtc->atomic.wait_vblank, v6 Maarten Lankhorst
2016-02-24 14:50 ` Zanoni, Paulo R
2016-02-10 12:49 ` [PATCH v4 4/8] drm/i915: Remove update_sprite_watermarks Maarten Lankhorst
2016-02-10 12:49 ` [PATCH v4 5/8] drm/i915: Remove some post-commit members from intel_crtc->atomic, v2 Maarten Lankhorst
2016-02-10 12:49 ` [PATCH v4 6/8] drm/i915: Nuke fbc " Maarten Lankhorst
2016-02-12 13:56 ` Zanoni, Paulo R
2016-02-15 14:31 ` Maarten Lankhorst
2016-02-18 17:17 ` Zanoni, Paulo R
2016-02-29 9:58 ` [PATCH v4.1 6/8] drm/i915: Nuke fbc members from intel_crtc->atomic, v3 Maarten Lankhorst
2016-02-29 21:06 ` Zanoni, Paulo R
2016-03-01 8:27 ` Maarten Lankhorst
2016-02-10 12:49 ` [PATCH v4 7/8] drm/i915: Do not compute watermarks on a noop Maarten Lankhorst
2016-02-18 20:51 ` Zanoni, Paulo R
2016-03-01 10:11 ` Maarten Lankhorst
2016-02-10 12:49 ` [PATCH v4 8/8] drm/i915: Remove vblank wait from hsw_enable_ips Maarten Lankhorst
2016-02-12 12:06 ` Zanoni, Paulo R
2016-02-16 10:32 ` Maarten Lankhorst
2016-03-23 13:33 ` [PATCH v5 8/8] drm/i915: Remove vblank wait from hsw_enable_ips, v2 Maarten Lankhorst
2016-03-23 14:43 ` Zanoni, Paulo R
2016-02-15 13:35 ` ✗ Fi.CI.BAT: failure for Kill off intel_crtc->atomic! (rev8) 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=1455731653.2576.17.camel@intel.com \
--to=paulo.r.zanoni@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.