[PATCH v3 4/5] drm/i915/display: add a way to restore only display/pch registers in clock_gating
Luca Coelho <[email protected]>
| Newsgroups | org.freedesktop.lists.intel-xe,org.freedesktop.lists.intel-gfx |
|---|---|
| Message-ID | <[email protected]> |
We are currently calling intel_clock_gating_init() when disabling PC8 in the display code. This adds an unnecessary dependency to the core i915 code. Only the display and PCH registers need to be restored here, so we can do this directly in the display code, removing the dependency. Add intel_display_restore_clock_gating() to do this. Signed-off-by: Luca Coelho <[email protected]> --- drivers/gpu/drm/i915/display/intel_display_clock_gating.c | 7 +++++++ drivers/gpu/drm/i915/display/intel_display_clock_gating.h | 1 + drivers/gpu/drm/i915/display/intel_display_power.c | 4 ++-- drivers/gpu/drm/xe/Makefile | 1 + 4 files changed, 11 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/i915/display/intel_display_clock_gating.c b/drivers/gpu/drm/i915/display/intel_display_clock_gating.c index ef1ee72494df..6716c377ef93 100644 --- a/drivers/gpu/drm/i915/display/intel_display_clock_gating.c +++ b/drivers/gpu/drm/i915/display/intel_display_clock_gating.c @@ -11,6 +11,7 @@ #include "intel_display_clock_gating.h" #include "intel_display_core.h" #include "intel_display_regs.h" +#include "intel_pch.h" static void intel_display_gen9_init_clock_gating(struct intel_display *display) { @@ -305,3 +306,9 @@ void intel_display_init_clock_gating(struct intel_display *display) else if (display->platform.i965gm) intel_display_i965gm_init_clock_gating(display); } + +void intel_display_restore_clock_gating(struct intel_display *display) +{ + intel_display_init_clock_gating(display); + intel_pch_init_clock_gating(display); +} diff --git a/drivers/gpu/drm/i915/display/intel_display_clock_gating.h b/drivers/gpu/drm/i915/display/intel_display_clock_gating.h index dbfa5892cffe..074708a22436 100644 --- a/drivers/gpu/drm/i915/display/intel_display_clock_gating.h +++ b/drivers/gpu/drm/i915/display/intel_display_clock_gating.h @@ -9,5 +9,6 @@ struct intel_display; void intel_display_init_clock_gating(struct intel_display *display); +void intel_display_restore_clock_gating(struct intel_display *display); #endif /* __INTEL_DISPLAY_CLOCK_GATING_H__ */ diff --git a/drivers/gpu/drm/i915/display/intel_display_power.c b/drivers/gpu/drm/i915/display/intel_display_power.c index 0ebec6e0c240..aab934f43530 100644 --- a/drivers/gpu/drm/i915/display/intel_display_power.c +++ b/drivers/gpu/drm/i915/display/intel_display_power.c @@ -12,7 +12,7 @@ #include "intel_backlight_regs.h" #include "intel_cdclk.h" -#include "intel_clock_gating.h" +#include "intel_display_clock_gating.h" #include "intel_combo_phy.h" #include "intel_crtc.h" #include "intel_de.h" @@ -1588,7 +1588,7 @@ static void hsw_disable_pc8(struct intel_display *display) intel_init_pch_refclk(display); /* Many display registers don't survive PC8+ */ - intel_clock_gating_init(display->drm); + intel_display_restore_clock_gating(display); } static void intel_pch_reset_handshake(struct intel_display *display, diff --git a/drivers/gpu/drm/xe/Makefile b/drivers/gpu/drm/xe/Makefile index 92134709d998..b4c90bf50951 100644 --- a/drivers/gpu/drm/xe/Makefile +++ b/drivers/gpu/drm/xe/Makefile @@ -258,6 +258,7 @@ xe-$(CONFIG_DRM_XE_DISPLAY) += \ i915-display/intel_ddi_buf_trans.o \ i915-display/intel_de.o \ i915-display/intel_display.o \ + i915-display/intel_display_clock_gating.o \ i915-display/intel_display_conversion.o \ i915-display/intel_display_device.o \ i915-display/intel_display_driver.o \ -- 2.53.0