1/* SPDX-License-Identifier: MIT */ 2/* 3 * Copyright �� 2023 Intel Corporation 4 */ 5 6#ifndef __INTEL_RUNTIME_PM_H__ 7#define __INTEL_RUNTIME_PM_H__ 8 9#include "intel_wakeref.h" 10#include "xe_device_types.h" 11#include "xe_pm.h" 12 13#define intel_runtime_pm xe_runtime_pm 14 15static inline void disable_rpm_wakeref_asserts(void *rpm) 16{ 17} 18 19static inline void enable_rpm_wakeref_asserts(void *rpm) 20{ 21} 22 23static inline intel_wakeref_t intel_runtime_pm_get(struct xe_runtime_pm *pm) 24{ 25 struct xe_device *xe = container_of(pm, struct xe_device, runtime_pm); 26 27 return xe_pm_runtime_resume_and_get(xe); 28} 29 30static inline intel_wakeref_t intel_runtime_pm_get_if_in_use(struct xe_runtime_pm *pm) 31{ 32 struct xe_device *xe = container_of(pm, struct xe_device, runtime_pm); 33 34 return xe_pm_runtime_get_if_in_use(xe); 35} 36 37static inline intel_wakeref_t intel_runtime_pm_get_noresume(struct xe_runtime_pm *pm) 38{ 39 struct xe_device *xe = container_of(pm, struct xe_device, runtime_pm); 40 41 xe_pm_runtime_get_noresume(xe); 42 return true; 43} 44 45static inline void intel_runtime_pm_put_unchecked(struct xe_runtime_pm *pm) 46{ 47 struct xe_device *xe = container_of(pm, struct xe_device, runtime_pm); 48 49 xe_pm_runtime_put(xe); 50} 51 52static inline void intel_runtime_pm_put(struct xe_runtime_pm *pm, intel_wakeref_t wakeref) 53{ 54 if (wakeref) 55 intel_runtime_pm_put_unchecked(pm); 56} 57 58#define intel_runtime_pm_get_raw intel_runtime_pm_get 59#define intel_runtime_pm_put_raw intel_runtime_pm_put 60#define assert_rpm_wakelock_held(x) do { } while (0) 61#define assert_rpm_raw_wakeref_held(x) do { } while (0) 62 63#define with_intel_runtime_pm(rpm, wf) \ 64 for ((wf) = intel_runtime_pm_get(rpm); (wf); \ 65 intel_runtime_pm_put((rpm), (wf)), (wf) = 0) 66 67#endif 68