* [PATCH 6.12 1/6] drm/i915/ddi: change intel_ddi_init_{dp, hdmi}_connector() return type
@ 2025-08-04 10:16 Sergey Senozhatsky
2025-08-04 10:16 ` [PATCH 6.12 2/6] drm/i915/hdmi: propagate errors from intel_hdmi_init_connector() Sergey Senozhatsky
` (6 more replies)
0 siblings, 7 replies; 17+ messages in thread
From: Sergey Senozhatsky @ 2025-08-04 10:16 UTC (permalink / raw)
To: stable; +Cc: Jani Nikula, Suraj Kandpal, Sergey Senozhatsky
From: Jani Nikula <jani.nikula@intel.com>
[ Upstream commit e1980a977686d46dbf45687f7750f1c50d1d6cf8 ]
The caller doesn't actually need the returned struct intel_connector;
it's stored in the ->attached_connector of intel_dp and
intel_hdmi. Switch to returning an int with 0 for success and negative
errors codes to be able to indicate success even when we don't have a
connector.
Reviewed-by: Suraj Kandpal <suraj.kandpal@intel.com>
Tested-by: Sergey Senozhatsky <senozhatsky@chromium.org>
Link: https://patchwork.freedesktop.org/patch/msgid/8ef7fe838231919e85eaead640c51ad3e4550d27.1735568047.git.jani.nikula@intel.com
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
drivers/gpu/drm/i915/display/intel_ddi.c | 20 +++++++++-----------
1 file changed, 9 insertions(+), 11 deletions(-)
diff --git a/drivers/gpu/drm/i915/display/intel_ddi.c b/drivers/gpu/drm/i915/display/intel_ddi.c
index 34dee523f0b6..b567efc5b93c 100644
--- a/drivers/gpu/drm/i915/display/intel_ddi.c
+++ b/drivers/gpu/drm/i915/display/intel_ddi.c
@@ -4413,8 +4413,7 @@ static const struct drm_encoder_funcs intel_ddi_funcs = {
.late_register = intel_ddi_encoder_late_register,
};
-static struct intel_connector *
-intel_ddi_init_dp_connector(struct intel_digital_port *dig_port)
+static int intel_ddi_init_dp_connector(struct intel_digital_port *dig_port)
{
struct drm_i915_private *i915 = to_i915(dig_port->base.base.dev);
struct intel_connector *connector;
@@ -4422,7 +4421,7 @@ intel_ddi_init_dp_connector(struct intel_digital_port *dig_port)
connector = intel_connector_alloc();
if (!connector)
- return NULL;
+ return -ENOMEM;
dig_port->dp.output_reg = DDI_BUF_CTL(port);
if (DISPLAY_VER(i915) >= 14)
@@ -4437,7 +4436,7 @@ intel_ddi_init_dp_connector(struct intel_digital_port *dig_port)
if (!intel_dp_init_connector(dig_port, connector)) {
kfree(connector);
- return NULL;
+ return -EINVAL;
}
if (dig_port->base.type == INTEL_OUTPUT_EDP) {
@@ -4453,7 +4452,7 @@ intel_ddi_init_dp_connector(struct intel_digital_port *dig_port)
}
}
- return connector;
+ return 0;
}
static int intel_hdmi_reset_link(struct intel_encoder *encoder,
@@ -4623,20 +4622,19 @@ static bool bdw_digital_port_connected(struct intel_encoder *encoder)
return intel_de_read(dev_priv, GEN8_DE_PORT_ISR) & bit;
}
-static struct intel_connector *
-intel_ddi_init_hdmi_connector(struct intel_digital_port *dig_port)
+static int intel_ddi_init_hdmi_connector(struct intel_digital_port *dig_port)
{
struct intel_connector *connector;
enum port port = dig_port->base.port;
connector = intel_connector_alloc();
if (!connector)
- return NULL;
+ return -ENOMEM;
dig_port->hdmi.hdmi_reg = DDI_BUF_CTL(port);
intel_hdmi_init_connector(dig_port, connector);
- return connector;
+ return 0;
}
static bool intel_ddi_a_force_4_lanes(struct intel_digital_port *dig_port)
@@ -5185,7 +5183,7 @@ void intel_ddi_init(struct intel_display *display,
intel_infoframe_init(dig_port);
if (init_dp) {
- if (!intel_ddi_init_dp_connector(dig_port))
+ if (intel_ddi_init_dp_connector(dig_port))
goto err;
dig_port->hpd_pulse = intel_dp_hpd_pulse;
@@ -5199,7 +5197,7 @@ void intel_ddi_init(struct intel_display *display,
* but leave it just in case we have some really bad VBTs...
*/
if (encoder->type != INTEL_OUTPUT_EDP && init_hdmi) {
- if (!intel_ddi_init_hdmi_connector(dig_port))
+ if (intel_ddi_init_hdmi_connector(dig_port))
goto err;
}
--
2.50.1.565.gc32cd1483b-goog
^ permalink raw reply related [flat|nested] 17+ messages in thread
* [PATCH 6.12 2/6] drm/i915/hdmi: propagate errors from intel_hdmi_init_connector()
2025-08-04 10:16 [PATCH 6.12 1/6] drm/i915/ddi: change intel_ddi_init_{dp, hdmi}_connector() return type Sergey Senozhatsky
@ 2025-08-04 10:16 ` Sergey Senozhatsky
2025-08-05 1:06 ` Sasha Levin
2025-08-04 10:16 ` [PATCH 6.12 3/6] drm/i915/hdmi: add error handling in g4x_hdmi_init() Sergey Senozhatsky
` (5 subsequent siblings)
6 siblings, 1 reply; 17+ messages in thread
From: Sergey Senozhatsky @ 2025-08-04 10:16 UTC (permalink / raw)
To: stable; +Cc: Jani Nikula, Sergey Senozhatsky, Ville Syrjala
From: Jani Nikula <jani.nikula@intel.com>
[ Upstream commit 7fb56536fa37e23bc291d31c10e575d500f4fda7 ]
Propagate errors from intel_hdmi_init_connector() to be able to handle
them at callers. This is similar to intel_dp_init_connector().
Cc: Sergey Senozhatsky <senozhatsky@chromium.org>
Cc: Ville Syrjala <ville.syrjala@linux.intel.com>
Reported-and-tested-by: Sergey Senozhatsky <senozhatsky@chromium.org>
Closes: https://lore.kernel.org/r/20241031105145.2140590-1-senozhatsky@chromium.org
Reviewed-by: Sergey Senozhatsky <senozhatsky@chromium.org>
Link: https://patchwork.freedesktop.org/patch/msgid/cdaf9e32cc4880c46e120933438c37b4d87be12e.1735568047.git.jani.nikula@intel.com
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
drivers/gpu/drm/i915/display/intel_hdmi.c | 10 ++++++----
drivers/gpu/drm/i915/display/intel_hdmi.h | 2 +-
2 files changed, 7 insertions(+), 5 deletions(-)
diff --git a/drivers/gpu/drm/i915/display/intel_hdmi.c b/drivers/gpu/drm/i915/display/intel_hdmi.c
index cd9ee171e0df..c5b2fbaeff89 100644
--- a/drivers/gpu/drm/i915/display/intel_hdmi.c
+++ b/drivers/gpu/drm/i915/display/intel_hdmi.c
@@ -3015,7 +3015,7 @@ void intel_infoframe_init(struct intel_digital_port *dig_port)
}
}
-void intel_hdmi_init_connector(struct intel_digital_port *dig_port,
+bool intel_hdmi_init_connector(struct intel_digital_port *dig_port,
struct intel_connector *intel_connector)
{
struct intel_display *display = to_intel_display(dig_port);
@@ -3033,17 +3033,17 @@ void intel_hdmi_init_connector(struct intel_digital_port *dig_port,
intel_encoder->base.base.id, intel_encoder->base.name);
if (DISPLAY_VER(display) < 12 && drm_WARN_ON(dev, port == PORT_A))
- return;
+ return false;
if (drm_WARN(dev, dig_port->max_lanes < 4,
"Not enough lanes (%d) for HDMI on [ENCODER:%d:%s]\n",
dig_port->max_lanes, intel_encoder->base.base.id,
intel_encoder->base.name))
- return;
+ return false;
ddc_pin = intel_hdmi_ddc_pin(intel_encoder);
if (!ddc_pin)
- return;
+ return false;
drm_connector_init_with_ddc(dev, connector,
&intel_hdmi_connector_funcs,
@@ -3088,6 +3088,8 @@ void intel_hdmi_init_connector(struct intel_digital_port *dig_port,
&conn_info);
if (!intel_hdmi->cec_notifier)
drm_dbg_kms(display->drm, "CEC notifier get failed\n");
+
+ return true;
}
/*
diff --git a/drivers/gpu/drm/i915/display/intel_hdmi.h b/drivers/gpu/drm/i915/display/intel_hdmi.h
index 9b97623665c5..fc64a3affc71 100644
--- a/drivers/gpu/drm/i915/display/intel_hdmi.h
+++ b/drivers/gpu/drm/i915/display/intel_hdmi.h
@@ -22,7 +22,7 @@ struct intel_encoder;
struct intel_hdmi;
union hdmi_infoframe;
-void intel_hdmi_init_connector(struct intel_digital_port *dig_port,
+bool intel_hdmi_init_connector(struct intel_digital_port *dig_port,
struct intel_connector *intel_connector);
bool intel_hdmi_compute_has_hdmi_sink(struct intel_encoder *encoder,
const struct intel_crtc_state *crtc_state,
--
2.50.1.565.gc32cd1483b-goog
^ permalink raw reply related [flat|nested] 17+ messages in thread
* [PATCH 6.12 3/6] drm/i915/hdmi: add error handling in g4x_hdmi_init()
2025-08-04 10:16 [PATCH 6.12 1/6] drm/i915/ddi: change intel_ddi_init_{dp, hdmi}_connector() return type Sergey Senozhatsky
2025-08-04 10:16 ` [PATCH 6.12 2/6] drm/i915/hdmi: propagate errors from intel_hdmi_init_connector() Sergey Senozhatsky
@ 2025-08-04 10:16 ` Sergey Senozhatsky
2025-08-05 1:06 ` Sasha Levin
2025-08-04 10:16 ` [PATCH 6.12 4/6] drm/i915/ddi: gracefully handle errors from intel_ddi_init_hdmi_connector() Sergey Senozhatsky
` (4 subsequent siblings)
6 siblings, 1 reply; 17+ messages in thread
From: Sergey Senozhatsky @ 2025-08-04 10:16 UTC (permalink / raw)
To: stable; +Cc: Jani Nikula, Sergey Senozhatsky, Ville Syrjala
From: Jani Nikula <jani.nikula@intel.com>
[ Upstream commit 7603ba81225c815d2ceb4ad52f13e8df4b9d03cc ]
Handle encoder and connector init failures in g4x_hdmi_init(). This is
similar to g4x_dp_init().
Cc: Sergey Senozhatsky <senozhatsky@chromium.org>
Cc: Ville Syrjala <ville.syrjala@linux.intel.com>
Reported-and-tested-by: Sergey Senozhatsky <senozhatsky@chromium.org>
Closes: https://lore.kernel.org/r/20241031105145.2140590-1-senozhatsky@chromium.org
Reviewed-by: Sergey Senozhatsky <senozhatsky@chromium.org>
Link: https://patchwork.freedesktop.org/patch/msgid/cafae7bf1f9ffb8f6a1d7a508cd2ce7dcf06fef7.1735568047.git.jani.nikula@intel.com
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
drivers/gpu/drm/i915/display/g4x_hdmi.c | 35 ++++++++++++++++---------
drivers/gpu/drm/i915/display/g4x_hdmi.h | 5 ++--
2 files changed, 26 insertions(+), 14 deletions(-)
diff --git a/drivers/gpu/drm/i915/display/g4x_hdmi.c b/drivers/gpu/drm/i915/display/g4x_hdmi.c
index 46f23bdb4c17..b89a364a3924 100644
--- a/drivers/gpu/drm/i915/display/g4x_hdmi.c
+++ b/drivers/gpu/drm/i915/display/g4x_hdmi.c
@@ -683,7 +683,7 @@ static bool assert_hdmi_port_valid(struct drm_i915_private *i915, enum port port
"Platform does not support HDMI %c\n", port_name(port));
}
-void g4x_hdmi_init(struct drm_i915_private *dev_priv,
+bool g4x_hdmi_init(struct drm_i915_private *dev_priv,
i915_reg_t hdmi_reg, enum port port)
{
struct intel_display *display = &dev_priv->display;
@@ -693,10 +693,10 @@ void g4x_hdmi_init(struct drm_i915_private *dev_priv,
struct intel_connector *intel_connector;
if (!assert_port_valid(dev_priv, port))
- return;
+ return false;
if (!assert_hdmi_port_valid(dev_priv, port))
- return;
+ return false;
devdata = intel_bios_encoder_data_lookup(display, port);
@@ -707,15 +707,13 @@ void g4x_hdmi_init(struct drm_i915_private *dev_priv,
dig_port = kzalloc(sizeof(*dig_port), GFP_KERNEL);
if (!dig_port)
- return;
+ return false;
dig_port->aux_ch = AUX_CH_NONE;
intel_connector = intel_connector_alloc();
- if (!intel_connector) {
- kfree(dig_port);
- return;
- }
+ if (!intel_connector)
+ goto err_connector_alloc;
intel_encoder = &dig_port->base;
@@ -723,9 +721,10 @@ void g4x_hdmi_init(struct drm_i915_private *dev_priv,
mutex_init(&dig_port->hdcp_mutex);
- drm_encoder_init(&dev_priv->drm, &intel_encoder->base,
- &intel_hdmi_enc_funcs, DRM_MODE_ENCODER_TMDS,
- "HDMI %c", port_name(port));
+ if (drm_encoder_init(&dev_priv->drm, &intel_encoder->base,
+ &intel_hdmi_enc_funcs, DRM_MODE_ENCODER_TMDS,
+ "HDMI %c", port_name(port)))
+ goto err_encoder_init;
intel_encoder->hotplug = intel_hdmi_hotplug;
intel_encoder->compute_config = g4x_hdmi_compute_config;
@@ -788,5 +787,17 @@ void g4x_hdmi_init(struct drm_i915_private *dev_priv,
intel_infoframe_init(dig_port);
- intel_hdmi_init_connector(dig_port, intel_connector);
+ if (!intel_hdmi_init_connector(dig_port, intel_connector))
+ goto err_init_connector;
+
+ return true;
+
+err_init_connector:
+ drm_encoder_cleanup(&intel_encoder->base);
+err_encoder_init:
+ kfree(intel_connector);
+err_connector_alloc:
+ kfree(dig_port);
+
+ return false;
}
diff --git a/drivers/gpu/drm/i915/display/g4x_hdmi.h b/drivers/gpu/drm/i915/display/g4x_hdmi.h
index 817f55c7a3a1..a52e8986ec7a 100644
--- a/drivers/gpu/drm/i915/display/g4x_hdmi.h
+++ b/drivers/gpu/drm/i915/display/g4x_hdmi.h
@@ -16,14 +16,15 @@ struct drm_connector;
struct drm_i915_private;
#ifdef I915
-void g4x_hdmi_init(struct drm_i915_private *dev_priv,
+bool g4x_hdmi_init(struct drm_i915_private *dev_priv,
i915_reg_t hdmi_reg, enum port port);
int g4x_hdmi_connector_atomic_check(struct drm_connector *connector,
struct drm_atomic_state *state);
#else
-static inline void g4x_hdmi_init(struct drm_i915_private *dev_priv,
+static inline bool g4x_hdmi_init(struct drm_i915_private *dev_priv,
i915_reg_t hdmi_reg, int port)
{
+ return false;
}
static inline int g4x_hdmi_connector_atomic_check(struct drm_connector *connector,
struct drm_atomic_state *state)
--
2.50.1.565.gc32cd1483b-goog
^ permalink raw reply related [flat|nested] 17+ messages in thread
* [PATCH 6.12 4/6] drm/i915/ddi: gracefully handle errors from intel_ddi_init_hdmi_connector()
2025-08-04 10:16 [PATCH 6.12 1/6] drm/i915/ddi: change intel_ddi_init_{dp, hdmi}_connector() return type Sergey Senozhatsky
2025-08-04 10:16 ` [PATCH 6.12 2/6] drm/i915/hdmi: propagate errors from intel_hdmi_init_connector() Sergey Senozhatsky
2025-08-04 10:16 ` [PATCH 6.12 3/6] drm/i915/hdmi: add error handling in g4x_hdmi_init() Sergey Senozhatsky
@ 2025-08-04 10:16 ` Sergey Senozhatsky
2025-08-05 1:06 ` Sasha Levin
2025-08-04 10:16 ` [PATCH 6.12 5/6] drm/i915/display: add intel_encoder_is_hdmi() Sergey Senozhatsky
` (3 subsequent siblings)
6 siblings, 1 reply; 17+ messages in thread
From: Sergey Senozhatsky @ 2025-08-04 10:16 UTC (permalink / raw)
To: stable; +Cc: Jani Nikula, Sergey Senozhatsky, Ville Syrjala, Suraj Kandpal
From: Jani Nikula <jani.nikula@intel.com>
[ Upstream commit 8ea07e294ea2d046e16fa98e37007edcd4b9525d ]
Errors from intel_ddi_init_hdmi_connector() can just mean "there's no
HDMI" while we'll still want to continue with DP only. Handle the errors
gracefully, but don't propagate. Clear the hdmi_reg which is used as a
proxy to indicate the HDMI is initialized.
v2: Gracefully handle but do not propagate
Cc: Sergey Senozhatsky <senozhatsky@chromium.org>
Cc: Ville Syrjala <ville.syrjala@linux.intel.com>
Reported-and-tested-by: Sergey Senozhatsky <senozhatsky@chromium.org>
Closes: https://lore.kernel.org/r/20241031105145.2140590-1-senozhatsky@chromium.org
Reviewed-by: Sergey Senozhatsky <senozhatsky@chromium.org> # v1
Reviewed-by: Suraj Kandpal <suraj.kandpal@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/d72cb54ac7cc5ca29b3b9d70e4d368ea41643b08.1735568047.git.jani.nikula@intel.com
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
drivers/gpu/drm/i915/display/intel_ddi.c | 11 ++++++++++-
1 file changed, 10 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/i915/display/intel_ddi.c b/drivers/gpu/drm/i915/display/intel_ddi.c
index b567efc5b93c..9e42f0836989 100644
--- a/drivers/gpu/drm/i915/display/intel_ddi.c
+++ b/drivers/gpu/drm/i915/display/intel_ddi.c
@@ -4632,7 +4632,16 @@ static int intel_ddi_init_hdmi_connector(struct intel_digital_port *dig_port)
return -ENOMEM;
dig_port->hdmi.hdmi_reg = DDI_BUF_CTL(port);
- intel_hdmi_init_connector(dig_port, connector);
+
+ if (!intel_hdmi_init_connector(dig_port, connector)) {
+ /*
+ * HDMI connector init failures may just mean conflicting DDC
+ * pins or not having enough lanes. Handle them gracefully, but
+ * don't fail the entire DDI init.
+ */
+ dig_port->hdmi.hdmi_reg = INVALID_MMIO_REG;
+ kfree(connector);
+ }
return 0;
}
--
2.50.1.565.gc32cd1483b-goog
^ permalink raw reply related [flat|nested] 17+ messages in thread
* [PATCH 6.12 5/6] drm/i915/display: add intel_encoder_is_hdmi()
2025-08-04 10:16 [PATCH 6.12 1/6] drm/i915/ddi: change intel_ddi_init_{dp, hdmi}_connector() return type Sergey Senozhatsky
` (2 preceding siblings ...)
2025-08-04 10:16 ` [PATCH 6.12 4/6] drm/i915/ddi: gracefully handle errors from intel_ddi_init_hdmi_connector() Sergey Senozhatsky
@ 2025-08-04 10:16 ` Sergey Senozhatsky
2025-08-05 1:06 ` Sasha Levin
2025-08-04 10:16 ` [PATCH 6.12 6/6] drm/i915/ddi: only call shutdown hooks for valid encoders Sergey Senozhatsky
` (2 subsequent siblings)
6 siblings, 1 reply; 17+ messages in thread
From: Sergey Senozhatsky @ 2025-08-04 10:16 UTC (permalink / raw)
To: stable; +Cc: Jani Nikula, Sergey Senozhatsky, Ville Syrjala, Suraj Kandpal
From: Jani Nikula <jani.nikula@intel.com>
[ Upstream commit efa43b751637c0e16a92e1787f1d8baaf56dafba ]
Similar to intel_encoder_is_dp() and friends.
Cc: Sergey Senozhatsky <senozhatsky@chromium.org>
Cc: Ville Syrjala <ville.syrjala@linux.intel.com>
Reviewed-by: Suraj Kandpal <suraj.kandpal@intel.com>
Tested-by: Sergey Senozhatsky <senozhatsky@chromium.org>
Link: https://patchwork.freedesktop.org/patch/msgid/e6bf9e01deb5d0d8b566af128a762d1313638847.1735568047.git.jani.nikula@intel.com
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
drivers/gpu/drm/i915/display/intel_display_types.h | 13 +++++++++++++
1 file changed, 13 insertions(+)
diff --git a/drivers/gpu/drm/i915/display/intel_display_types.h b/drivers/gpu/drm/i915/display/intel_display_types.h
index 3e24d2e90d3c..9812191e7ef2 100644
--- a/drivers/gpu/drm/i915/display/intel_display_types.h
+++ b/drivers/gpu/drm/i915/display/intel_display_types.h
@@ -2075,6 +2075,19 @@ static inline bool intel_encoder_is_dp(struct intel_encoder *encoder)
}
}
+static inline bool intel_encoder_is_hdmi(struct intel_encoder *encoder)
+{
+ switch (encoder->type) {
+ case INTEL_OUTPUT_HDMI:
+ return true;
+ case INTEL_OUTPUT_DDI:
+ /* See if the HDMI encoder is valid. */
+ return i915_mmio_reg_valid(enc_to_intel_hdmi(encoder)->hdmi_reg);
+ default:
+ return false;
+ }
+}
+
static inline struct intel_lspcon *
enc_to_intel_lspcon(struct intel_encoder *encoder)
{
--
2.50.1.565.gc32cd1483b-goog
^ permalink raw reply related [flat|nested] 17+ messages in thread
* [PATCH 6.12 6/6] drm/i915/ddi: only call shutdown hooks for valid encoders
2025-08-04 10:16 [PATCH 6.12 1/6] drm/i915/ddi: change intel_ddi_init_{dp, hdmi}_connector() return type Sergey Senozhatsky
` (3 preceding siblings ...)
2025-08-04 10:16 ` [PATCH 6.12 5/6] drm/i915/display: add intel_encoder_is_hdmi() Sergey Senozhatsky
@ 2025-08-04 10:16 ` Sergey Senozhatsky
2025-08-05 1:06 ` Sasha Levin
2025-08-05 1:06 ` [PATCH 6.12 1/6] drm/i915/ddi: change intel_ddi_init_{dp, hdmi}_connector() return type Sasha Levin
2025-08-05 2:11 ` Sergey Senozhatsky
6 siblings, 1 reply; 17+ messages in thread
From: Sergey Senozhatsky @ 2025-08-04 10:16 UTC (permalink / raw)
To: stable; +Cc: Jani Nikula, Sergey Senozhatsky, Ville Syrjala, Suraj Kandpal
From: Jani Nikula <jani.nikula@intel.com>
[ Upstream commit 60a43ecbd59decb77b31c09a73f09e1d4f4d1c4c ]
DDI might be HDMI or DP only, leaving the other encoder
uninitialized. Calling the shutdown hook on an uninitialized encoder may
lead to a NULL pointer dereference. Check the encoder types (and thus
validity via the DP output_reg or HDMI hdmi_reg checks) before calling
the hooks.
Reported-and-tested-by: Sergey Senozhatsky <senozhatsky@chromium.org>
Closes: https://lore.kernel.org/r/20241031105145.2140590-1-senozhatsky@chromium.org
Cc: Sergey Senozhatsky <senozhatsky@chromium.org>
Cc: Ville Syrjala <ville.syrjala@linux.intel.com>
Reviewed-by: Suraj Kandpal <suraj.kandpal@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/8b197c50e7f3be2bbc07e3935b21e919815015d5.1735568047.git.jani.nikula@intel.com
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
drivers/gpu/drm/i915/display/intel_ddi.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/drivers/gpu/drm/i915/display/intel_ddi.c b/drivers/gpu/drm/i915/display/intel_ddi.c
index 9e42f0836989..5b24460c0134 100644
--- a/drivers/gpu/drm/i915/display/intel_ddi.c
+++ b/drivers/gpu/drm/i915/display/intel_ddi.c
@@ -4798,8 +4798,10 @@ static void intel_ddi_tc_encoder_suspend_complete(struct intel_encoder *encoder)
static void intel_ddi_encoder_shutdown(struct intel_encoder *encoder)
{
- intel_dp_encoder_shutdown(encoder);
- intel_hdmi_encoder_shutdown(encoder);
+ if (intel_encoder_is_dp(encoder))
+ intel_dp_encoder_shutdown(encoder);
+ if (intel_encoder_is_hdmi(encoder))
+ intel_hdmi_encoder_shutdown(encoder);
}
static void intel_ddi_tc_encoder_shutdown_complete(struct intel_encoder *encoder)
--
2.50.1.565.gc32cd1483b-goog
^ permalink raw reply related [flat|nested] 17+ messages in thread
* Re: [PATCH 6.12 6/6] drm/i915/ddi: only call shutdown hooks for valid encoders
2025-08-04 10:16 ` [PATCH 6.12 6/6] drm/i915/ddi: only call shutdown hooks for valid encoders Sergey Senozhatsky
@ 2025-08-05 1:06 ` Sasha Levin
0 siblings, 0 replies; 17+ messages in thread
From: Sasha Levin @ 2025-08-05 1:06 UTC (permalink / raw)
To: stable; +Cc: Sasha Levin
[ Sasha's backport helper bot ]
Hi,
✅ All tests passed successfully. No issues detected.
No action required from the submitter.
The upstream commit SHA1 provided is correct: 60a43ecbd59decb77b31c09a73f09e1d4f4d1c4c
WARNING: Author mismatch between patch and upstream commit:
Backport author: Sergey Senozhatsky <senozhatsky@chromium.org>
Commit author: Jani Nikula <jani.nikula@intel.com>
Status in newer kernel trees:
6.15.y | Present (exact SHA1)
Note: The patch differs from the upstream commit:
---
1: 60a43ecbd59d ! 1: 8009a63e9d86 drm/i915/ddi: only call shutdown hooks for valid encoders
@@ Metadata
## Commit message ##
drm/i915/ddi: only call shutdown hooks for valid encoders
+ [ Upstream commit 60a43ecbd59decb77b31c09a73f09e1d4f4d1c4c ]
+
DDI might be HDMI or DP only, leaving the other encoder
uninitialized. Calling the shutdown hook on an uninitialized encoder may
lead to a NULL pointer dereference. Check the encoder types (and thus
---
Results of testing on various branches:
| Branch | Patch Apply | Build Test |
|---------------------------|-------------|------------|
| 6.12 | Success | Success |
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [PATCH 6.12 2/6] drm/i915/hdmi: propagate errors from intel_hdmi_init_connector()
2025-08-04 10:16 ` [PATCH 6.12 2/6] drm/i915/hdmi: propagate errors from intel_hdmi_init_connector() Sergey Senozhatsky
@ 2025-08-05 1:06 ` Sasha Levin
0 siblings, 0 replies; 17+ messages in thread
From: Sasha Levin @ 2025-08-05 1:06 UTC (permalink / raw)
To: stable; +Cc: Sasha Levin
[ Sasha's backport helper bot ]
Hi,
✅ All tests passed successfully. No issues detected.
No action required from the submitter.
The upstream commit SHA1 provided is correct: 7fb56536fa37e23bc291d31c10e575d500f4fda7
WARNING: Author mismatch between patch and upstream commit:
Backport author: Sergey Senozhatsky <senozhatsky@chromium.org>
Commit author: Jani Nikula <jani.nikula@intel.com>
Status in newer kernel trees:
6.15.y | Present (exact SHA1)
Note: The patch differs from the upstream commit:
---
1: 7fb56536fa37 ! 1: d8185aaf6ffa drm/i915/hdmi: propagate errors from intel_hdmi_init_connector()
@@ Metadata
## Commit message ##
drm/i915/hdmi: propagate errors from intel_hdmi_init_connector()
+ [ Upstream commit 7fb56536fa37e23bc291d31c10e575d500f4fda7 ]
+
Propagate errors from intel_hdmi_init_connector() to be able to handle
them at callers. This is similar to intel_dp_init_connector().
---
Results of testing on various branches:
| Branch | Patch Apply | Build Test |
|---------------------------|-------------|------------|
| 6.12 | Success | Success |
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [PATCH 6.12 4/6] drm/i915/ddi: gracefully handle errors from intel_ddi_init_hdmi_connector()
2025-08-04 10:16 ` [PATCH 6.12 4/6] drm/i915/ddi: gracefully handle errors from intel_ddi_init_hdmi_connector() Sergey Senozhatsky
@ 2025-08-05 1:06 ` Sasha Levin
0 siblings, 0 replies; 17+ messages in thread
From: Sasha Levin @ 2025-08-05 1:06 UTC (permalink / raw)
To: stable; +Cc: Sasha Levin
[ Sasha's backport helper bot ]
Hi,
✅ All tests passed successfully. No issues detected.
No action required from the submitter.
The upstream commit SHA1 provided is correct: 8ea07e294ea2d046e16fa98e37007edcd4b9525d
WARNING: Author mismatch between patch and upstream commit:
Backport author: Sergey Senozhatsky <senozhatsky@chromium.org>
Commit author: Jani Nikula <jani.nikula@intel.com>
Status in newer kernel trees:
6.15.y | Present (exact SHA1)
Note: Could not generate a diff with upstream commit:
---
Note: Could not generate diff - patch failed to apply for comparison
---
Results of testing on various branches:
| Branch | Patch Apply | Build Test |
|---------------------------|-------------|------------|
| 6.12 | Success | Success |
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [PATCH 6.12 1/6] drm/i915/ddi: change intel_ddi_init_{dp, hdmi}_connector() return type
2025-08-04 10:16 [PATCH 6.12 1/6] drm/i915/ddi: change intel_ddi_init_{dp, hdmi}_connector() return type Sergey Senozhatsky
` (4 preceding siblings ...)
2025-08-04 10:16 ` [PATCH 6.12 6/6] drm/i915/ddi: only call shutdown hooks for valid encoders Sergey Senozhatsky
@ 2025-08-05 1:06 ` Sasha Levin
2025-08-05 2:11 ` Sergey Senozhatsky
6 siblings, 0 replies; 17+ messages in thread
From: Sasha Levin @ 2025-08-05 1:06 UTC (permalink / raw)
To: stable; +Cc: Sasha Levin
[ Sasha's backport helper bot ]
Hi,
✅ All tests passed successfully. No issues detected.
No action required from the submitter.
The upstream commit SHA1 provided is correct: e1980a977686d46dbf45687f7750f1c50d1d6cf8
WARNING: Author mismatch between patch and upstream commit:
Backport author: Sergey Senozhatsky <senozhatsky@chromium.org>
Commit author: Jani Nikula <jani.nikula@intel.com>
Status in newer kernel trees:
6.15.y | Present (exact SHA1)
Note: The patch differs from the upstream commit:
---
1: e1980a977686 ! 1: c9dc9718ce79 drm/i915/ddi: change intel_ddi_init_{dp, hdmi}_connector() return type
@@ Metadata
## Commit message ##
drm/i915/ddi: change intel_ddi_init_{dp, hdmi}_connector() return type
+ [ Upstream commit e1980a977686d46dbf45687f7750f1c50d1d6cf8 ]
+
The caller doesn't actually need the returned struct intel_connector;
it's stored in the ->attached_connector of intel_dp and
intel_hdmi. Switch to returning an int with 0 for success and negative
---
Results of testing on various branches:
| Branch | Patch Apply | Build Test |
|---------------------------|-------------|------------|
| 6.12 | Success | Success |
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [PATCH 6.12 3/6] drm/i915/hdmi: add error handling in g4x_hdmi_init()
2025-08-04 10:16 ` [PATCH 6.12 3/6] drm/i915/hdmi: add error handling in g4x_hdmi_init() Sergey Senozhatsky
@ 2025-08-05 1:06 ` Sasha Levin
0 siblings, 0 replies; 17+ messages in thread
From: Sasha Levin @ 2025-08-05 1:06 UTC (permalink / raw)
To: stable; +Cc: Sasha Levin
[ Sasha's backport helper bot ]
Hi,
✅ All tests passed successfully. No issues detected.
No action required from the submitter.
The upstream commit SHA1 provided is correct: 7603ba81225c815d2ceb4ad52f13e8df4b9d03cc
WARNING: Author mismatch between patch and upstream commit:
Backport author: Sergey Senozhatsky <senozhatsky@chromium.org>
Commit author: Jani Nikula <jani.nikula@intel.com>
Status in newer kernel trees:
6.15.y | Present (exact SHA1)
Note: The patch differs from the upstream commit:
---
1: 7603ba81225c ! 1: 6e1bc5a45972 drm/i915/hdmi: add error handling in g4x_hdmi_init()
@@ Metadata
## Commit message ##
drm/i915/hdmi: add error handling in g4x_hdmi_init()
+ [ Upstream commit 7603ba81225c815d2ceb4ad52f13e8df4b9d03cc ]
+
Handle encoder and connector init failures in g4x_hdmi_init(). This is
similar to g4x_dp_init().
---
Results of testing on various branches:
| Branch | Patch Apply | Build Test |
|---------------------------|-------------|------------|
| 6.12 | Success | Success |
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [PATCH 6.12 5/6] drm/i915/display: add intel_encoder_is_hdmi()
2025-08-04 10:16 ` [PATCH 6.12 5/6] drm/i915/display: add intel_encoder_is_hdmi() Sergey Senozhatsky
@ 2025-08-05 1:06 ` Sasha Levin
0 siblings, 0 replies; 17+ messages in thread
From: Sasha Levin @ 2025-08-05 1:06 UTC (permalink / raw)
To: stable; +Cc: Sasha Levin
[ Sasha's backport helper bot ]
Hi,
✅ All tests passed successfully. No issues detected.
No action required from the submitter.
The upstream commit SHA1 provided is correct: efa43b751637c0e16a92e1787f1d8baaf56dafba
WARNING: Author mismatch between patch and upstream commit:
Backport author: Sergey Senozhatsky <senozhatsky@chromium.org>
Commit author: Jani Nikula <jani.nikula@intel.com>
Status in newer kernel trees:
6.15.y | Present (exact SHA1)
Note: The patch differs from the upstream commit:
---
1: efa43b751637 ! 1: 7bfe5d895d09 drm/i915/display: add intel_encoder_is_hdmi()
@@ Metadata
## Commit message ##
drm/i915/display: add intel_encoder_is_hdmi()
+ [ Upstream commit efa43b751637c0e16a92e1787f1d8baaf56dafba ]
+
Similar to intel_encoder_is_dp() and friends.
Cc: Sergey Senozhatsky <senozhatsky@chromium.org>
---
Results of testing on various branches:
| Branch | Patch Apply | Build Test |
|---------------------------|-------------|------------|
| 6.12 | Success | Success |
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [PATCH 6.12 1/6] drm/i915/ddi: change intel_ddi_init_{dp, hdmi}_connector() return type
2025-08-04 10:16 [PATCH 6.12 1/6] drm/i915/ddi: change intel_ddi_init_{dp, hdmi}_connector() return type Sergey Senozhatsky
` (5 preceding siblings ...)
2025-08-05 1:06 ` [PATCH 6.12 1/6] drm/i915/ddi: change intel_ddi_init_{dp, hdmi}_connector() return type Sasha Levin
@ 2025-08-05 2:11 ` Sergey Senozhatsky
2025-08-12 6:35 ` Sergey Senozhatsky
6 siblings, 1 reply; 17+ messages in thread
From: Sergey Senozhatsky @ 2025-08-05 2:11 UTC (permalink / raw)
To: stable; +Cc: Jani Nikula, Suraj Kandpal, Sergey Senozhatsky
On (25/08/04 19:16), Sergey Senozhatsky wrote:
> From: Jani Nikula <jani.nikula@intel.com>
>
> [ Upstream commit e1980a977686d46dbf45687f7750f1c50d1d6cf8 ]
>
> The caller doesn't actually need the returned struct intel_connector;
> it's stored in the ->attached_connector of intel_dp and
> intel_hdmi. Switch to returning an int with 0 for success and negative
> errors codes to be able to indicate success even when we don't have a
> connector.
>
> Reviewed-by: Suraj Kandpal <suraj.kandpal@intel.com>
> Tested-by: Sergey Senozhatsky <senozhatsky@chromium.org>
> Link: https://patchwork.freedesktop.org/patch/msgid/8ef7fe838231919e85eaead640c51ad3e4550d27.1735568047.git.jani.nikula@intel.com
> Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Just for the record, this series fixes multiple NULL-ptr derefs
in i915 code, which are observed in the wild.
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [PATCH 6.12 1/6] drm/i915/ddi: change intel_ddi_init_{dp, hdmi}_connector() return type
2025-08-05 2:11 ` Sergey Senozhatsky
@ 2025-08-12 6:35 ` Sergey Senozhatsky
2025-08-12 7:35 ` Greg KH
2025-08-12 10:47 ` Greg KH
0 siblings, 2 replies; 17+ messages in thread
From: Sergey Senozhatsky @ 2025-08-12 6:35 UTC (permalink / raw)
To: stable; +Cc: Jani Nikula, Suraj Kandpal, Sergey Senozhatsky
On (25/08/05 11:11), Sergey Senozhatsky wrote:
> On (25/08/04 19:16), Sergey Senozhatsky wrote:
> > From: Jani Nikula <jani.nikula@intel.com>
> >
> > [ Upstream commit e1980a977686d46dbf45687f7750f1c50d1d6cf8 ]
> >
> > The caller doesn't actually need the returned struct intel_connector;
> > it's stored in the ->attached_connector of intel_dp and
> > intel_hdmi. Switch to returning an int with 0 for success and negative
> > errors codes to be able to indicate success even when we don't have a
> > connector.
> >
> > Reviewed-by: Suraj Kandpal <suraj.kandpal@intel.com>
> > Tested-by: Sergey Senozhatsky <senozhatsky@chromium.org>
> > Link: https://patchwork.freedesktop.org/patch/msgid/8ef7fe838231919e85eaead640c51ad3e4550d27.1735568047.git.jani.nikula@intel.com
> > Signed-off-by: Jani Nikula <jani.nikula@intel.com>
>
> Just for the record, this series fixes multiple NULL-ptr derefs
> in i915 code, which are observed in the wild.
Gentle ping.
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [PATCH 6.12 1/6] drm/i915/ddi: change intel_ddi_init_{dp, hdmi}_connector() return type
2025-08-12 6:35 ` Sergey Senozhatsky
@ 2025-08-12 7:35 ` Greg KH
2025-08-12 8:16 ` Sergey Senozhatsky
2025-08-12 10:47 ` Greg KH
1 sibling, 1 reply; 17+ messages in thread
From: Greg KH @ 2025-08-12 7:35 UTC (permalink / raw)
To: Sergey Senozhatsky; +Cc: stable, Jani Nikula, Suraj Kandpal
On Tue, Aug 12, 2025 at 03:35:54PM +0900, Sergey Senozhatsky wrote:
> On (25/08/05 11:11), Sergey Senozhatsky wrote:
> > On (25/08/04 19:16), Sergey Senozhatsky wrote:
> > > From: Jani Nikula <jani.nikula@intel.com>
> > >
> > > [ Upstream commit e1980a977686d46dbf45687f7750f1c50d1d6cf8 ]
> > >
> > > The caller doesn't actually need the returned struct intel_connector;
> > > it's stored in the ->attached_connector of intel_dp and
> > > intel_hdmi. Switch to returning an int with 0 for success and negative
> > > errors codes to be able to indicate success even when we don't have a
> > > connector.
> > >
> > > Reviewed-by: Suraj Kandpal <suraj.kandpal@intel.com>
> > > Tested-by: Sergey Senozhatsky <senozhatsky@chromium.org>
> > > Link: https://patchwork.freedesktop.org/patch/msgid/8ef7fe838231919e85eaead640c51ad3e4550d27.1735568047.git.jani.nikula@intel.com
> > > Signed-off-by: Jani Nikula <jani.nikula@intel.com>
> >
> > Just for the record, this series fixes multiple NULL-ptr derefs
> > in i915 code, which are observed in the wild.
>
> Gentle ping.
>
The merge window, and the weeks after that, are slammed for stable
backport work. Please give us a chance to catch up with the thousands
of commits we have to now process...
thanks,
greg k-h
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [PATCH 6.12 1/6] drm/i915/ddi: change intel_ddi_init_{dp, hdmi}_connector() return type
2025-08-12 7:35 ` Greg KH
@ 2025-08-12 8:16 ` Sergey Senozhatsky
0 siblings, 0 replies; 17+ messages in thread
From: Sergey Senozhatsky @ 2025-08-12 8:16 UTC (permalink / raw)
To: Greg KH; +Cc: Sergey Senozhatsky, stable, Jani Nikula, Suraj Kandpal
On (25/08/12 09:35), Greg KH wrote:
> On Tue, Aug 12, 2025 at 03:35:54PM +0900, Sergey Senozhatsky wrote:
> > On (25/08/05 11:11), Sergey Senozhatsky wrote:
> > > On (25/08/04 19:16), Sergey Senozhatsky wrote:
> > > > From: Jani Nikula <jani.nikula@intel.com>
> > > >
> > > > [ Upstream commit e1980a977686d46dbf45687f7750f1c50d1d6cf8 ]
> > > >
> > > > The caller doesn't actually need the returned struct intel_connector;
> > > > it's stored in the ->attached_connector of intel_dp and
> > > > intel_hdmi. Switch to returning an int with 0 for success and negative
> > > > errors codes to be able to indicate success even when we don't have a
> > > > connector.
> > > >
> > > > Reviewed-by: Suraj Kandpal <suraj.kandpal@intel.com>
> > > > Tested-by: Sergey Senozhatsky <senozhatsky@chromium.org>
> > > > Link: https://patchwork.freedesktop.org/patch/msgid/8ef7fe838231919e85eaead640c51ad3e4550d27.1735568047.git.jani.nikula@intel.com
> > > > Signed-off-by: Jani Nikula <jani.nikula@intel.com>
> > >
> > > Just for the record, this series fixes multiple NULL-ptr derefs
> > > in i915 code, which are observed in the wild.
> >
> > Gentle ping.
> >
>
> The merge window, and the weeks after that, are slammed for stable
> backport work. Please give us a chance to catch up with the thousands
> of commits we have to now process...
Sure, sorry for the noise.
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [PATCH 6.12 1/6] drm/i915/ddi: change intel_ddi_init_{dp, hdmi}_connector() return type
2025-08-12 6:35 ` Sergey Senozhatsky
2025-08-12 7:35 ` Greg KH
@ 2025-08-12 10:47 ` Greg KH
1 sibling, 0 replies; 17+ messages in thread
From: Greg KH @ 2025-08-12 10:47 UTC (permalink / raw)
To: Sergey Senozhatsky; +Cc: stable, Jani Nikula, Suraj Kandpal
On Tue, Aug 12, 2025 at 03:35:54PM +0900, Sergey Senozhatsky wrote:
> On (25/08/05 11:11), Sergey Senozhatsky wrote:
> > On (25/08/04 19:16), Sergey Senozhatsky wrote:
> > > From: Jani Nikula <jani.nikula@intel.com>
> > >
> > > [ Upstream commit e1980a977686d46dbf45687f7750f1c50d1d6cf8 ]
> > >
> > > The caller doesn't actually need the returned struct intel_connector;
> > > it's stored in the ->attached_connector of intel_dp and
> > > intel_hdmi. Switch to returning an int with 0 for success and negative
> > > errors codes to be able to indicate success even when we don't have a
> > > connector.
> > >
> > > Reviewed-by: Suraj Kandpal <suraj.kandpal@intel.com>
> > > Tested-by: Sergey Senozhatsky <senozhatsky@chromium.org>
> > > Link: https://patchwork.freedesktop.org/patch/msgid/8ef7fe838231919e85eaead640c51ad3e4550d27.1735568047.git.jani.nikula@intel.com
> > > Signed-off-by: Jani Nikula <jani.nikula@intel.com>
> >
> > Just for the record, this series fixes multiple NULL-ptr derefs
> > in i915 code, which are observed in the wild.
Note, if you need/want some CVE ids for these, please ask at
cve@kernel.org.
I'll go queue these up now, thanks.
greg k-h
^ permalink raw reply [flat|nested] 17+ messages in thread
end of thread, other threads:[~2025-08-12 10:47 UTC | newest]
Thread overview: 17+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-08-04 10:16 [PATCH 6.12 1/6] drm/i915/ddi: change intel_ddi_init_{dp, hdmi}_connector() return type Sergey Senozhatsky
2025-08-04 10:16 ` [PATCH 6.12 2/6] drm/i915/hdmi: propagate errors from intel_hdmi_init_connector() Sergey Senozhatsky
2025-08-05 1:06 ` Sasha Levin
2025-08-04 10:16 ` [PATCH 6.12 3/6] drm/i915/hdmi: add error handling in g4x_hdmi_init() Sergey Senozhatsky
2025-08-05 1:06 ` Sasha Levin
2025-08-04 10:16 ` [PATCH 6.12 4/6] drm/i915/ddi: gracefully handle errors from intel_ddi_init_hdmi_connector() Sergey Senozhatsky
2025-08-05 1:06 ` Sasha Levin
2025-08-04 10:16 ` [PATCH 6.12 5/6] drm/i915/display: add intel_encoder_is_hdmi() Sergey Senozhatsky
2025-08-05 1:06 ` Sasha Levin
2025-08-04 10:16 ` [PATCH 6.12 6/6] drm/i915/ddi: only call shutdown hooks for valid encoders Sergey Senozhatsky
2025-08-05 1:06 ` Sasha Levin
2025-08-05 1:06 ` [PATCH 6.12 1/6] drm/i915/ddi: change intel_ddi_init_{dp, hdmi}_connector() return type Sasha Levin
2025-08-05 2:11 ` Sergey Senozhatsky
2025-08-12 6:35 ` Sergey Senozhatsky
2025-08-12 7:35 ` Greg KH
2025-08-12 8:16 ` Sergey Senozhatsky
2025-08-12 10:47 ` Greg KH
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox