brintos

brintos / linux-shallow public Read only

0
0
Text · 1.7 KiB · 8c7b315 Raw
68 lines · c
1/* SPDX-License-Identifier: MIT */2/*3 * Copyright © 2023 Intel Corporation4 */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_pm14 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_get59#define intel_runtime_pm_put_raw intel_runtime_pm_put60#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#endif68