On Mon, Feb 13, 2023 at 06:08:50PM +0200, Jani Nikula wrote: > On Wed, 08 Feb 2023, Ville Syrjala <ville.syrjala@xxxxxxxxxxxxxxx> wrote: > > From: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx> > > > > Instead of consulting vbt.ports[] lets just go through the > > whole child device list to check whether a specific port > > was declared by the VBT or not. > > Might want to mention that this does not impact the dupe checking even > if we look at display_devices instead of vbt.ports[]. Hmm, except for the !is_port_valid() check. Should we maybe do that here too, or should we just think about fully exorcising invalid ports from the child device list? > > > > > Signed-off-by: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx> > > --- > > drivers/gpu/drm/i915/display/intel_bios.c | 11 ++++++++++- > > 1 file changed, 10 insertions(+), 1 deletion(-) > > > > diff --git a/drivers/gpu/drm/i915/display/intel_bios.c b/drivers/gpu/drm/i915/display/intel_bios.c > > index efe33af2259b..1af175b48ae6 100644 > > --- a/drivers/gpu/drm/i915/display/intel_bios.c > > +++ b/drivers/gpu/drm/i915/display/intel_bios.c > > @@ -3398,10 +3398,19 @@ bool intel_bios_is_lvds_present(struct drm_i915_private *i915, u8 *i2c_pin) > > */ > > bool intel_bios_is_port_present(struct drm_i915_private *i915, enum port port) > > { > > + const struct intel_bios_encoder_data *devdata; > > + > > if (WARN_ON(!has_ddi_port_info(i915))) > > return true; > > > > - return i915->display.vbt.ports[port]; > > + list_for_each_entry(devdata, &i915->display.vbt.display_devices, node) { > > + const struct child_device_config *child = &devdata->child; > > + > > + if (dvo_port_to_port(i915, child->dvo_port) == port) > > + return true; > > + } > > + > > + return false; > > } > > > > /** > > -- > Jani Nikula, Intel Open Source Graphics Center -- Ville Syrjälä Intel