From: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx> We need to get rid of the vbt.ports[] array. The main reason being the bogus VBTs found on many ADL laptops that declare both eDP+HDMI child devices for the same port. The goal is to probe each of those in order and stick to the first one that works. But the vbt.ports[] array gets populated before we do any output probing and, being indexed with the port, can't handle any aliasing child devices. Here's a bit of prep work to reduce our reliance on vbt.ports[], mainly by expanding the encoder->devdata (a direct pointer to the correct vbt child device from the encoder) usage. Ville Syrjälä (10): drm/i915: Pass the whole encoder to hotplug_enables() drm/i915: Move variables to loop context drm/i915: Replace intel_bios_is_lspcon_present() with intel_bios_encoder_is_lspcon() drm/i915: Replace intel_bios_is_lane_reversal_needed() with intel_bios_encoder_lane_reversal() drm/i915: Replace intel_bios_is_port_hpd_inverted() with intel_bios_encoder_hpd_invert() drm/i915: Consult the registested encoders for the ICL combo PHY w/a drm/i915: Populate encoder->devdata for g4x+ DP/HDMI ports drm/i915: Pass devdata to intel_bios_port_aux_ch() drm/i915: Iterate all child devs in intel_bios_is_port_present() drm/i915: Use encoder->devdata in eDP init drivers/gpu/drm/i915/display/g4x_dp.c | 12 +- drivers/gpu/drm/i915/display/g4x_hdmi.c | 12 +- drivers/gpu/drm/i915/display/intel_bios.c | 128 ++++++------------ drivers/gpu/drm/i915/display/intel_bios.h | 14 +- drivers/gpu/drm/i915/display/intel_ddi.c | 6 +- .../i915/display/intel_display_power_well.c | 15 +- drivers/gpu/drm/i915/display/intel_dp.c | 30 ++-- drivers/gpu/drm/i915/display/intel_hdmi.c | 2 +- drivers/gpu/drm/i915/display/intel_lspcon.c | 2 +- drivers/gpu/drm/i915/i915_irq.c | 59 ++++---- 10 files changed, 134 insertions(+), 146 deletions(-) -- 2.39.1