[PATCH 00/19] drm/i915/display: Add DC3CO support

Dibin Moolakadan Subrahmanian
2026-03-26T17:15:14Z

This series adds initial DC3CO support for display version 35+ and adds
debugfs visibility into DC3CO count/residency.

The series also includes required PSR/ALPM updates for DC3CO enablement.

This series is based on the CMTG enablement series currently under
review:
https://patchwork.freedesktop.org/series/157664/

DC3CO is not enabled by this series since power_domains->allowed_dc_mask
is not updated to include DC3CO.

TODO:
- CMTG restore on DC6 exit
- CMTG HWGB programming for DC3CO latencies
- Enable DC3CO in power_domains->allowed_dc_mask

Dibin Moolakadan Subrahmanian (19):
drm/i915/display: Remove TGL DC3CO support
drm/i915/display: Replace DC_STATE_EN_DC3CO with
DC_STATE_EN_UPTO_DC3CO
drm/i915/display: Use FIELD_PREP() for DC state enable bits
drm/i915/display: Add DC3CO DC_STATE enable/disable support
drm/i915/display: Validate target DC state against allowed_dc_mask
drm/i915/display: Fix HAS_DC3CO() and add DC3CO trigger enum
drm/i915/display: Add helper to check DC3CO support
drm/i915/display: Add DC3CO eligibility computation
drm/i915/display: Remove unused PSR dc3co_exitline field
drm/i915/display: Remove unused dc3co_exitline from intel_crtc_state
drm/i915/display: Store DC3CO eligibility in PSR state
drm/i915/display: PSR2: Set idle_frames to 0 for DC3CO
drm/i915/display: Define DC3CO idle protocol bit in PR_ALPM_CTL
drm/i915/display: Enable DC3CO idle protocol in ALPM
drm/i915/display: PSR Add delayed work to exit DC3CO
drm/i915/display: Add helper to enable DC counter
drm/i915/display: Remove DC3CO DMC debugfs
drm/i915/display: Add DC3CO count and residency in dmc debugfs
drm/i915/display: PSR set idle frames while exit from DC3CO

drivers/gpu/drm/i915/display/intel_alpm.c | 9 +
drivers/gpu/drm/i915/display/intel_display.c | 98 +++++++-
drivers/gpu/drm/i915/display/intel_display.h | 2 +-
.../drm/i915/display/intel_display_device.h | 2 +-
.../drm/i915/display/intel_display_power.c | 20 +-
.../drm/i915/display/intel_display_power.h | 16 ++
.../i915/display/intel_display_power_well.c | 36 ++-
.../i915/display/intel_display_power_well.h | 1 +
.../gpu/drm/i915/display/intel_display_regs.h | 14 +-
.../drm/i915/display/intel_display_types.h | 14 +-
drivers/gpu/drm/i915/display/intel_dmc.c | 15 +-
drivers/gpu/drm/i915/display/intel_dmc_regs.h | 2 +
drivers/gpu/drm/i915/display/intel_dmc_wl.c | 2 +-
drivers/gpu/drm/i915/display/intel_psr.c | 224 +++++-------------
drivers/gpu/drm/i915/display/intel_psr_regs.h | 1 +
15 files changed, 245 insertions(+), 211 deletions(-)

--
2.43.0