• Ville Syrjälä's avatar
    drm/i915: Don't explode when the dig port we don't have an AUX CH · 0b385be4
    Ville Syrjälä authored
    The icl+ power well code currently assumes that every AUX power
    well maps to an encoder which is using said power well. That is
    by no menas guaranteed as we:
    - only register encoders for ports declared in the VBT
    - combo PHY HDMI-only encoder no longer get an AUX CH since
      commit 9856308c ("drm/i915: Only populate aux_ch if really needed")
    
    However we have places such as intel_power_domains_sanitize_state()
    that blindly traverse all the possible power wells. So these bits
    of code may very well encounbter an aux power well with no associated
    encoder.
    
    In this particular case the BIOS seems to have left one AUX power
    well enabled even though we're dealing with a HDMI only encoder
    on a combo PHY. We then proceed to turn off said power well and
    explode when we can't find a matching encoder. As a short term fix
    we should be able to just skip the PHY related parts of the power
    well programming since we know this situation can only happen with
    combo PHYs.
    
    Another option might be to go back to always picking an AUX CH for
    all encoders. However I'm a bit wary about that since we might in
    theory end up conflicting with the VBT AUX CH assignment. Also
    that wouldn't help with encoders not declared in the VBT, should
    we ever need to poke the corresponding power wells.
    
    Longer term we need to figure out what the actual relationship
    is between the PHY vs. AUX CH vs. AUX power well. Currently this
    is entirely unclear.
    
    Cc: stable@vger.kernel.org
    Fixes: 9856308c ("drm/i915: Only populate aux_ch if really needed")
    Closes: https://gitlab.freedesktop.org/drm/intel/-/issues/10184Signed-off-by: default avatarVille Syrjälä <ville.syrjala@linux.intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20240223203216.15210-1-ville.syrjala@linux.intel.comReviewed-by: default avatarImre Deak <imre.deak@intel.com>
    (cherry picked from commit 6a8c66bf)
    Signed-off-by: default avatarJoonas Lahtinen <joonas.lahtinen@linux.intel.com>
    0b385be4
intel_display_power_well.c 59.6 KB