drm/i915/adlp+: Allow DC states along with PW2 only for PWB functionality
authorImre Deak <imre.deak@intel.com>
Tue, 6 Jun 2023 17:28:22 +0000 (20:28 +0300)
committerImre Deak <imre.deak@intel.com>
Tue, 20 Jun 2023 10:45:59 +0000 (13:45 +0300)
A recent bspec update added a restriction on when DC states can be enabled:

[Before enabling DC states:]

"""
PG2 can be kept enabled only because PGB requires PG2.
Do not use PG2 functions, such as type-C DDIs.

DMC will dynamically control PG1, PGA, PG2, PGB.
"""

Accordingly prevent DC states if PW2 (aka PG2) is enabled for any other
functionality.

Bpsec: 49193

Fixes: 88c487938414 ("drm/i915: Use separate "DC off" power well for ADL-P and DG2")
Reported-by: Kai Vehmanen <kai.vehmanen@intel.com>
Tested-by: Ambica Pramod <ambica.pramod@intel.com>
Reviewed-by: Uma Shankar <uma.shankar@intel.com>
Signed-off-by: Imre Deak <imre.deak@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20230606172822.1891897-1-imre.deak@intel.com
drivers/gpu/drm/i915/display/intel_display_power_map.c

index 1118ee9d224cabe25be352d0ce55410dd2b0086f..5ad04cd42c158e5e3aaf72201f5fd37c5d6d3373 100644 (file)
@@ -1252,10 +1252,18 @@ I915_DECL_PW_DOMAINS(xelpd_pwdoms_pw_a,
        POWER_DOMAIN_INIT);
 
 #define XELPD_DC_OFF_PORT_POWER_DOMAINS \
+       POWER_DOMAIN_PORT_DDI_LANES_C, \
+       POWER_DOMAIN_PORT_DDI_LANES_D, \
+       POWER_DOMAIN_PORT_DDI_LANES_E, \
        POWER_DOMAIN_PORT_DDI_LANES_TC1, \
        POWER_DOMAIN_PORT_DDI_LANES_TC2, \
        POWER_DOMAIN_PORT_DDI_LANES_TC3, \
        POWER_DOMAIN_PORT_DDI_LANES_TC4, \
+       POWER_DOMAIN_VGA, \
+       POWER_DOMAIN_AUDIO_PLAYBACK, \
+       POWER_DOMAIN_AUX_IO_C, \
+       POWER_DOMAIN_AUX_IO_D, \
+       POWER_DOMAIN_AUX_IO_E, \
        POWER_DOMAIN_AUX_C, \
        POWER_DOMAIN_AUX_D, \
        POWER_DOMAIN_AUX_E, \
@@ -1272,14 +1280,6 @@ I915_DECL_PW_DOMAINS(xelpd_pwdoms_pw_a,
        XELPD_PW_B_POWER_DOMAINS, \
        XELPD_PW_C_POWER_DOMAINS, \
        XELPD_PW_D_POWER_DOMAINS, \
-       POWER_DOMAIN_PORT_DDI_LANES_C, \
-       POWER_DOMAIN_PORT_DDI_LANES_D, \
-       POWER_DOMAIN_PORT_DDI_LANES_E, \
-       POWER_DOMAIN_VGA, \
-       POWER_DOMAIN_AUDIO_PLAYBACK, \
-       POWER_DOMAIN_AUX_IO_C, \
-       POWER_DOMAIN_AUX_IO_D, \
-       POWER_DOMAIN_AUX_IO_E, \
        XELPD_DC_OFF_PORT_POWER_DOMAINS
 
 I915_DECL_PW_DOMAINS(xelpd_pwdoms_pw_2,