Message ID | 1e3cf97853b3214fe56eea345c3e6226adde9e83.1741694400.git.jani.nikula@intel.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | drm/i915/display: add display specific runtime PM interface | expand |
On Tue, Mar 11, 2025 at 02:05:37PM +0200, Jani Nikula wrote: > Convert intel_atomic_commit() and intel_atomic_commit_tail() to use > display runtime PM interfaces. Also convert the wakeref member type to > struct ref_tracker *, which is the same as intel_wakeref_t, but without > the typedef. > > Signed-off-by: Jani Nikula <jani.nikula@intel.com> > --- > drivers/gpu/drm/i915/display/intel_display.c | 12 ++++++------ > drivers/gpu/drm/i915/display/intel_display_types.h | 2 +- > 2 files changed, 7 insertions(+), 7 deletions(-) > > diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c > index 3afb85fe8536..b852ffe94a10 100644 > --- a/drivers/gpu/drm/i915/display/intel_display.c > +++ b/drivers/gpu/drm/i915/display/intel_display.c > @@ -73,6 +73,7 @@ > #include "intel_de.h" > #include "intel_display_driver.h" > #include "intel_display_power.h" > +#include "intel_display_rpm.h" > #include "intel_display_types.h" > #include "intel_dmc.h" > #include "intel_dp.h" > @@ -7229,7 +7230,7 @@ static void intel_atomic_dsb_finish(struct intel_atomic_state *state, > static void intel_atomic_commit_tail(struct intel_atomic_state *state) > { > struct intel_display *display = to_intel_display(state); > - struct drm_i915_private *dev_priv = to_i915(display->drm); > + struct drm_i915_private __maybe_unused *dev_priv = to_i915(display->drm); hmm... we will need to take care of the unclaimed mmio infra at some point... that is entirely display anyway... it should probably move to under display... Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com> > struct intel_crtc_state *new_crtc_state, *old_crtc_state; > struct intel_crtc *crtc; > struct intel_power_domain_mask put_domains[I915_MAX_PIPES] = {}; > @@ -7443,7 +7444,7 @@ static void intel_atomic_commit_tail(struct intel_atomic_state *state) > * toggling overhead at and above 60 FPS. > */ > intel_display_power_put_async_delay(display, POWER_DOMAIN_DC_OFF, wakeref, 17); > - intel_runtime_pm_put(&dev_priv->runtime_pm, state->wakeref); > + intel_display_rpm_put(display, state->wakeref); > > /* > * Defer the cleanup of the old state to a separate worker to not > @@ -7515,10 +7516,9 @@ int intel_atomic_commit(struct drm_device *dev, struct drm_atomic_state *_state, > { > struct intel_display *display = to_intel_display(dev); > struct intel_atomic_state *state = to_intel_atomic_state(_state); > - struct drm_i915_private *dev_priv = to_i915(dev); > int ret = 0; > > - state->wakeref = intel_runtime_pm_get(&dev_priv->runtime_pm); > + state->wakeref = intel_display_rpm_get(display); > > /* > * The intel_legacy_cursor_update() fast path takes care > @@ -7552,7 +7552,7 @@ int intel_atomic_commit(struct drm_device *dev, struct drm_atomic_state *_state, > if (ret) { > drm_dbg_atomic(display->drm, > "Preparing state failed with %i\n", ret); > - intel_runtime_pm_put(&dev_priv->runtime_pm, state->wakeref); > + intel_display_rpm_put(display, state->wakeref); > return ret; > } > > @@ -7562,7 +7562,7 @@ int intel_atomic_commit(struct drm_device *dev, struct drm_atomic_state *_state, > > if (ret) { > drm_atomic_helper_unprepare_planes(dev, &state->base); > - intel_runtime_pm_put(&dev_priv->runtime_pm, state->wakeref); > + intel_display_rpm_put(display, state->wakeref); > return ret; > } > > diff --git a/drivers/gpu/drm/i915/display/intel_display_types.h b/drivers/gpu/drm/i915/display/intel_display_types.h > index 99a6fd2900b9..7d9cc430a6b8 100644 > --- a/drivers/gpu/drm/i915/display/intel_display_types.h > +++ b/drivers/gpu/drm/i915/display/intel_display_types.h > @@ -581,7 +581,7 @@ struct dpll { > struct intel_atomic_state { > struct drm_atomic_state base; > > - intel_wakeref_t wakeref; > + struct ref_tracker *wakeref; > > struct __intel_global_objs_state *global_objs; > int num_global_objs; > -- > 2.39.5 >
diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c index 3afb85fe8536..b852ffe94a10 100644 --- a/drivers/gpu/drm/i915/display/intel_display.c +++ b/drivers/gpu/drm/i915/display/intel_display.c @@ -73,6 +73,7 @@ #include "intel_de.h" #include "intel_display_driver.h" #include "intel_display_power.h" +#include "intel_display_rpm.h" #include "intel_display_types.h" #include "intel_dmc.h" #include "intel_dp.h" @@ -7229,7 +7230,7 @@ static void intel_atomic_dsb_finish(struct intel_atomic_state *state, static void intel_atomic_commit_tail(struct intel_atomic_state *state) { struct intel_display *display = to_intel_display(state); - struct drm_i915_private *dev_priv = to_i915(display->drm); + struct drm_i915_private __maybe_unused *dev_priv = to_i915(display->drm); struct intel_crtc_state *new_crtc_state, *old_crtc_state; struct intel_crtc *crtc; struct intel_power_domain_mask put_domains[I915_MAX_PIPES] = {}; @@ -7443,7 +7444,7 @@ static void intel_atomic_commit_tail(struct intel_atomic_state *state) * toggling overhead at and above 60 FPS. */ intel_display_power_put_async_delay(display, POWER_DOMAIN_DC_OFF, wakeref, 17); - intel_runtime_pm_put(&dev_priv->runtime_pm, state->wakeref); + intel_display_rpm_put(display, state->wakeref); /* * Defer the cleanup of the old state to a separate worker to not @@ -7515,10 +7516,9 @@ int intel_atomic_commit(struct drm_device *dev, struct drm_atomic_state *_state, { struct intel_display *display = to_intel_display(dev); struct intel_atomic_state *state = to_intel_atomic_state(_state); - struct drm_i915_private *dev_priv = to_i915(dev); int ret = 0; - state->wakeref = intel_runtime_pm_get(&dev_priv->runtime_pm); + state->wakeref = intel_display_rpm_get(display); /* * The intel_legacy_cursor_update() fast path takes care @@ -7552,7 +7552,7 @@ int intel_atomic_commit(struct drm_device *dev, struct drm_atomic_state *_state, if (ret) { drm_dbg_atomic(display->drm, "Preparing state failed with %i\n", ret); - intel_runtime_pm_put(&dev_priv->runtime_pm, state->wakeref); + intel_display_rpm_put(display, state->wakeref); return ret; } @@ -7562,7 +7562,7 @@ int intel_atomic_commit(struct drm_device *dev, struct drm_atomic_state *_state, if (ret) { drm_atomic_helper_unprepare_planes(dev, &state->base); - intel_runtime_pm_put(&dev_priv->runtime_pm, state->wakeref); + intel_display_rpm_put(display, state->wakeref); return ret; } diff --git a/drivers/gpu/drm/i915/display/intel_display_types.h b/drivers/gpu/drm/i915/display/intel_display_types.h index 99a6fd2900b9..7d9cc430a6b8 100644 --- a/drivers/gpu/drm/i915/display/intel_display_types.h +++ b/drivers/gpu/drm/i915/display/intel_display_types.h @@ -581,7 +581,7 @@ struct dpll { struct intel_atomic_state { struct drm_atomic_state base; - intel_wakeref_t wakeref; + struct ref_tracker *wakeref; struct __intel_global_objs_state *global_objs; int num_global_objs;
Convert intel_atomic_commit() and intel_atomic_commit_tail() to use display runtime PM interfaces. Also convert the wakeref member type to struct ref_tracker *, which is the same as intel_wakeref_t, but without the typedef. Signed-off-by: Jani Nikula <jani.nikula@intel.com> --- drivers/gpu/drm/i915/display/intel_display.c | 12 ++++++------ drivers/gpu/drm/i915/display/intel_display_types.h | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-)