]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
drm/i915: Fix i915_display_info output when connectors are not active
authorVille Syrjälä <ville.syrjala@linux.intel.com>
Fri, 29 Mar 2024 01:23:31 +0000 (03:23 +0200)
committerVille Syrjälä <ville.syrjala@linux.intel.com>
Sat, 6 Apr 2024 00:22:17 +0000 (03:22 +0300)
Currently intel_connector_info(), which prints the per-connector
output for i915_display_info, just bails out early if the connector
doesn't have a current encoder. That leads to very confusing output
where some of your connected (and properly detected) outputs appear
to have no enumerated modes.

Get rid of the encoder stuff and just rely on the connector itself
so that the output is always consistent.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20240329012331.29281-1-ville.syrjala@linux.intel.com
Reviewed-by: Suraj Kandpal <suraj.kandpal@intel.com>
drivers/gpu/drm/i915/display/intel_display_debugfs.c

index d6d6d00b36a323fc305da8d81690468c2fddd1b6..5235f8758ef1ba016630222a01dab3f5909f6775 100644 (file)
@@ -252,9 +252,6 @@ static void intel_connector_info(struct seq_file *m,
                                 struct drm_connector *connector)
 {
        struct intel_connector *intel_connector = to_intel_connector(connector);
-       const struct drm_connector_state *conn_state = connector->state;
-       struct intel_encoder *encoder =
-               to_intel_encoder(conn_state->best_encoder);
        const struct drm_display_mode *mode;
 
        seq_printf(m, "[CONNECTOR:%d:%s]: status: %s\n",
@@ -271,28 +268,23 @@ static void intel_connector_info(struct seq_file *m,
                   drm_get_subpixel_order_name(connector->display_info.subpixel_order));
        seq_printf(m, "\tCEA rev: %d\n", connector->display_info.cea_rev);
 
-       if (!encoder)
-               return;
-
        switch (connector->connector_type) {
        case DRM_MODE_CONNECTOR_DisplayPort:
        case DRM_MODE_CONNECTOR_eDP:
-               if (encoder->type == INTEL_OUTPUT_DP_MST)
+               if (intel_connector->mst_port)
                        intel_dp_mst_info(m, intel_connector);
                else
                        intel_dp_info(m, intel_connector);
                break;
        case DRM_MODE_CONNECTOR_HDMIA:
-               if (encoder->type == INTEL_OUTPUT_HDMI ||
-                   encoder->type == INTEL_OUTPUT_DDI)
-                       intel_hdmi_info(m, intel_connector);
+               intel_hdmi_info(m, intel_connector);
                break;
        default:
                break;
        }
 
        seq_puts(m, "\tHDCP version: ");
-       if (intel_encoder_is_mst(encoder)) {
+       if (intel_connector->mst_port) {
                intel_hdcp_info(m, intel_connector, true);
                seq_puts(m, "\tMST Hub HDCP version: ");
        }