• Imre Deak's avatar
    drm/i915/ddi: Get AUX power domain for DP main link too · 52528055
    Imre Deak authored
    So far we got an AUX power domain reference only for the duration of DP
    AUX transfers. However, the following suggests that we also need these
    for main link functionality:
    - The specification doesn't state whether it's needed or not for main
      link functionality, but suggests that these power wells need to be
      enabled already during display core initialization (Sequences to
      Initialize Display).
    - For PSR we need to keep the AUX power well enabled.
    - On ICL combo PHY ports (non-TC) the AUX power well is needed for
      link training too: while the port is enabled with a DP link training
      test pattern trying to toggle the AUX power well will time out.
    - On ICL MG PHY ports (TC) the AUX power well is needed also for main
      link functionality (both in DP and HDMI modes).
    - Windows enables these power wells both for main and AUX lane
      functionality.
    
    Based on the above take an AUX power reference for main link
    functionality too. This makes a difference only on GEN10+ (GLK+)
    platforms, where we have separate port specific AUX power wells.
    
    For PSR we still need to distinguish between port A and the other
    ports, since on port A DC states must stay enabled for main link
    functionality, but DC states must be disabled for driver initiated
    AUX transfers. So re-use the corresponding helper from intel_psr.c.
    
    Since we take now a reference for main link functionality on all DP
    ports we can forgo taking the separate power ref for PSR functionality.
    
    v2:
    - Make sure DC states stay enabled when taking the ref on port A.
      (Ville)
    
    v3: (Ville)
    - Fix comment about logic for encoders without a crtc state and
      add FIXME note for a simplification to avoid calling get_power_domains
      in such cases.
    - Use intel_crtc_has_dp_encoder() instead !intel_crtc_has_type(HDMI).
    
    Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
    Cc: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
    Cc: Paulo Zanoni <paulo.r.zanoni@intel.com>
    Signed-off-by: default avatarImre Deak <imre.deak@intel.com>
    [Clarified code comments in intel_ddi_main_link_aux_domain() and
     intel_ddi_get_power_domains() (Imre)]
    Reviewed-by: default avatarJosé Roberto de Souza <jose.souza@intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20180621184449.26634-1-imre.deak@intel.com
    52528055
intel_ddi.c 110 KB