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