1 // SPDX-License-Identifier: MIT 2 /* Copyright © 2025 Intel Corporation */ 3 4 #include "intel_display_core.h" 5 #include "intel_display_rpm.h" 6 #include "xe_device.h" 7 #include "xe_device_types.h" 8 #include "xe_pm.h" 9 display_to_xe(struct intel_display * display)10static struct xe_device *display_to_xe(struct intel_display *display) 11 { 12 return to_xe_device(display->drm); 13 } 14 intel_display_rpm_get_raw(struct intel_display * display)15struct ref_tracker *intel_display_rpm_get_raw(struct intel_display *display) 16 { 17 return intel_display_rpm_get(display); 18 } 19 intel_display_rpm_put_raw(struct intel_display * display,struct ref_tracker * wakeref)20void intel_display_rpm_put_raw(struct intel_display *display, struct ref_tracker *wakeref) 21 { 22 intel_display_rpm_put(display, wakeref); 23 } 24 intel_display_rpm_get(struct intel_display * display)25struct ref_tracker *intel_display_rpm_get(struct intel_display *display) 26 { 27 return xe_pm_runtime_resume_and_get(display_to_xe(display)) ? INTEL_WAKEREF_DEF : NULL; 28 } 29 intel_display_rpm_get_if_in_use(struct intel_display * display)30struct ref_tracker *intel_display_rpm_get_if_in_use(struct intel_display *display) 31 { 32 return xe_pm_runtime_get_if_in_use(display_to_xe(display)) ? INTEL_WAKEREF_DEF : NULL; 33 } 34 intel_display_rpm_get_noresume(struct intel_display * display)35struct ref_tracker *intel_display_rpm_get_noresume(struct intel_display *display) 36 { 37 xe_pm_runtime_get_noresume(display_to_xe(display)); 38 39 return INTEL_WAKEREF_DEF; 40 } 41 intel_display_rpm_put(struct intel_display * display,struct ref_tracker * wakeref)42void intel_display_rpm_put(struct intel_display *display, struct ref_tracker *wakeref) 43 { 44 if (wakeref) 45 xe_pm_runtime_put(display_to_xe(display)); 46 } 47 intel_display_rpm_put_unchecked(struct intel_display * display)48void intel_display_rpm_put_unchecked(struct intel_display *display) 49 { 50 xe_pm_runtime_put(display_to_xe(display)); 51 } 52 intel_display_rpm_suspended(struct intel_display * display)53bool intel_display_rpm_suspended(struct intel_display *display) 54 { 55 struct xe_device *xe = display_to_xe(display); 56 57 return pm_runtime_suspended(xe->drm.dev); 58 } 59 assert_display_rpm_held(struct intel_display * display)60void assert_display_rpm_held(struct intel_display *display) 61 { 62 /* FIXME */ 63 } 64 intel_display_rpm_assert_block(struct intel_display * display)65void intel_display_rpm_assert_block(struct intel_display *display) 66 { 67 /* FIXME */ 68 } 69 intel_display_rpm_assert_unblock(struct intel_display * display)70void intel_display_rpm_assert_unblock(struct intel_display *display) 71 { 72 /* FIXME */ 73 } 74