[PATCH v3 00/22] drm/i915: Init DDI ports in VBT order

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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




[Index of Archives]     [AMD Graphics]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux