1*336c0eaeSJani Nikula // SPDX-License-Identifier: MIT 2*336c0eaeSJani Nikula /* Copyright © 2025 Intel Corporation */ 3*336c0eaeSJani Nikula 4*336c0eaeSJani Nikula #include "i915_drv.h" 5*336c0eaeSJani Nikula #include "intel_display_rpm.h" 6*336c0eaeSJani Nikula #include "intel_runtime_pm.h" 7*336c0eaeSJani Nikula 8*336c0eaeSJani Nikula static struct intel_runtime_pm *display_to_rpm(struct intel_display *display) 9*336c0eaeSJani Nikula { 10*336c0eaeSJani Nikula struct drm_i915_private *i915 = to_i915(display->drm); 11*336c0eaeSJani Nikula 12*336c0eaeSJani Nikula return &i915->runtime_pm; 13*336c0eaeSJani Nikula } 14*336c0eaeSJani Nikula 15*336c0eaeSJani Nikula struct ref_tracker *intel_display_rpm_get_raw(struct intel_display *display) 16*336c0eaeSJani Nikula { 17*336c0eaeSJani Nikula return intel_runtime_pm_get_raw(display_to_rpm(display)); 18*336c0eaeSJani Nikula } 19*336c0eaeSJani Nikula 20*336c0eaeSJani Nikula void intel_display_rpm_put_raw(struct intel_display *display, struct ref_tracker *wakeref) 21*336c0eaeSJani Nikula { 22*336c0eaeSJani Nikula intel_runtime_pm_put_raw(display_to_rpm(display), wakeref); 23*336c0eaeSJani Nikula } 24*336c0eaeSJani Nikula 25*336c0eaeSJani Nikula struct ref_tracker *intel_display_rpm_get(struct intel_display *display) 26*336c0eaeSJani Nikula { 27*336c0eaeSJani Nikula return intel_runtime_pm_get(display_to_rpm(display)); 28*336c0eaeSJani Nikula } 29*336c0eaeSJani Nikula 30*336c0eaeSJani Nikula struct ref_tracker *intel_display_rpm_get_if_in_use(struct intel_display *display) 31*336c0eaeSJani Nikula { 32*336c0eaeSJani Nikula return intel_runtime_pm_get_if_in_use(display_to_rpm(display)); 33*336c0eaeSJani Nikula } 34*336c0eaeSJani Nikula 35*336c0eaeSJani Nikula struct ref_tracker *intel_display_rpm_get_noresume(struct intel_display *display) 36*336c0eaeSJani Nikula { 37*336c0eaeSJani Nikula return intel_runtime_pm_get_noresume(display_to_rpm(display)); 38*336c0eaeSJani Nikula } 39*336c0eaeSJani Nikula 40*336c0eaeSJani Nikula void intel_display_rpm_put(struct intel_display *display, struct ref_tracker *wakeref) 41*336c0eaeSJani Nikula { 42*336c0eaeSJani Nikula intel_runtime_pm_put(display_to_rpm(display), wakeref); 43*336c0eaeSJani Nikula } 44*336c0eaeSJani Nikula 45*336c0eaeSJani Nikula void intel_display_rpm_put_unchecked(struct intel_display *display) 46*336c0eaeSJani Nikula { 47*336c0eaeSJani Nikula intel_runtime_pm_put_unchecked(display_to_rpm(display)); 48*336c0eaeSJani Nikula } 49*336c0eaeSJani Nikula 50*336c0eaeSJani Nikula bool intel_display_rpm_suspended(struct intel_display *display) 51*336c0eaeSJani Nikula { 52*336c0eaeSJani Nikula return intel_runtime_pm_suspended(display_to_rpm(display)); 53*336c0eaeSJani Nikula } 54*336c0eaeSJani Nikula 55*336c0eaeSJani Nikula void assert_display_rpm_held(struct intel_display *display) 56*336c0eaeSJani Nikula { 57*336c0eaeSJani Nikula assert_rpm_wakelock_held(display_to_rpm(display)); 58*336c0eaeSJani Nikula } 59*336c0eaeSJani Nikula 60*336c0eaeSJani Nikula void intel_display_rpm_assert_block(struct intel_display *display) 61*336c0eaeSJani Nikula { 62*336c0eaeSJani Nikula disable_rpm_wakeref_asserts(display_to_rpm(display)); 63*336c0eaeSJani Nikula } 64*336c0eaeSJani Nikula 65*336c0eaeSJani Nikula void intel_display_rpm_assert_unblock(struct intel_display *display) 66*336c0eaeSJani Nikula { 67*336c0eaeSJani Nikula enable_rpm_wakeref_asserts(display_to_rpm(display)); 68*336c0eaeSJani Nikula } 69