From: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
To: Matt Roper <matthew.d.roper@intel.com>
Cc: Ander Conselvan de Oliveira
<ander.conselvan.de.oliveira@intel.com>,
intel-gfx@lists.freedesktop.org
Subject: Re: [PATCH v4 19/27] drm/i915: Read hw state into an atomic state struct, v2.
Date: Tue, 02 Jun 2015 08:51:41 +0200 [thread overview]
Message-ID: <556D527D.3040004@linux.intel.com> (raw)
In-Reply-To: <20150601214710.GA17555@intel.com>
Op 01-06-15 om 23:47 schreef Matt Roper:
> On Mon, Jun 01, 2015 at 12:50:03PM +0200, Maarten Lankhorst wrote:
>> From: Ander Conselvan de Oliveira <ander.conselvan.de.oliveira@intel.com>
>>
>> To make this work we load the new hardware state into the
>> atomic_state, then swap it with the sw state.
>>
>> This lets us change the force restore path in setup_hw_state()
>> to use a single call to intel_mode_set() to restore all the
>> previous state.
>>
>> As a nice bonus this kills off encoder->new_encoder,
>> connector->new_enabled and crtc->new_enabled. They were used only
>> to restore the state after a modeset.
>>
>> Changes since v1:
>> - Make sure all possible planes are added with their crtc set,
>> so they will be turned off on first modeset.
> Correct me if I'm wrong, but I don't think we're actually doing this
> yet. We're using drm_atomic_add_affected_planes() which looks at the
> current (and possibly incomplete) software state to figure out what an
> 'affected' plane is. If pre-driver firmware has enabled a sprite or
> cursor plane, that's not going to be reflected in our state's
> plane_mask fields, so those planes won't be added by the helper.
>
> I think what you want is an i915-specific loop that operates over *all*
> drm_plane's and compares intel_plane->pipe to intel_crtc->pipe to
> determine which ones need to be pulled into the state. Then the
> sprites/cursors will be automatically turned off on the first modeset,
> ensuring our hardware and software state stay in sync.
>
> The other alternative is to actually look at the hardware state for each
> sprite/cursor and try to inherit their real state as we do for the
> primary plane. But I'm not sure it's worth putting in that effort right
> now.
All these interdepencies make it hard. I think what I'm doing here is no worse than what we were
doing previously, and cursors will still be unconditionally disabled until part 3 of converting to atomic.
So for now this is good enough, but in part 3 I will have to resolve this issue, I'll work on it today.
~Maarten
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx
next prev parent reply other threads:[~2015-06-02 6:51 UTC|newest]
Thread overview: 39+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-06-01 10:49 [PATCH v4 00/27] drm/i915: Convert to atomic, part 2 Maarten Lankhorst
2015-06-01 10:49 ` [PATCH v4 01/27] drm/i915: get rid of put_shared_dpll Maarten Lankhorst
2015-06-01 10:49 ` [PATCH v4 02/27] drm/i915: get rid of intel_crtc_disable and related code, v3 Maarten Lankhorst
2015-06-01 10:49 ` [PATCH v4 03/27] drm/i915: add intel_display_suspend, v2 Maarten Lankhorst
2015-06-01 10:49 ` [PATCH v4 04/27] drm/i915: use intel_crtc_control everywhere, v3 Maarten Lankhorst
2015-06-01 10:49 ` [PATCH v4 05/27] drm/i915: Use drm_atomic_helper_update_legacy_modeset_state, v2 Maarten Lankhorst
2015-06-01 10:49 ` [PATCH v4 06/27] drm/i915: Make __intel_set_mode() take only atomic state as argument Maarten Lankhorst
2015-06-01 10:49 ` [PATCH v4 07/27] drm/i915: Set mode_changed for audio in intel_modeset_pipe_config() Maarten Lankhorst
2015-06-01 10:49 ` [PATCH v4 08/27] drm/i915: Use crtc_state->active instead of crtc_state->enable Maarten Lankhorst
2015-06-01 10:49 ` [PATCH v4 09/27] drm/i915: Make sure all planes and connectors are added on modeset Maarten Lankhorst
2015-06-01 10:49 ` [PATCH v4 10/27] drm/i915: update plane state during init Maarten Lankhorst
2015-06-01 10:49 ` [PATCH v4 11/27] drm/i915: do not wait for vblank when crtc is off Maarten Lankhorst
2015-06-01 10:49 ` [PATCH v4 12/27] drm/i915: calculate primary visibility changes instead of calling from set_config Maarten Lankhorst
2015-06-01 10:49 ` [PATCH v4 13/27] drm/i915: Support modeset across multiple pipes Maarten Lankhorst
2015-06-01 10:49 ` [PATCH v4 14/27] drm/i915: Zap call to drm_plane_helper_disable, v2 Maarten Lankhorst
2015-06-04 8:01 ` Jani Nikula
2015-06-01 10:49 ` [PATCH v4 15/27] drm/i915: Use global atomic state for staged pll config, v2 Maarten Lankhorst
2015-06-04 7:53 ` Jani Nikula
2015-06-04 8:21 ` [PATCH v4.1 01/13] drm/i915: Use global atomic state for staged pll, config, v3 Maarten Lankhorst
2015-06-01 10:50 ` [PATCH v4 16/27] drm/i915: Use drm_atomic_helper_swap_state in intel_atomic_commit Maarten Lankhorst
2015-06-01 10:50 ` [PATCH v4 17/27] drm/i915: Swap planes on each crtc separately, v2 Maarten Lankhorst
2015-06-01 10:50 ` [PATCH v4 18/27] drm/i915: Move cdclk and pll setup to intel_modeset_compute_config(), v2 Maarten Lankhorst
2015-06-01 10:50 ` [PATCH v4 19/27] drm/i915: Read hw state into an atomic state struct, v2 Maarten Lankhorst
2015-06-01 21:47 ` Matt Roper
2015-06-02 6:51 ` Maarten Lankhorst [this message]
2015-06-09 11:48 ` Tvrtko Ursulin
2015-06-09 13:25 ` Maarten Lankhorst
2015-06-09 14:24 ` Jani Nikula
2015-06-09 15:04 ` Maarten Lankhorst
2015-06-10 7:47 ` Jani Nikula
2015-06-01 10:50 ` [PATCH v4 20/27] drm/i915: Implement intel_crtc_control using atomic state, v4 Maarten Lankhorst
2015-06-01 10:50 ` [PATCH v4 21/27] drm/i915: Make intel_display_suspend atomic, v2 Maarten Lankhorst
2015-06-01 10:50 ` [PATCH v4 22/27] drm/i915: move swap state to the right place Maarten Lankhorst
2015-06-01 10:50 ` [PATCH v4 23/27] drm/i915: Use crtc->hwmode for vblanks, v2 Maarten Lankhorst
2015-06-01 10:50 ` [PATCH v4 24/27] drm/i915: Remove use of crtc->config from i915_debugfs.c Maarten Lankhorst
2015-06-01 10:50 ` [PATCH v4 25/27] drm/i915: Calculate haswell plane workaround, v5 Maarten Lankhorst
2015-06-01 10:50 ` [PATCH v4 26/27] drm/i915: Use atomic state for calculating DVO_2X_MODE on i830 Maarten Lankhorst
2015-06-01 10:50 ` [PATCH v4 27/27] drm/i915: use calculated state for vblank evasion Maarten Lankhorst
2015-06-04 8:51 ` [PATCH v4 00/27] drm/i915: Convert to atomic, part 2 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=556D527D.3040004@linux.intel.com \
--to=maarten.lankhorst@linux.intel.com \
--cc=ander.conselvan.de.oliveira@intel.com \
--cc=intel-gfx@lists.freedesktop.org \
--cc=matthew.d.roper@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox