intel-gfx.lists.freedesktop.org archive mirror
 help / color / mirror / Atom feed
From: Paulo Zanoni <przanoni@gmail.com>
To: Daniel Vetter <daniel.vetter@ffwll.ch>
Cc: Intel Graphics Development <intel-gfx@lists.freedesktop.org>
Subject: Re: [PATCH 8/9] drm/i915: add ->display.modeset_global_resources callback
Date: Sat, 27 Oct 2012 10:18:19 -0200	[thread overview]
Message-ID: <CA+gsUGQZJ7cw2oN3vqa4wevLNaV+iT8cmDcjBGGbYjXm=VWQEQ@mail.gmail.com> (raw)
In-Reply-To: <1351241899-7870-9-git-send-email-daniel.vetter@ffwll.ch>

Hi

2012/10/26 Daniel Vetter <daniel.vetter@ffwll.ch>:
> After all relevant pipes are disabled and after we've updated all the
> state with the staged state, but before we call the per-crtc
> ->mode_set functions there's a very natural point to set up any
> shared/global resources like
> - shared plls (obviously only the setup, the enabling needs to be
>   separately handling with a separate refcount)
> - global watermark state like the DSPARB on gmch platforms
> - workaround bits that depend upon the exact global output
>   configuration
> - enabling the right set of refclocks
> - enabling/disabling manual power wells.
>
> Now for a lot of these things we can't move them into this function
> yet, most often because we only compute the required information in
> the per-crtc ->mode_set callback. Which is too late. But due to a
> bunch of reasons (check-only atomic modeset, fastboot&hw state checks,
> ...) we need to separate the computation of that state from the actual
> hw frobbery anyway. So we can move things into this new callback step-
> by-step.
>
> Others can't be moved here (or implemented at all) because our code
> lacks the smarts to properly update them. E.g. the DSPARB can only be
> updated when all pipes are disabled, so if we decide to change it's
> value, we need to disable _all_ pipes. The infrastructure for that is
> already in place (with the various pipe masks that driver the modeset
> logic). But again we need to move a few things out of ->mode_set
> first before we can even implement the correct decision making.
>
> In any case, we need to start somewhere, so let's start with the
> callback: Some small follow-up patches will make immediate good use of
> it.
>
> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>

Yes, I can see cases where this is needed and even thought about doing
something similar for a specific task. In the future we might want a
global function that runs on all gens before calling the gen-specific
functions, but for now let's keep it this way.

Reviewed-by: Paulo Zanoni <paulo.r.zanoni@intel.com>

> ---
>  drivers/gpu/drm/i915/i915_drv.h      | 1 +
>  drivers/gpu/drm/i915/intel_display.c | 3 +++
>  2 files changed, 4 insertions(+)
>
> diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
> index b0ca786..6531d3e 100644
> --- a/drivers/gpu/drm/i915/i915_drv.h
> +++ b/drivers/gpu/drm/i915/i915_drv.h
> @@ -249,6 +249,7 @@ struct drm_i915_display_funcs {
>                                  uint32_t sprite_width, int pixel_size);
>         void (*update_linetime_wm)(struct drm_device *dev, int pipe,
>                                  struct drm_display_mode *mode);
> +       void (*modeset_global_resources)(struct drm_device *dev);
>         int (*crtc_mode_set)(struct drm_crtc *crtc,
>                              struct drm_display_mode *mode,
>                              struct drm_display_mode *adjusted_mode,
> diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
> index 7a9cfc2..7009c0f 100644
> --- a/drivers/gpu/drm/i915/intel_display.c
> +++ b/drivers/gpu/drm/i915/intel_display.c
> @@ -7403,6 +7403,9 @@ bool intel_set_mode(struct drm_crtc *crtc,
>          * update the the output configuration. */
>         intel_modeset_update_state(dev, prepare_pipes);
>
> +       if (dev_priv->display.modeset_global_resources)
> +               dev_priv->display.modeset_global_resources(dev);
> +
>         /* Set up the DPLL and any encoders state that needs to adjust or depend
>          * on the DPLL.
>          */
> --
> 1.7.11.4
>
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx



-- 
Paulo Zanoni

  reply	other threads:[~2012-10-27 12:18 UTC|newest]

Thread overview: 36+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-10-26  8:58 [PATCH 0/9] some ivb fdi b/c fixes Daniel Vetter
2012-10-26  8:58 ` [PATCH 1/9] drm/i915: shut up spurious message in intel_dp_get_hw_state Daniel Vetter
2012-10-26 14:01   ` Paulo Zanoni
2012-10-26  8:58 ` [PATCH 2/9] drm/i915: Write the FDI RX TU size reg at the right time Daniel Vetter
2012-10-27 11:51   ` Paulo Zanoni
2012-10-27 12:59     ` Daniel Vetter
2012-10-27 13:03       ` Paulo Zanoni
2012-10-27 13:04         ` Daniel Vetter
2012-10-27 13:18           ` Paulo Zanoni
2012-10-27 13:50             ` Daniel Vetter
2012-10-27 13:20   ` [PATCH] " Daniel Vetter
2012-10-26  8:58 ` [PATCH 3/9] drm/i915: set FDI_RX_MISC to recommended values on CPT/PPT Daniel Vetter
2012-10-27 12:02   ` Paulo Zanoni
2012-10-26  8:58 ` [PATCH 4/9] drm/i915: add comment about pch pll enabling rules Daniel Vetter
2012-10-27 12:15   ` Paulo Zanoni
2012-10-27 12:57     ` Daniel Vetter
2012-10-27 16:46   ` [PATCH] " Daniel Vetter
2012-10-29 12:02     ` Paulo Zanoni
2012-10-26  8:58 ` [PATCH 5/9] drm/i915: CPT/PPT pch dp transcoder workaround Daniel Vetter
2012-10-26 14:21   ` Paulo Zanoni
2012-10-29 15:38     ` Daniel Vetter
2012-10-29 17:02       ` Paulo Zanoni
2012-10-29 17:14         ` Daniel Vetter
2012-10-31 17:41           ` Paulo Zanoni
2012-10-26  8:58 ` [PATCH 6/9] drm/i915: BUG on impossible pch dp port Daniel Vetter
2012-10-26 15:04   ` Paulo Zanoni
2012-10-26  8:58 ` [PATCH 7/9] drm/i915: drop unnecessary check from fdi_link_train code Daniel Vetter
2012-10-26 15:32   ` Paulo Zanoni
2012-10-26  8:58 ` [PATCH 8/9] drm/i915: add ->display.modeset_global_resources callback Daniel Vetter
2012-10-27 12:18   ` Paulo Zanoni [this message]
2012-10-26  8:58 ` [PATCH 9/9] drm/i915: check fdi B/C lane sharing constraint Daniel Vetter
2012-10-27 12:56   ` Paulo Zanoni
2012-10-27 13:03     ` Daniel Vetter
2012-10-27 13:58   ` [PATCH] " Daniel Vetter
2012-10-29 12:06     ` Paulo Zanoni
2012-10-29 17:42       ` Daniel Vetter

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='CA+gsUGQZJ7cw2oN3vqa4wevLNaV+iT8cmDcjBGGbYjXm=VWQEQ@mail.gmail.com' \
    --to=przanoni@gmail.com \
    --cc=daniel.vetter@ffwll.ch \
    --cc=intel-gfx@lists.freedesktop.org \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).