]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
drm/i915/hdmi: propagate errors from intel_hdmi_init_connector()
authorJani Nikula <jani.nikula@intel.com>
Mon, 30 Dec 2024 14:14:41 +0000 (16:14 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 15 Aug 2025 10:14:10 +0000 (12:14 +0200)
commit 7fb56536fa37e23bc291d31c10e575d500f4fda7 upstream.

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>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/gpu/drm/i915/display/intel_hdmi.c
drivers/gpu/drm/i915/display/intel_hdmi.h

index cd9ee171e0df3d8abd58502f0ec5b626d415a8b2..c5b2fbaeff897fcf470006c240b50616920c5650 100644 (file)
@@ -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;
 }
 
 /*
index 9b97623665c51b0ddee2e8d5eeae118e73939d6f..fc64a3affc71653dd588e56b04d7f4a8c8f556fc 100644 (file)
@@ -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,