1 /* SPDX-License-Identifier: MIT */ 2 /* 3 * Copyright (C) 2024 Intel Corporation 4 */ 5 6 #ifndef __INTEL_WAKELOCK_H__ 7 #define __INTEL_WAKELOCK_H__ 8 9 #include <linux/types.h> 10 #include <linux/workqueue.h> 11 #include <linux/refcount.h> 12 13 #include "i915_reg_defs.h" 14 15 struct intel_display; 16 17 struct intel_dmc_wl { 18 spinlock_t lock; /* protects enabled, taken and refcount */ 19 bool enabled; 20 bool taken; 21 refcount_t refcount; 22 struct delayed_work work; 23 }; 24 25 void intel_dmc_wl_init(struct intel_display *display); 26 void intel_dmc_wl_enable(struct intel_display *display); 27 void intel_dmc_wl_disable(struct intel_display *display); 28 void intel_dmc_wl_get(struct intel_display *display, i915_reg_t reg); 29 void intel_dmc_wl_put(struct intel_display *display, i915_reg_t reg); 30 31 #endif /* __INTEL_WAKELOCK_H__ */ 32