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

Kai-Heng Feng kai.heng.feng at canonical.com
Fri May 26 04:48:58 UTC 2023


On Wed, Feb 22, 2023 at 7:02 AM Ville Syrjala
<ville.syrjala at linux.intel.com> wrote:
>
> From: Ville Syrjälä <ville.syrjala at linux.intel.com>
>
> 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

The series can solve HDMI detection issue on an ADL laptop.
The caveat is that it can't be cleanly applied to current drm-tip, so
the test was conducted on older drm tag.

Tested-by: Kai-Heng Feng <kai.heng.feng at canonical.com>

> 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
>
>


More information about the Intel-gfx mailing list