Using the DMC wakelock is the official recommendation for Xe3_LPD. This series apply fixes to the current DMC wakelock implementation and enables it by default for Xe3_LPD. The series has been tested with a PTL machine.
Gustavo Sousa (13): drm/xe: Mimic i915 behavior for non-sleeping MMIO wait drm/i915/dmc_wl: Use non-sleeping variant of MMIO wait drm/i915/dmc_wl: Check for non-zero refcount in release work drm/i915/dmc_wl: Get wakelock when disabling dynamic DC states drm/i915/dmc_wl: Use sentinel item for range tables drm/i915/dmc_wl: Extract intel_dmc_wl_addr_in_range() drm/i915/dmc_wl: Check ranges specific to DC states drm/i915/dmc_wl: Allow simpler syntax for single reg in range tables drm/i915/dmc_wl: Deal with existing references when disabling drm/i915/dmc_wl: Couple enable/disable with dynamic DC states drm/i915/dmc_wl: Add and use HAS_DMC_WAKELOCK() drm/i915/dmc_wl: Sanitize enable_dmc_wl according to hardware support drm/i915/xe3lpd: Use DMC wakelock by default drivers/gpu/drm/i915/display/intel_de.h | 11 + .../drm/i915/display/intel_display_device.h | 1 + .../drm/i915/display/intel_display_driver.c | 2 +- .../drm/i915/display/intel_display_params.c | 4 +- .../drm/i915/display/intel_display_params.h | 2 +- .../i915/display/intel_display_power_well.c | 15 +- drivers/gpu/drm/i915/display/intel_dmc.c | 4 - drivers/gpu/drm/i915/display/intel_dmc_wl.c | 282 ++++++++++++++---- drivers/gpu/drm/i915/display/intel_dmc_wl.h | 2 + .../drm/xe/compat-i915-headers/intel_uncore.h | 13 +- 10 files changed, 269 insertions(+), 67 deletions(-) -- 2.47.0