From: Jani Nikula <jani.nikula@linux.intel.com>
To: Wang Elaine <elaine.wang@intel.com>,
intel-gfx@lists.freedesktop.orgelaine.wang@intel.com
Subject: Re: [PATCH v2 2/2] drm/i915: Check num_pipes before initializing or calling display hooks
Date: Thu, 22 Dec 2016 12:48:01 +0200 [thread overview]
Message-ID: <8737hgme8u.fsf@intel.com> (raw)
In-Reply-To: <1482142746-21663-2-git-send-email-elaine.wang@intel.com>
On Mon, 19 Dec 2016, Wang Elaine <elaine.wang@intel.com> wrote:
> From: Elaine Wang <elaine.wang@intel.com>
>
> when num_pipes is zero, it indicates display doesn't exist, so there
> is no need to initialize display hooks. And to avoid calling these
> uninitialized display hooks, respect num_pipes at the beginning of
> intel_modeset_init_hw and intel_init_clock_gating.
>
> intel_init_pm() calls FBC init function and then initializes
> water mark hooks. Both aren't needed when display doesn't exist. Add
> checking num_pipes at the beginning of intel_init_pm().
>
> v2: Move one check from caller to callee for consistency.
>
> Cc: Chris Wilson <chris@chris-wilson.co.uk>
> Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
> Cc: Jani Nikula <jani.nikula@linux.intel.com>
> Signed-off-by: Elaine Wang <elaine.wang@intel.com>
> ---
> drivers/gpu/drm/i915/intel_display.c | 6 ++++++
> drivers/gpu/drm/i915/intel_pm.c | 10 +++++++++-
> 2 files changed, 15 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
> index 9cc5dbf..e079ea7 100644
> --- a/drivers/gpu/drm/i915/intel_display.c
> +++ b/drivers/gpu/drm/i915/intel_display.c
> @@ -16030,6 +16030,9 @@ static void intel_atomic_state_free(struct drm_atomic_state *state)
> */
> void intel_init_display_hooks(struct drm_i915_private *dev_priv)
> {
> + if (INTEL_INFO(dev_priv)->num_pipes == 0)
> + return;
> +
> if (INTEL_INFO(dev_priv)->gen >= 9) {
> dev_priv->display.get_pipe_config = haswell_get_pipe_config;
> dev_priv->display.get_initial_plane_config =
> @@ -16412,6 +16415,9 @@ void intel_modeset_init_hw(struct drm_device *dev)
> {
> struct drm_i915_private *dev_priv = to_i915(dev);
>
> + if (INTEL_INFO(dev_priv)->num_pipes == 0)
> + return;
> +
> intel_update_cdclk(dev_priv);
>
> dev_priv->atomic_cdclk_freq = dev_priv->cdclk_freq;
> diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c
> index d0834b3..6438ada 100644
> --- a/drivers/gpu/drm/i915/intel_pm.c
> +++ b/drivers/gpu/drm/i915/intel_pm.c
> @@ -7619,7 +7619,8 @@ static void i830_init_clock_gating(struct drm_i915_private *dev_priv)
>
> void intel_init_clock_gating(struct drm_i915_private *dev_priv)
> {
> - dev_priv->display.init_clock_gating(dev_priv);
> + if (INTEL_INFO(dev_priv)->num_pipes)
> + dev_priv->display.init_clock_gating(dev_priv);
> }
>
> void intel_suspend_hw(struct drm_i915_private *dev_priv)
> @@ -7644,6 +7645,10 @@ static void nop_init_clock_gating(struct drm_i915_private *dev_priv)
> */
> void intel_init_clock_gating_hooks(struct drm_i915_private *dev_priv)
> {
> +
> + if (INTEL_INFO(dev_priv)->num_pipes == 0)
> + return;
> +
Looks like this would be neater by doing
if (INTEL_INFO(dev_priv)->num_pipes == 0)
dev_priv->display.init_clock_gating = nop_init_clock_gating;
else if (IS_SKYLAKE(dev_priv))
...
and you can leave out the check in intel_init_clock_gating().
We really want to minimize the amount of these checks sprinkled around.
BR,
Jani.
> dev_priv->display.init_clock_gating = skylake_init_clock_gating;
> else if (IS_KABYLAKE(dev_priv))
> @@ -7685,6 +7690,9 @@ void intel_init_clock_gating_hooks(struct drm_i915_private *dev_priv)
> /* Set up chip specific power management-related functions */
> void intel_init_pm(struct drm_i915_private *dev_priv)
> {
> + if (INTEL_INFO(dev_priv)->num_pipes == 0)
> + return;
> +
> intel_fbc_init(dev_priv);
>
> /* For cxsr */
--
Jani Nikula, Intel Open Source Technology Center
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
next prev parent reply other threads:[~2016-12-22 10:48 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-12-19 10:19 [PATCH v2 1/2] drm/i915: Check num_pipes before initializing audio component Wang Elaine
2016-12-19 10:19 ` [PATCH v2 2/2] drm/i915: Check num_pipes before initializing or calling display hooks Wang Elaine
2016-12-22 10:48 ` Jani Nikula [this message]
2016-12-23 3:33 ` Wang, Elaine
2016-12-19 11:45 ` ✗ Fi.CI.BAT: warning for series starting with [v2,1/2] drm/i915: Check num_pipes before initializing audio component Patchwork
2016-12-20 3:04 ` Wang, Elaine
2016-12-22 7:03 ` [PATCH v2 1/2] " Wang, Elaine
2016-12-22 10:48 ` Jani Nikula
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=8737hgme8u.fsf@intel.com \
--to=jani.nikula@linux.intel.com \
--cc=elaine.wang@intel.com \
--cc=intel-gfx@lists.freedesktop.orgelaine.wang \
/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.