* [PATCH 1/2] drm/i915/ddi: Fix cleanup after DP connector init failure
@ 2026-05-07 6:59 Imre Deak
2026-05-07 6:59 ` [PATCH 2/2] drm/i915/ddi: Fix cleanup after HDMI " Imre Deak
` (2 more replies)
0 siblings, 3 replies; 8+ messages in thread
From: Imre Deak @ 2026-05-07 6:59 UTC (permalink / raw)
To: intel-gfx, intel-xe
Fix the error path during DDI encoder/connector initialization by
calling the missing TC port cleanup function.
This fixes the leaked TC port state.
Signed-off-by: Imre Deak <imre.deak@intel.com>
---
drivers/gpu/drm/i915/display/intel_ddi.c | 13 ++++++++-----
1 file changed, 8 insertions(+), 5 deletions(-)
diff --git a/drivers/gpu/drm/i915/display/intel_ddi.c b/drivers/gpu/drm/i915/display/intel_ddi.c
index 2681940a5cfe3..e37cc32ee83ed 100644
--- a/drivers/gpu/drm/i915/display/intel_ddi.c
+++ b/drivers/gpu/drm/i915/display/intel_ddi.c
@@ -5411,7 +5411,7 @@ void intel_ddi_init(struct intel_display *display,
if (need_aux_ch(encoder, init_dp)) {
dig_port->aux_ch = intel_dp_aux_ch(encoder);
if (dig_port->aux_ch == AUX_CH_NONE)
- goto err;
+ goto err_aux_ch_init;
}
/*
@@ -5447,7 +5447,7 @@ void intel_ddi_init(struct intel_display *display,
dig_port->unlock = intel_tc_port_unlock;
if (intel_tc_port_init(dig_port, is_legacy) < 0)
- goto err;
+ goto err_aux_ch_init;
}
drm_WARN_ON(display->drm, port > PORT_I);
@@ -5478,7 +5478,7 @@ void intel_ddi_init(struct intel_display *display,
if (init_dp) {
if (intel_ddi_init_dp_connector(dig_port))
- goto err;
+ goto err_dp_connector_init;
dig_port->hpd_pulse = intel_dp_hpd_pulse;
@@ -5492,12 +5492,15 @@ void intel_ddi_init(struct intel_display *display,
*/
if (encoder->type != INTEL_OUTPUT_EDP && init_hdmi) {
if (intel_ddi_init_hdmi_connector(dig_port))
- goto err;
+ goto err_dp_connector_init;
}
return;
-err:
+err_dp_connector_init:
+ if (intel_encoder_is_tc(encoder))
+ intel_tc_port_cleanup(dig_port);
+err_aux_ch_init:
drm_encoder_cleanup(&encoder->base);
kfree(dig_port);
}
--
2.49.1
^ permalink raw reply related [flat|nested] 8+ messages in thread* [PATCH 2/2] drm/i915/ddi: Fix cleanup after HDMI connector init failure 2026-05-07 6:59 [PATCH 1/2] drm/i915/ddi: Fix cleanup after DP connector init failure Imre Deak @ 2026-05-07 6:59 ` Imre Deak 2026-05-08 14:29 ` Hogander, Jouni 2026-05-07 10:58 ` ✗ i915.CI.BAT: failure for series starting with [1/2] drm/i915/ddi: Fix cleanup after DP " Patchwork 2026-05-08 12:26 ` [PATCH 1/2] " Hogander, Jouni 2 siblings, 1 reply; 8+ messages in thread From: Imre Deak @ 2026-05-07 6:59 UTC (permalink / raw) To: intel-gfx, intel-xe; +Cc: Sashiko Perform the missing DDI DP connector cleanup steps after HDMI connector initialization failure during DDI encoder/connector initialization. This fixes the leaked DP MST encoder, AUX state, and connector object. Reported-by: Sashiko <sashiko-bot@kernel.org> Signed-off-by: Imre Deak <imre.deak@intel.com> --- drivers/gpu/drm/i915/display/intel_ddi.c | 14 +++++++++++++- drivers/gpu/drm/i915/display/intel_dp.c | 13 +++++++++++++ drivers/gpu/drm/i915/display/intel_dp.h | 3 +++ 3 files changed, 29 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/i915/display/intel_ddi.c b/drivers/gpu/drm/i915/display/intel_ddi.c index e37cc32ee83ed..cd61ddb7f4696 100644 --- a/drivers/gpu/drm/i915/display/intel_ddi.c +++ b/drivers/gpu/drm/i915/display/intel_ddi.c @@ -4729,6 +4729,15 @@ static int intel_ddi_init_dp_connector(struct intel_digital_port *dig_port) return 0; } +static void intel_ddi_cleanup_dp_connector(struct intel_digital_port *dig_port) +{ + struct intel_dp *intel_dp = &dig_port->dp; + struct intel_connector *connector = intel_dp->attached_connector; + + intel_dp_cleanup_connector(dig_port, connector); + kfree(connector); +} + static int intel_hdmi_reset_link(struct intel_encoder *encoder, struct drm_modeset_acquire_ctx *ctx) { @@ -5492,11 +5501,14 @@ void intel_ddi_init(struct intel_display *display, */ if (encoder->type != INTEL_OUTPUT_EDP && init_hdmi) { if (intel_ddi_init_hdmi_connector(dig_port)) - goto err_dp_connector_init; + goto err_hdmi_connector_init; } return; +err_hdmi_connector_init: + if (init_dp) + intel_ddi_cleanup_dp_connector(dig_port); err_dp_connector_init: if (intel_encoder_is_tc(encoder)) intel_tc_port_cleanup(dig_port); diff --git a/drivers/gpu/drm/i915/display/intel_dp.c b/drivers/gpu/drm/i915/display/intel_dp.c index 86123614b7bae..97c572e5a5710 100644 --- a/drivers/gpu/drm/i915/display/intel_dp.c +++ b/drivers/gpu/drm/i915/display/intel_dp.c @@ -7346,6 +7346,19 @@ intel_dp_init_connector(struct intel_digital_port *dig_port, return false; } +void intel_dp_cleanup_connector(struct intel_digital_port *dig_port, + struct intel_connector *connector) +{ + struct intel_display *display = to_intel_display(connector); + struct intel_dp *intel_dp = &dig_port->dp; + + intel_display_power_flush_work(display); + + intel_dp_mst_encoder_cleanup(dig_port); + intel_dp_aux_fini(intel_dp); + drm_connector_cleanup(&connector->base); +} + void intel_dp_mst_suspend(struct intel_display *display) { struct intel_encoder *encoder; diff --git a/drivers/gpu/drm/i915/display/intel_dp.h b/drivers/gpu/drm/i915/display/intel_dp.h index 2849b9ecdc71a..f41480d247142 100644 --- a/drivers/gpu/drm/i915/display/intel_dp.h +++ b/drivers/gpu/drm/i915/display/intel_dp.h @@ -48,6 +48,9 @@ intel_dp_queue_modeset_retry_for_link(struct intel_atomic_state *state, const struct intel_crtc_state *crtc_state); bool intel_dp_init_connector(struct intel_digital_port *dig_port, struct intel_connector *intel_connector); +void intel_dp_cleanup_connector(struct intel_digital_port *dig_port, + struct intel_connector *connector); + void intel_dp_connector_sync_state(struct intel_connector *connector, const struct intel_crtc_state *crtc_state); void intel_dp_set_link_params(struct intel_dp *intel_dp, -- 2.49.1 ^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH 2/2] drm/i915/ddi: Fix cleanup after HDMI connector init failure 2026-05-07 6:59 ` [PATCH 2/2] drm/i915/ddi: Fix cleanup after HDMI " Imre Deak @ 2026-05-08 14:29 ` Hogander, Jouni 2026-05-08 14:34 ` Imre Deak 0 siblings, 1 reply; 8+ messages in thread From: Hogander, Jouni @ 2026-05-08 14:29 UTC (permalink / raw) To: intel-xe@lists.freedesktop.org, intel-gfx@lists.freedesktop.org, Deak, Imre Cc: sashiko-bot@kernel.org On Thu, 2026-05-07 at 09:59 +0300, Imre Deak wrote: > Perform the missing DDI DP connector cleanup steps after HDMI > connector > initialization failure during DDI encoder/connector initialization. > > This fixes the leaked DP MST encoder, AUX state, and connector > object. > > Reported-by: Sashiko <sashiko-bot@kernel.org> > Signed-off-by: Imre Deak <imre.deak@intel.com> > --- > drivers/gpu/drm/i915/display/intel_ddi.c | 14 +++++++++++++- > drivers/gpu/drm/i915/display/intel_dp.c | 13 +++++++++++++ > drivers/gpu/drm/i915/display/intel_dp.h | 3 +++ > 3 files changed, 29 insertions(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/i915/display/intel_ddi.c > b/drivers/gpu/drm/i915/display/intel_ddi.c > index e37cc32ee83ed..cd61ddb7f4696 100644 > --- a/drivers/gpu/drm/i915/display/intel_ddi.c > +++ b/drivers/gpu/drm/i915/display/intel_ddi.c > @@ -4729,6 +4729,15 @@ static int intel_ddi_init_dp_connector(struct > intel_digital_port *dig_port) > return 0; > } > > +static void intel_ddi_cleanup_dp_connector(struct intel_digital_port > *dig_port) > +{ > + struct intel_dp *intel_dp = &dig_port->dp; > + struct intel_connector *connector = intel_dp- > >attached_connector; > + > + intel_dp_cleanup_connector(dig_port, connector); > + kfree(connector); > +} > + > static int intel_hdmi_reset_link(struct intel_encoder *encoder, > struct drm_modeset_acquire_ctx > *ctx) > { > @@ -5492,11 +5501,14 @@ void intel_ddi_init(struct intel_display > *display, > */ > if (encoder->type != INTEL_OUTPUT_EDP && init_hdmi) { > if (intel_ddi_init_hdmi_connector(dig_port)) > - goto err_dp_connector_init; > + goto err_hdmi_connector_init; > } > > return; > > +err_hdmi_connector_init: > + if (init_dp) > + intel_ddi_cleanup_dp_connector(dig_port); > err_dp_connector_init: > if (intel_encoder_is_tc(encoder)) > intel_tc_port_cleanup(dig_port); > diff --git a/drivers/gpu/drm/i915/display/intel_dp.c > b/drivers/gpu/drm/i915/display/intel_dp.c > index 86123614b7bae..97c572e5a5710 100644 > --- a/drivers/gpu/drm/i915/display/intel_dp.c > +++ b/drivers/gpu/drm/i915/display/intel_dp.c > @@ -7346,6 +7346,19 @@ intel_dp_init_connector(struct > intel_digital_port *dig_port, > return false; > } > > +void intel_dp_cleanup_connector(struct intel_digital_port *dig_port, > + struct intel_connector *connector) > +{ > + struct intel_display *display = to_intel_display(connector); > + struct intel_dp *intel_dp = &dig_port->dp; > + > + intel_display_power_flush_work(display); Why do you need to have this as this is targeted for clean-up on error case during initialization phase. I wouldn't expect power get/put async at that point? BR, Jouni Högander > + > + intel_dp_mst_encoder_cleanup(dig_port); > + intel_dp_aux_fini(intel_dp); > + drm_connector_cleanup(&connector->base); > +} > + > void intel_dp_mst_suspend(struct intel_display *display) > { > struct intel_encoder *encoder; > diff --git a/drivers/gpu/drm/i915/display/intel_dp.h > b/drivers/gpu/drm/i915/display/intel_dp.h > index 2849b9ecdc71a..f41480d247142 100644 > --- a/drivers/gpu/drm/i915/display/intel_dp.h > +++ b/drivers/gpu/drm/i915/display/intel_dp.h > @@ -48,6 +48,9 @@ intel_dp_queue_modeset_retry_for_link(struct > intel_atomic_state *state, > const struct intel_crtc_state > *crtc_state); > bool intel_dp_init_connector(struct intel_digital_port *dig_port, > struct intel_connector > *intel_connector); > +void intel_dp_cleanup_connector(struct intel_digital_port *dig_port, > + struct intel_connector *connector); > + > void intel_dp_connector_sync_state(struct intel_connector > *connector, > const struct intel_crtc_state > *crtc_state); > void intel_dp_set_link_params(struct intel_dp *intel_dp, ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 2/2] drm/i915/ddi: Fix cleanup after HDMI connector init failure 2026-05-08 14:29 ` Hogander, Jouni @ 2026-05-08 14:34 ` Imre Deak 0 siblings, 0 replies; 8+ messages in thread From: Imre Deak @ 2026-05-08 14:34 UTC (permalink / raw) To: Hogander, Jouni Cc: intel-xe@lists.freedesktop.org, intel-gfx@lists.freedesktop.org, sashiko-bot@kernel.org On Fri, May 08, 2026 at 05:29:33PM +0300, Hogander, Jouni wrote: > On Thu, 2026-05-07 at 09:59 +0300, Imre Deak wrote: > > Perform the missing DDI DP connector cleanup steps after HDMI > > connector > > initialization failure during DDI encoder/connector initialization. > > > > This fixes the leaked DP MST encoder, AUX state, and connector > > object. > > > > Reported-by: Sashiko <sashiko-bot@kernel.org> > > Signed-off-by: Imre Deak <imre.deak@intel.com> > > --- > > drivers/gpu/drm/i915/display/intel_ddi.c | 14 +++++++++++++- > > drivers/gpu/drm/i915/display/intel_dp.c | 13 +++++++++++++ > > drivers/gpu/drm/i915/display/intel_dp.h | 3 +++ > > 3 files changed, 29 insertions(+), 1 deletion(-) > > > > diff --git a/drivers/gpu/drm/i915/display/intel_ddi.c > > b/drivers/gpu/drm/i915/display/intel_ddi.c > > index e37cc32ee83ed..cd61ddb7f4696 100644 > > --- a/drivers/gpu/drm/i915/display/intel_ddi.c > > +++ b/drivers/gpu/drm/i915/display/intel_ddi.c > > @@ -4729,6 +4729,15 @@ static int intel_ddi_init_dp_connector(struct > > intel_digital_port *dig_port) > > return 0; > > } > > > > +static void intel_ddi_cleanup_dp_connector(struct intel_digital_port > > *dig_port) > > +{ > > + struct intel_dp *intel_dp = &dig_port->dp; > > + struct intel_connector *connector = intel_dp- > > >attached_connector; > > + > > + intel_dp_cleanup_connector(dig_port, connector); > > + kfree(connector); > > +} > > + > > static int intel_hdmi_reset_link(struct intel_encoder *encoder, > > struct drm_modeset_acquire_ctx > > *ctx) > > { > > @@ -5492,11 +5501,14 @@ void intel_ddi_init(struct intel_display > > *display, > > */ > > if (encoder->type != INTEL_OUTPUT_EDP && init_hdmi) { > > if (intel_ddi_init_hdmi_connector(dig_port)) > > - goto err_dp_connector_init; > > + goto err_hdmi_connector_init; > > } > > > > return; > > > > +err_hdmi_connector_init: > > + if (init_dp) > > + intel_ddi_cleanup_dp_connector(dig_port); > > err_dp_connector_init: > > if (intel_encoder_is_tc(encoder)) > > intel_tc_port_cleanup(dig_port); > > diff --git a/drivers/gpu/drm/i915/display/intel_dp.c > > b/drivers/gpu/drm/i915/display/intel_dp.c > > index 86123614b7bae..97c572e5a5710 100644 > > --- a/drivers/gpu/drm/i915/display/intel_dp.c > > +++ b/drivers/gpu/drm/i915/display/intel_dp.c > > @@ -7346,6 +7346,19 @@ intel_dp_init_connector(struct > > intel_digital_port *dig_port, > > return false; > > } > > > > +void intel_dp_cleanup_connector(struct intel_digital_port *dig_port, > > + struct intel_connector *connector) > > +{ > > + struct intel_display *display = to_intel_display(connector); > > + struct intel_dp *intel_dp = &dig_port->dp; > > + > > + intel_display_power_flush_work(display); > > Why do you need to have this as this is targeted for clean-up on error > case during initialization phase. I wouldn't expect power get/put async > at that point? intel_edp_init_connector() does AUX accesses required for its initialization. That in turn takes power references which are put in a deferred way, putting the reference requiring the encoder object. The above call ensures that all such power references are dropped and the currepsonding put operation is not called after the encoder object is freed. > > BR, > Jouni Högander > > > + > > + intel_dp_mst_encoder_cleanup(dig_port); > > + intel_dp_aux_fini(intel_dp); > > + drm_connector_cleanup(&connector->base); > > +} > > + > > void intel_dp_mst_suspend(struct intel_display *display) > > { > > struct intel_encoder *encoder; > > diff --git a/drivers/gpu/drm/i915/display/intel_dp.h > > b/drivers/gpu/drm/i915/display/intel_dp.h > > index 2849b9ecdc71a..f41480d247142 100644 > > --- a/drivers/gpu/drm/i915/display/intel_dp.h > > +++ b/drivers/gpu/drm/i915/display/intel_dp.h > > @@ -48,6 +48,9 @@ intel_dp_queue_modeset_retry_for_link(struct > > intel_atomic_state *state, > > const struct intel_crtc_state > > *crtc_state); > > bool intel_dp_init_connector(struct intel_digital_port *dig_port, > > struct intel_connector > > *intel_connector); > > +void intel_dp_cleanup_connector(struct intel_digital_port *dig_port, > > + struct intel_connector *connector); > > + > > void intel_dp_connector_sync_state(struct intel_connector > > *connector, > > const struct intel_crtc_state > > *crtc_state); > > void intel_dp_set_link_params(struct intel_dp *intel_dp, > ^ permalink raw reply [flat|nested] 8+ messages in thread
* ✗ i915.CI.BAT: failure for series starting with [1/2] drm/i915/ddi: Fix cleanup after DP connector init failure 2026-05-07 6:59 [PATCH 1/2] drm/i915/ddi: Fix cleanup after DP connector init failure Imre Deak 2026-05-07 6:59 ` [PATCH 2/2] drm/i915/ddi: Fix cleanup after HDMI " Imre Deak @ 2026-05-07 10:58 ` Patchwork 2026-05-08 10:10 ` Imre Deak 2026-05-08 12:26 ` [PATCH 1/2] " Hogander, Jouni 2 siblings, 1 reply; 8+ messages in thread From: Patchwork @ 2026-05-07 10:58 UTC (permalink / raw) To: Imre Deak; +Cc: intel-gfx [-- Attachment #1: Type: text/plain, Size: 2524 bytes --] == Series Details == Series: series starting with [1/2] drm/i915/ddi: Fix cleanup after DP connector init failure URL : https://patchwork.freedesktop.org/series/166105/ State : failure == Summary == CI Bug Log - changes from CI_DRM_18438 -> Patchwork_166105v1 ==================================================== Summary ------- **FAILURE** Serious unknown changes coming with Patchwork_166105v1 absolutely need to be verified manually. If you think the reported changes have nothing to do with the changes introduced in Patchwork_166105v1, please notify your bug team (I915-ci-infra@lists.freedesktop.org) to allow them to document this new failure mode, which will reduce false positives in CI. External URL: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_166105v1/index.html Participating hosts (42 -> 40) ------------------------------ Missing (2): bat-dg2-13 fi-snb-2520m Possible new issues ------------------- Here are the unknown changes that may have been introduced in Patchwork_166105v1: ### IGT changes ### #### Possible regressions #### * igt@i915_selftest@live@gt_lrc: - bat-mtlp-9: [PASS][1] -> [INCOMPLETE][2] +1 other test incomplete [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18438/bat-mtlp-9/igt@i915_selftest@live@gt_lrc.html [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_166105v1/bat-mtlp-9/igt@i915_selftest@live@gt_lrc.html Known issues ------------ Here are the changes found in Patchwork_166105v1 that come from known issues: ### IGT changes ### #### Issues hit #### * igt@i915_selftest@live: - bat-dg2-8: [PASS][3] -> [DMESG-FAIL][4] ([i915#12061]) +1 other test dmesg-fail [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18438/bat-dg2-8/igt@i915_selftest@live.html [4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_166105v1/bat-dg2-8/igt@i915_selftest@live.html [i915#12061]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12061 Build changes ------------- * Linux: CI_DRM_18438 -> Patchwork_166105v1 CI-20190529: 20190529 CI_DRM_18438: 30f8a0629f6924f24369cac9161b1a9741880259 @ git://anongit.freedesktop.org/gfx-ci/linux IGT_8899: 3e5747e536f148bf232049e49a00e2b683f91a83 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git Patchwork_166105v1: 30f8a0629f6924f24369cac9161b1a9741880259 @ git://anongit.freedesktop.org/gfx-ci/linux == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_166105v1/index.html [-- Attachment #2: Type: text/html, Size: 3150 bytes --] ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: ✗ i915.CI.BAT: failure for series starting with [1/2] drm/i915/ddi: Fix cleanup after DP connector init failure 2026-05-07 10:58 ` ✗ i915.CI.BAT: failure for series starting with [1/2] drm/i915/ddi: Fix cleanup after DP " Patchwork @ 2026-05-08 10:10 ` Imre Deak 0 siblings, 0 replies; 8+ messages in thread From: Imre Deak @ 2026-05-08 10:10 UTC (permalink / raw) To: I915-ci-infra; +Cc: intel-gfx Hi CI team, could you forward this patchset for getting a full test coverage? The BAT failure is unrelated to the changes, see below. On Thu, May 07, 2026 at 10:58:10AM +0000, Patchwork wrote: > == Series Details == > > Series: series starting with [1/2] drm/i915/ddi: Fix cleanup after DP connector init failure > URL : https://patchwork.freedesktop.org/series/166105/ > State : failure > > == Summary == > > CI Bug Log - changes from CI_DRM_18438 -> Patchwork_166105v1 > ==================================================== > > Summary > ------- > > **FAILURE** > > Serious unknown changes coming with Patchwork_166105v1 absolutely need to be > verified manually. > > If you think the reported changes have nothing to do with the changes > introduced in Patchwork_166105v1, please notify your bug team (I915-ci-infra@lists.freedesktop.org) to allow them > to document this new failure mode, which will reduce false positives in CI. > > External URL: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_166105v1/index.html > > Participating hosts (42 -> 40) > ------------------------------ > > Missing (2): bat-dg2-13 fi-snb-2520m > > Possible new issues > ------------------- > > Here are the unknown changes that may have been introduced in Patchwork_166105v1: > > ### IGT changes ### > > #### Possible regressions #### > > * igt@i915_selftest@live@gt_lrc: > - bat-mtlp-9: [PASS][1] -> [INCOMPLETE][2] +1 other test incomplete > [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18438/bat-mtlp-9/igt@i915_selftest@live@gt_lrc.html > [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_166105v1/bat-mtlp-9/igt@i915_selftest@live@gt_lrc.html The changes in the patchset affect only error scenarios during DP/HDMI connector registration, however there wasn't any such error occuring in the above test run: both in the PASS and INCOMPLETE case eDP-1/DP-1..5/HDMI-A-1 are registered without any errors. > Known issues > ------------ > > Here are the changes found in Patchwork_166105v1 that come from known issues: > > ### IGT changes ### > > #### Issues hit #### > > * igt@i915_selftest@live: > - bat-dg2-8: [PASS][3] -> [DMESG-FAIL][4] ([i915#12061]) +1 other test dmesg-fail > [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18438/bat-dg2-8/igt@i915_selftest@live.html > [4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_166105v1/bat-dg2-8/igt@i915_selftest@live.html > > > [i915#12061]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12061 > > > Build changes > ------------- > > * Linux: CI_DRM_18438 -> Patchwork_166105v1 > > CI-20190529: 20190529 > CI_DRM_18438: 30f8a0629f6924f24369cac9161b1a9741880259 @ git://anongit.freedesktop.org/gfx-ci/linux > IGT_8899: 3e5747e536f148bf232049e49a00e2b683f91a83 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git > Patchwork_166105v1: 30f8a0629f6924f24369cac9161b1a9741880259 @ git://anongit.freedesktop.org/gfx-ci/linux > > == Logs == > > For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_166105v1/index.html ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 1/2] drm/i915/ddi: Fix cleanup after DP connector init failure 2026-05-07 6:59 [PATCH 1/2] drm/i915/ddi: Fix cleanup after DP connector init failure Imre Deak 2026-05-07 6:59 ` [PATCH 2/2] drm/i915/ddi: Fix cleanup after HDMI " Imre Deak 2026-05-07 10:58 ` ✗ i915.CI.BAT: failure for series starting with [1/2] drm/i915/ddi: Fix cleanup after DP " Patchwork @ 2026-05-08 12:26 ` Hogander, Jouni 2026-05-08 12:38 ` Imre Deak 2 siblings, 1 reply; 8+ messages in thread From: Hogander, Jouni @ 2026-05-08 12:26 UTC (permalink / raw) To: intel-xe@lists.freedesktop.org, intel-gfx@lists.freedesktop.org, Deak, Imre On Thu, 2026-05-07 at 09:59 +0300, Imre Deak wrote: > Fix the error path during DDI encoder/connector initialization by > calling the missing TC port cleanup function. > > This fixes the leaked TC port state. Do we need "Fixes:" line here? Otherwise patch looks ok: Reviewed-by: Jouni Högander <jouni.hogander@intel.com> > > Signed-off-by: Imre Deak <imre.deak@intel.com> > --- > drivers/gpu/drm/i915/display/intel_ddi.c | 13 ++++++++----- > 1 file changed, 8 insertions(+), 5 deletions(-) > > diff --git a/drivers/gpu/drm/i915/display/intel_ddi.c > b/drivers/gpu/drm/i915/display/intel_ddi.c > index 2681940a5cfe3..e37cc32ee83ed 100644 > --- a/drivers/gpu/drm/i915/display/intel_ddi.c > +++ b/drivers/gpu/drm/i915/display/intel_ddi.c > @@ -5411,7 +5411,7 @@ void intel_ddi_init(struct intel_display > *display, > if (need_aux_ch(encoder, init_dp)) { > dig_port->aux_ch = intel_dp_aux_ch(encoder); > if (dig_port->aux_ch == AUX_CH_NONE) > - goto err; > + goto err_aux_ch_init; > } > > /* > @@ -5447,7 +5447,7 @@ void intel_ddi_init(struct intel_display > *display, > dig_port->unlock = intel_tc_port_unlock; > > if (intel_tc_port_init(dig_port, is_legacy) < 0) > - goto err; > + goto err_aux_ch_init; > } > > drm_WARN_ON(display->drm, port > PORT_I); > @@ -5478,7 +5478,7 @@ void intel_ddi_init(struct intel_display > *display, > > if (init_dp) { > if (intel_ddi_init_dp_connector(dig_port)) > - goto err; > + goto err_dp_connector_init; > > dig_port->hpd_pulse = intel_dp_hpd_pulse; > > @@ -5492,12 +5492,15 @@ void intel_ddi_init(struct intel_display > *display, > */ > if (encoder->type != INTEL_OUTPUT_EDP && init_hdmi) { > if (intel_ddi_init_hdmi_connector(dig_port)) > - goto err; > + goto err_dp_connector_init; > } > > return; > > -err: > +err_dp_connector_init: > + if (intel_encoder_is_tc(encoder)) > + intel_tc_port_cleanup(dig_port); > +err_aux_ch_init: > drm_encoder_cleanup(&encoder->base); > kfree(dig_port); > } ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 1/2] drm/i915/ddi: Fix cleanup after DP connector init failure 2026-05-08 12:26 ` [PATCH 1/2] " Hogander, Jouni @ 2026-05-08 12:38 ` Imre Deak 0 siblings, 0 replies; 8+ messages in thread From: Imre Deak @ 2026-05-08 12:38 UTC (permalink / raw) To: Hogander, Jouni Cc: intel-xe@lists.freedesktop.org, intel-gfx@lists.freedesktop.org On Fri, May 08, 2026 at 03:26:43PM +0300, Hogander, Jouni wrote: > On Thu, 2026-05-07 at 09:59 +0300, Imre Deak wrote: > > Fix the error path during DDI encoder/connector initialization by > > calling the missing TC port cleanup function. > > > > This fixes the leaked TC port state. > > Do we need "Fixes:" line here? Otherwise patch looks ok: Wondered about it too. Fixes: involves the automatic stable backporting of the patch and the criteria for a stable backport is whether the patch fixes an actual usecase for someone. The likelihood for that is close to 0, it's an error path and even if that ran for someone (due to -ENOMEM) the leaks wouldn't be the real issue. > Reviewed-by: Jouni Högander <jouni.hogander@intel.com> > > > > > Signed-off-by: Imre Deak <imre.deak@intel.com> > > --- > > drivers/gpu/drm/i915/display/intel_ddi.c | 13 ++++++++----- > > 1 file changed, 8 insertions(+), 5 deletions(-) > > > > diff --git a/drivers/gpu/drm/i915/display/intel_ddi.c > > b/drivers/gpu/drm/i915/display/intel_ddi.c > > index 2681940a5cfe3..e37cc32ee83ed 100644 > > --- a/drivers/gpu/drm/i915/display/intel_ddi.c > > +++ b/drivers/gpu/drm/i915/display/intel_ddi.c > > @@ -5411,7 +5411,7 @@ void intel_ddi_init(struct intel_display > > *display, > > if (need_aux_ch(encoder, init_dp)) { > > dig_port->aux_ch = intel_dp_aux_ch(encoder); > > if (dig_port->aux_ch == AUX_CH_NONE) > > - goto err; > > + goto err_aux_ch_init; > > } > > > > /* > > @@ -5447,7 +5447,7 @@ void intel_ddi_init(struct intel_display > > *display, > > dig_port->unlock = intel_tc_port_unlock; > > > > if (intel_tc_port_init(dig_port, is_legacy) < 0) > > - goto err; > > + goto err_aux_ch_init; > > } > > > > drm_WARN_ON(display->drm, port > PORT_I); > > @@ -5478,7 +5478,7 @@ void intel_ddi_init(struct intel_display > > *display, > > > > if (init_dp) { > > if (intel_ddi_init_dp_connector(dig_port)) > > - goto err; > > + goto err_dp_connector_init; > > > > dig_port->hpd_pulse = intel_dp_hpd_pulse; > > > > @@ -5492,12 +5492,15 @@ void intel_ddi_init(struct intel_display > > *display, > > */ > > if (encoder->type != INTEL_OUTPUT_EDP && init_hdmi) { > > if (intel_ddi_init_hdmi_connector(dig_port)) > > - goto err; > > + goto err_dp_connector_init; > > } > > > > return; > > > > -err: > > +err_dp_connector_init: > > + if (intel_encoder_is_tc(encoder)) > > + intel_tc_port_cleanup(dig_port); > > +err_aux_ch_init: > > drm_encoder_cleanup(&encoder->base); > > kfree(dig_port); > > } > ^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2026-05-08 14:35 UTC | newest] Thread overview: 8+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2026-05-07 6:59 [PATCH 1/2] drm/i915/ddi: Fix cleanup after DP connector init failure Imre Deak 2026-05-07 6:59 ` [PATCH 2/2] drm/i915/ddi: Fix cleanup after HDMI " Imre Deak 2026-05-08 14:29 ` Hogander, Jouni 2026-05-08 14:34 ` Imre Deak 2026-05-07 10:58 ` ✗ i915.CI.BAT: failure for series starting with [1/2] drm/i915/ddi: Fix cleanup after DP " Patchwork 2026-05-08 10:10 ` Imre Deak 2026-05-08 12:26 ` [PATCH 1/2] " Hogander, Jouni 2026-05-08 12:38 ` Imre Deak
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox