1/* SPDX-License-Identifier: MIT */ 2/* 3 * Copyright © 2019 Intel Corporation 4 */ 5 6#ifndef __INTEL_DE_H__ 7#define __INTEL_DE_H__ 8 9#include "i915_drv.h" 10#include "i915_reg.h" 11#include "intel_uncore.h" 12 13static inline u32 14intel_de_read(struct drm_i915_private *i915, i915_reg_t reg) 15{ 16 return intel_uncore_read(&i915->uncore, reg); 17} 18 19static inline void 20intel_de_posting_read(struct drm_i915_private *i915, i915_reg_t reg) 21{ 22 intel_uncore_posting_read(&i915->uncore, reg); 23} 24 25/* Note: read the warnings for intel_uncore_*_fw() functions! */ 26static inline u32 27intel_de_read_fw(struct drm_i915_private *i915, i915_reg_t reg) 28{ 29 return intel_uncore_read_fw(&i915->uncore, reg); 30} 31 32static inline void 33intel_de_write(struct drm_i915_private *i915, i915_reg_t reg, u32 val) 34{ 35 intel_uncore_write(&i915->uncore, reg, val); 36} 37 38/* Note: read the warnings for intel_uncore_*_fw() functions! */ 39static inline void 40intel_de_write_fw(struct drm_i915_private *i915, i915_reg_t reg, u32 val) 41{ 42 intel_uncore_write_fw(&i915->uncore, reg, val); 43} 44 45static inline void 46intel_de_rmw(struct drm_i915_private *i915, i915_reg_t reg, u32 clear, u32 set) 47{ 48 intel_uncore_rmw(&i915->uncore, reg, clear, set); 49} 50 51static inline int 52intel_de_wait_for_register(struct drm_i915_private *i915, i915_reg_t reg, 53 u32 mask, u32 value, unsigned int timeout) 54{ 55 return intel_wait_for_register(&i915->uncore, reg, mask, value, timeout); 56} 57 58static inline int 59intel_de_wait_for_set(struct drm_i915_private *i915, i915_reg_t reg, 60 u32 mask, unsigned int timeout) 61{ 62 return intel_de_wait_for_register(i915, reg, mask, mask, timeout); 63} 64 65static inline int 66intel_de_wait_for_clear(struct drm_i915_private *i915, i915_reg_t reg, 67 u32 mask, unsigned int timeout) 68{ 69 return intel_de_wait_for_register(i915, reg, mask, 0, timeout); 70} 71 72#endif /* __INTEL_DE_H__ */ 73