From: Imre Deak <imre.deak@intel.com>
To: intel-gfx@lists.freedesktop.org
Subject: [Intel-gfx] [PATCH 7/9] drm/i915/dp_mst: Move getting the MST topology state earlier to connector check
Date: Wed, 25 Jan 2023 13:48:50 +0200 [thread overview]
Message-ID: <20230125114852.748337-8-imre.deak@intel.com> (raw)
In-Reply-To: <20230125114852.748337-1-imre.deak@intel.com>
Atm, the MST topology state for modesetted CRTCs may get added only in
the encoder's compute config function. To make this more consistent with
other encoders add these states already earlier in the connector atomic
check function and just get the new MST state in the encoder's compute
config function which shouldn't fail.
Signed-off-by: Imre Deak <imre.deak@intel.com>
---
drivers/gpu/drm/i915/display/intel_dp_mst.c | 23 ++++++++++++++-------
1 file changed, 15 insertions(+), 8 deletions(-)
diff --git a/drivers/gpu/drm/i915/display/intel_dp_mst.c b/drivers/gpu/drm/i915/display/intel_dp_mst.c
index 5790fabc39e7e..6726fd36723d7 100644
--- a/drivers/gpu/drm/i915/display/intel_dp_mst.c
+++ b/drivers/gpu/drm/i915/display/intel_dp_mst.c
@@ -66,9 +66,9 @@ static int intel_dp_mst_find_vcpi_slots_for_bpp(struct intel_encoder *encoder,
int bpp, slots = -EINVAL;
int ret = 0;
- mst_state = drm_atomic_get_mst_topology_state(state, &intel_dp->mst_mgr);
- if (IS_ERR(mst_state))
- return PTR_ERR(mst_state);
+ mst_state = drm_atomic_get_new_mst_topology_state(state, &intel_dp->mst_mgr);
+ if (drm_WARN_ON(&i915->drm, !mst_state))
+ return -EINVAL;
crtc_state->lane_count = limits->max_lane_count;
crtc_state->port_clock = limits->max_rate;
@@ -254,11 +254,9 @@ static int intel_dp_mst_update_slots(struct intel_encoder *encoder,
u8 link_coding_cap = intel_dp_is_uhbr(crtc_state) ?
DP_CAP_ANSI_128B132B : DP_CAP_ANSI_8B10B;
- topology_state = drm_atomic_get_mst_topology_state(conn_state->state, mgr);
- if (IS_ERR(topology_state)) {
- drm_dbg_kms(&i915->drm, "slot update failed\n");
- return PTR_ERR(topology_state);
- }
+ topology_state = drm_atomic_get_new_mst_topology_state(conn_state->state, mgr);
+ if (drm_WARN_ON(&i915->drm, !topology_state))
+ return -EINVAL;
drm_dp_mst_update_slots(topology_state, link_coding_cap);
@@ -465,6 +463,15 @@ intel_dp_mst_atomic_check(struct drm_connector *connector,
if (ret)
return ret;
+ if (intel_connector_needs_modeset(state, &intel_connector->base)) {
+ struct drm_dp_mst_topology_state *mst_state;
+
+ mst_state = drm_atomic_get_mst_topology_state(&state->base,
+ &intel_connector->mst_port->mst_mgr);
+ if (IS_ERR(mst_state))
+ return PTR_ERR(mst_state);
+ }
+
return drm_dp_atomic_release_time_slots(&state->base,
&intel_connector->mst_port->mst_mgr,
intel_connector->port);
--
2.37.1
next prev parent reply other threads:[~2023-01-25 11:49 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-01-25 11:48 [Intel-gfx] [PATCH 0/9] drm/i915/dp_mst: Fix MST payload removal during output disabling Imre Deak
2023-01-25 11:48 ` [Intel-gfx] [PATCH 1/9] drm/i915/dp_mst: Add the MST topology state for modesetted CRTCs Imre Deak
2023-01-26 9:13 ` [Intel-gfx] [PATCH v2 " Imre Deak
2023-01-26 18:34 ` Ville Syrjälä
2023-01-26 20:29 ` Lyude Paul
2023-01-25 11:48 ` [Intel-gfx] [PATCH 2/9] drm/display/dp_mst: Handle old/new payload states in drm_dp_remove_payload() Imre Deak
2023-01-26 17:37 ` Ville Syrjälä
2023-01-26 18:33 ` Ville Syrjälä
2023-01-26 20:21 ` Imre Deak
2023-01-25 11:48 ` [Intel-gfx] [PATCH 3/9] drm/display/dp_mst: Add drm_atomic_get_old_mst_topology_state() Imre Deak
2023-01-26 18:36 ` Ville Syrjälä
2023-01-26 20:28 ` Imre Deak
2023-01-25 11:48 ` [Intel-gfx] [PATCH 4/9] drm/i915/dp_mst: Fix payload removal during output disabling Imre Deak
2023-01-26 18:38 ` Ville Syrjälä
2023-01-26 20:48 ` Imre Deak
2023-01-25 11:48 ` [Intel-gfx] [PATCH 5/9] drm/display/dp_mst: Fix the payload VCPI check in drm_dp_mst_dump_topology() Imre Deak
2023-01-27 19:42 ` Ville Syrjälä
2023-01-27 19:55 ` Imre Deak
2023-01-25 11:48 ` [Intel-gfx] [PATCH 6/9] drm/i915: Factor out helpers for modesetting CRTCs and connectors Imre Deak
2023-01-25 11:48 ` Imre Deak [this message]
2023-01-25 11:48 ` [Intel-gfx] [PATCH 8/9] drm/display/dp_mst: Add a helper to verify the MST payload state Imre Deak
2023-01-25 11:48 ` [Intel-gfx] [PATCH 9/9] drm/i915/dp_mst: Verify the MST state of modesetted outputs Imre Deak
2023-01-25 23:39 ` [Intel-gfx] ✗ Fi.CI.BUILD: failure for drm/i915/dp_mst: Fix MST payload removal during output disabling Patchwork
2023-01-26 10:04 ` [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for drm/i915/dp_mst: Fix MST payload removal during output disabling (rev2) Patchwork
2023-01-26 10:24 ` [Intel-gfx] ✓ Fi.CI.BAT: success " Patchwork
2023-01-26 16:55 ` [Intel-gfx] ✓ Fi.CI.IGT: " Patchwork
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=20230125114852.748337-8-imre.deak@intel.com \
--to=imre.deak@intel.com \
--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