drm/i915/bios: debug log ddi port info after parsing
authorJani Nikula <jani.nikula@intel.com>
Tue, 21 Jun 2022 12:37:32 +0000 (15:37 +0300)
committerJani Nikula <jani.nikula@intel.com>
Thu, 30 Jun 2022 10:08:09 +0000 (13:08 +0300)
The ddc pin and aux channel sanitization may disable DVI/HDMI and DP,
respectively, of ports parsed earlier, in "last one wins" fashion. With
parsing and printing interleaved, we'll end up logging support first and
disabling later anyway.

Now that we've split ddi port info parsing and printing, take it further
by doing the printing in a separate loop, fixing the logging.

Note that this also changes the logging order from VBT child device
order to port number order.

Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20220621123732.1118437-1-jani.nikula@intel.com
drivers/gpu/drm/i915/display/intel_bios.c

index e89bc1d665f46d24db951c482bccdfe572104dd6..7f3fd32ea74de1f4146af18bcc5f53474b5a60b8 100644 (file)
@@ -2668,8 +2668,6 @@ static void parse_ddi_port(struct intel_bios_encoder_data *devdata)
 
        sanitize_device_type(devdata, port);
 
-       print_ddi_port(devdata, port);
-
        if (intel_bios_encoder_supports_dvi(devdata))
                sanitize_ddc_pin(devdata, port);
 
@@ -2687,12 +2685,18 @@ static bool has_ddi_port_info(struct drm_i915_private *i915)
 static void parse_ddi_ports(struct drm_i915_private *i915)
 {
        struct intel_bios_encoder_data *devdata;
+       enum port port;
 
        if (!has_ddi_port_info(i915))
                return;
 
        list_for_each_entry(devdata, &i915->vbt.display_devices, node)
                parse_ddi_port(devdata);
+
+       for_each_port(port) {
+               if (i915->vbt.ports[port])
+                       print_ddi_port(i915->vbt.ports[port], port);
+       }
 }
 
 static void