On Thu, Jun 23, 2022 at 08:04:54PM +0300, Jani Nikula wrote: > On Thu, 23 Jun 2022, Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx> wrote: > > On Tue, Jun 21, 2022 at 03:37:32PM +0300, Jani Nikula wrote: > >> 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. > >> > >> Cc: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx> > >> Signed-off-by: Jani Nikula <jani.nikula@xxxxxxxxx> > > > > Reviewed-by: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx> > > Just realized this also changes the printing order from VBT child device > order to port number order. Is that a bug or a feature? I suppose it doesn't really matter. The only things where the order really matters are conflicts and we should still get some extra debug spew for those right? > > BR, > Jani. > > > > >> --- > >> drivers/gpu/drm/i915/display/intel_bios.c | 8 ++++++-- > >> 1 file changed, 6 insertions(+), 2 deletions(-) > >> > >> diff --git a/drivers/gpu/drm/i915/display/intel_bios.c b/drivers/gpu/drm/i915/display/intel_bios.c > >> index ab23324c0402..51dde5bfd956 100644 > >> --- a/drivers/gpu/drm/i915/display/intel_bios.c > >> +++ b/drivers/gpu/drm/i915/display/intel_bios.c > >> @@ -2670,8 +2670,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); > >> > >> @@ -2689,12 +2687,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 > >> -- > >> 2.30.2 > > -- > Jani Nikula, Intel Open Source Graphics Center -- Ville Syrjälä Intel