From: Ander Conselvan De Oliveira <conselvan2@gmail.com>
To: Daniel Vetter <daniel@ffwll.ch>
Cc: "intel-gfx@lists.freedesktop.org" <intel-gfx@lists.freedesktop.org>
Subject: Re: [PATCH 04/19] drm/i915: Allocate a crtc_state also when the crtc is being disabled
Date: Fri, 20 Mar 2015 12:06:46 +0200 [thread overview]
Message-ID: <1426846006.2316.50.camel@gmail.com> (raw)
In-Reply-To: <20150320095103.GA1349@phenom.ffwll.local>
On Fri, 2015-03-20 at 10:51 +0100, Daniel Vetter wrote:
> On Fri, Mar 20, 2015 at 10:40:37AM +0200, Ander Conselvan De Oliveira wrote:
> > On Thu, 2015-03-19 at 23:23 +0000, Konduru, Chandra wrote:
> > > 1)
> > > Consider two simple scenarios:
> > > Case1: User code moving HDMI from A to B:
> > > drmModeSetCrtc(crtcA, HDMI);
> > > drmModeSetCrtc(crtcB, HDMI); /* moving HDMI to pipe B */
> > >
> > > Case2: User code turning off HDMI:
> > > drmModeSetCrtc(crtcA, HDMI);
> > > drmModeSetCrtc(crtcA, disable);
> > >
> > > In both cases, driver will be disabling crtc for pipe A.
> > > In case 1, there is no associated crtc_state or compute & commit but
> > > directly triggering crtc_disable(crtcA).
> > > In case 2, there is associated crtc_state and associated compute and setmode
> > > calls crtc_disable(crtcA);
> > >
> > > Won't this cause trouble for low level functions (disable clocks, connectors,
> > > encoders, planes etc. etc...) acting on variables being computed and staged
> > > in their respective states?
> > > where case 1 calls with current crtc->config,
> > > and case 2 calls crt->config which is computed crtc_state
> >
> > It is inconsistent, yes. But at the moment, for the disable case, we
> > just duplicate the crtc_state and set crtc_state->base.enable = false.
> > As things stand at the moment, the net effect should be the same: we
> > call the disable hook before changing the current state, and after we
> > change the states, the only field that changed was
> > crtc_state->base.enable. The only difference is what does
> > intel_crtc->config points to.
>
> I didn't digg into full details but don't we need to at least clear out
> shared resources like plls too? Or is that all guarded with checks for
> crtc_state->enable?
We don't update crtc_state->shared_dpll during disable. But the crtc off
function calls intel_put_shared_dpll() that removes the crtc from the
shared dpll's crtc mask (in global state). When we enable we allocate a
new state that has crtc_state->shared_dpll = DPLL_ID_PRIVATE.
Bottom line is, we don't rely on the old state when enabling a crtc.
> Overall it sounds like clearing the crtc state properly when duplicating
> will be a lot of tricky fun.
Yeah, sounds like there's still "fun" times ahead.
Ander
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx
next prev parent reply other threads:[~2015-03-20 10:06 UTC|newest]
Thread overview: 52+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-03-13 9:48 [PATCH v2 00/19] Remove depencies on staged config for atomic transition Ander Conselvan de Oliveira
2015-03-13 9:48 ` [PATCH 01/19] drm/i915: Add intel_atomic_get_crtc_state() helper function Ander Conselvan de Oliveira
2015-03-13 9:48 ` [PATCH 02/19] drm/i915: Pass acquire ctx also to intel_release_load_detect_pipe() Ander Conselvan de Oliveira
2015-03-13 9:48 ` [PATCH 03/19] drm/i915: Allocate a drm_atomic_state for the legacy modeset code Ander Conselvan de Oliveira
2015-03-17 6:46 ` [PATCH v3] " Ander Conselvan de Oliveira
2015-03-18 7:57 ` [PATCH v4] " Ander Conselvan de Oliveira
2015-03-18 23:57 ` Konduru, Chandra
2015-03-19 7:50 ` Ander Conselvan De Oliveira
2015-03-19 21:08 ` [PATCH 03/19] " Konduru, Chandra
2015-03-20 7:00 ` Ander Conselvan De Oliveira
2015-03-22 16:28 ` Konduru, Chandra
2015-03-13 9:48 ` [PATCH 04/19] drm/i915: Allocate a crtc_state also when the crtc is being disabled Ander Conselvan de Oliveira
[not found] ` <76A9B330A4D78C4D99CB292C4CC06C0E36F7B41B@fmsmsx101.amr.corp.intel.com>
2015-03-19 7:52 ` Ander Conselvan De Oliveira
2015-03-19 23:23 ` Konduru, Chandra
2015-03-20 8:40 ` Ander Conselvan De Oliveira
2015-03-20 9:51 ` Daniel Vetter
2015-03-20 10:06 ` Ander Conselvan De Oliveira [this message]
2015-03-20 10:39 ` Daniel Vetter
2015-03-22 16:46 ` Konduru, Chandra
2015-03-13 9:48 ` [PATCH 05/19] drm/i915: Update dummy connector atomic state with current config Ander Conselvan de Oliveira
2015-03-19 20:55 ` Konduru, Chandra
2015-03-20 6:41 ` Ander Conselvan De Oliveira
2015-03-13 9:48 ` [PATCH 06/19] drm/i915: Implement connector state duplication Ander Conselvan de Oliveira
2015-03-13 9:48 ` [PATCH 07/19] drm/i915: Copy the staged connector config to the legacy atomic state Ander Conselvan de Oliveira
[not found] ` <76A9B330A4D78C4D99CB292C4CC06C0E36F7B6F0@fmsmsx101.amr.corp.intel.com>
2015-03-19 7:52 ` Ander Conselvan De Oliveira
2015-03-19 15:15 ` Daniel Vetter
2015-03-13 9:48 ` [PATCH 08/19] drm/i915: Don't use encoder->new_crtc in intel_modeset_pipe_config() Ander Conselvan de Oliveira
2015-03-19 0:44 ` Konduru, Chandra
2015-03-19 7:52 ` Ander Conselvan De Oliveira
2015-03-13 9:48 ` [PATCH 09/19] drm/i915: Don't use encoder->new_crtc in compute_baseline_pipe_bpp() Ander Conselvan de Oliveira
2015-03-13 9:48 ` [PATCH 10/19] drm/i915: Don't depend on encoder->new_crtc in intel_dp_compute_config() Ander Conselvan de Oliveira
2015-03-13 9:48 ` [PATCH 11/19] drm/i915: Don't depend on encoder->new_crtc in intel_hdmi_compute_config Ander Conselvan de Oliveira
2015-03-13 9:48 ` [PATCH 12/19] drm/i915: Use atomic state in intel_ddi_crtc_get_new_encoder() Ander Conselvan de Oliveira
2015-03-13 9:48 ` [PATCH 13/19] drm/i915: Don't use staged config in intel_dp_mst_compute_config() Ander Conselvan de Oliveira
2015-03-13 9:48 ` [PATCH 14/19] drm/i915: Don't use encoder->new_crtc in intel_lvds_compute_config() Ander Conselvan de Oliveira
2015-03-13 9:48 ` [PATCH 15/19] drm/i915: Pass an atomic state to modeset_global_resources() functions Ander Conselvan de Oliveira
2015-03-13 9:48 ` [PATCH 16/19] drm/i915: Check lane sharing between pipes B & C using atomic state Ander Conselvan de Oliveira
2015-03-19 20:58 ` Konduru, Chandra
2015-03-20 6:46 ` Conselvan De Oliveira, Ander
2015-03-22 16:20 ` Konduru, Chandra
2015-03-23 7:33 ` Ander Conselvan De Oliveira
2015-03-23 16:57 ` Konduru, Chandra
2015-03-13 9:49 ` [PATCH 17/19] drm/i915: Convert intel_pipe_will_have_type() to " Ander Conselvan de Oliveira
2015-03-19 19:24 ` Konduru, Chandra
2015-03-20 6:28 ` Ander Conselvan De Oliveira
2015-03-22 16:14 ` Konduru, Chandra
2015-03-13 9:49 ` [PATCH 18/19] drm/i915: Don't look at staged config crtc when changing DRRS state Ander Conselvan de Oliveira
2015-03-13 9:49 ` [PATCH 19/19] drm/i915: Remove usage of encoder->new_crtc from clock computations Ander Conselvan de Oliveira
2015-03-14 0:29 ` shuang.he
2015-03-19 20:39 ` Konduru, Chandra
2015-03-18 23:57 ` [PATCH v2 00/19] Remove depencies on staged config for atomic transition Konduru, Chandra
2015-03-19 15:20 ` 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=1426846006.2316.50.camel@gmail.com \
--to=conselvan2@gmail.com \
--cc=daniel@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