Hi all, After merging the drm-intel tree, today's linux-next build (x86_64 allmodconfig) failed like this: drivers/gpu/drm/i915/display/intel_dp_mst.c:2118:6: error: redefinition of 'intel_dp_mst_verify_dpcd_state' 2118 | bool intel_dp_mst_verify_dpcd_state(struct intel_dp *intel_dp) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/i915/display/intel_dp_mst.c:2048:6: note: previous definition of 'intel_dp_mst_verify_dpcd_state' with type 'bool(struct intel_dp *)' {aka '_Bool(struct intel_dp *)'} 2048 | bool intel_dp_mst_verify_dpcd_state(struct intel_dp *intel_dp) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Caused by commit 594cf78dc36f ("drm/i915/dp_mst: Fix MST state after a sink reset") interacting with my merge of the drm tree and commit a2ccc33b88e2 ("drm/i915/dp_mst: Fix MST state after a sink reset") from the drm-intel-fixes tree. I have applied the following patch for today. From: Stephen Rothwell <sfr@xxxxxxxxxxxxxxxx> Date: Thu, 29 Aug 2024 11:24:26 +1000 Subject: [PATCH] fix up for "drm/i915/dp_mst: Fix MST state after a sink reset" interacting with "Merge branch 'drm-next' of https://gitlab.freedesktop.org/drm/kernel.git" from linux-next and "drm/i915/dp_mst: Fix MST state after a sink reset" from drm-intel-fixes. Signed-off-by: Stephen Rothwell <sfr@xxxxxxxxxxxxxxxx> --- drivers/gpu/drm/i915/display/intel_dp_mst.c | 40 --------------------- 1 file changed, 40 deletions(-) diff --git a/drivers/gpu/drm/i915/display/intel_dp_mst.c b/drivers/gpu/drm/i915/display/intel_dp_mst.c index 639190ee6ff9..696b6ee52014 100644 --- a/drivers/gpu/drm/i915/display/intel_dp_mst.c +++ b/drivers/gpu/drm/i915/display/intel_dp_mst.c @@ -2102,43 +2102,3 @@ void intel_dp_mst_prepare_probe(struct intel_dp *intel_dp) intel_mst_set_probed_link_params(intel_dp, link_rate, lane_count); } - -/* - * intel_dp_mst_verify_dpcd_state - verify the MST SW enabled state wrt. the DPCD - * @intel_dp: DP port object - * - * Verify if @intel_dp's MST enabled SW state matches the corresponding DPCD - * state. A long HPD pulse - not long enough to be detected as a disconnected - * state - could've reset the DPCD state, which requires tearing - * down/recreating the MST topology. - * - * Returns %true if the SW MST enabled and DPCD states match, %false - * otherwise. - */ -bool intel_dp_mst_verify_dpcd_state(struct intel_dp *intel_dp) -{ - struct intel_display *display = to_intel_display(intel_dp); - struct intel_connector *connector = intel_dp->attached_connector; - struct intel_digital_port *dig_port = dp_to_dig_port(intel_dp); - struct intel_encoder *encoder = &dig_port->base; - int ret; - u8 val; - - if (!intel_dp->is_mst) - return true; - - ret = drm_dp_dpcd_readb(intel_dp->mst_mgr.aux, DP_MSTM_CTRL, &val); - - /* Adjust the expected register value for SST + SideBand. */ - if (ret < 0 || val != (DP_MST_EN | DP_UP_REQ_EN | DP_UPSTREAM_IS_SRC)) { - drm_dbg_kms(display->drm, - "[CONNECTOR:%d:%s][ENCODER:%d:%s] MST mode got reset, removing topology (ret=%d, ctrl=0x%02x)\n", - connector->base.base.id, connector->base.name, - encoder->base.base.id, encoder->base.name, - ret, val); - - return false; - } - - return true; -} -- 2.45.2 -- Cheers, Stephen Rothwell
Attachment:
pgpI43FUABtQi.pgp
Description: OpenPGP digital signature