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
next prev parent 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).