From: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx> I just wanted to init DDI ports in VBT child device order without any up front assumptions about which conflicting child device defition is valid. That is pretty much what we need to do for the ADL laptops with the phantom eDP vs. native HDMI on DDI B. However that approach doesn't work for some of the weird SKL boards that have a phantom eDP on DDI A+AUX A and and a real DP->VGA converter on DDI E+AUX A. For those I had to introduce HPD live status check during eDP init. One of the remaining concerns I still have is what happens when we encounter VBTs with more AUX CH/DDC pin conflicts? I think what we might want to do eventually is ignore the conflicts as much as possible, and just init everything based on VBT, trusting HPD to take care of things in the end. That of course does have certain issues wrt. connector forcing, but dunno if we can avoid those at all. Also I think we need to nuke all the platform default AUX CH/DDC pin stuff, or at least only try to utilize those only once we've consumed the VBT fully. v2: Fix SKL DDI A HPD live state v3: Replace AUX CH/DDC pin sanitation with availability checks Ville Syrjälä (22): drm/i915: Populate dig_port->connected() before connector init drm/i915: Fix SKL DDI A digital port .connected() drm/i915: Get rid of the gm45 HPD live state nonsense drm/i915: Introduce <platoform>_hotplug_mask() drm/i915: Introduce intel_hpd_detection() drm/i915: Check HPD live state during eDP probe drm/i915: Sanitize child devices later drm/i915: Split map_aux_ch() into per-platform arrays drm/i915: Flip VBT DDC pin maps around drm/i915: Nuke intel_bios_is_port_dp_dual_mode() drm/i915: Remove bogus DDI-F from hsw/bdw output init drm/i915: Introduce device info port_mask drm/i915: Assert that device info bitmasks have enough bits drm/i915: Assert that the port being initialized is valid drm/i915: Beef up SDVO/HDMI port checks drm/i915: Init DDI outputs based on port_mask on skl+ drm/i915: Try to initialize DDI/ICL+ DSI ports for every VBT child device drm/i915: Convert HSW/BDW to use VBT driven DDI probe drm/i915: Remove DDC pin sanitation drm/i915: Remove AUX CH sanitation drm/i915: Initialize dig_port->aux_ch to NONE to be sure drm/i915: Only populate aux_ch is really needed drivers/gpu/drm/i915/display/g4x_dp.c | 39 +- drivers/gpu/drm/i915/display/g4x_hdmi.c | 26 +- drivers/gpu/drm/i915/display/icl_dsi.c | 11 +- drivers/gpu/drm/i915/display/icl_dsi.h | 6 +- drivers/gpu/drm/i915/display/intel_bios.c | 422 +++++++----------- drivers/gpu/drm/i915/display/intel_bios.h | 12 +- drivers/gpu/drm/i915/display/intel_crt.c | 2 + drivers/gpu/drm/i915/display/intel_ddi.c | 148 ++++-- drivers/gpu/drm/i915/display/intel_ddi.h | 5 +- drivers/gpu/drm/i915/display/intel_display.c | 89 +--- drivers/gpu/drm/i915/display/intel_display.h | 2 + .../gpu/drm/i915/display/intel_display_core.h | 2 - drivers/gpu/drm/i915/display/intel_dp.c | 28 ++ drivers/gpu/drm/i915/display/intel_dp_aux.c | 51 ++- drivers/gpu/drm/i915/display/intel_dvo.c | 2 + drivers/gpu/drm/i915/display/intel_hdmi.c | 78 +++- drivers/gpu/drm/i915/display/intel_sdvo.c | 20 +- drivers/gpu/drm/i915/i915_irq.c | 365 ++++++++++++--- drivers/gpu/drm/i915/i915_irq.h | 2 + drivers/gpu/drm/i915/i915_pci.c | 31 ++ drivers/gpu/drm/i915/i915_reg.h | 13 +- drivers/gpu/drm/i915/intel_device_info.c | 9 + drivers/gpu/drm/i915/intel_device_info.h | 1 + 23 files changed, 843 insertions(+), 521 deletions(-) -- 2.39.2