#ifndef __INTEL_UNCORE_H__
#define __INTEL_UNCORE_H__
#include <linux/spinlock.h>
#include <linux/notifier.h>
#include <linux/hrtimer.h>
#include <linux/io-64-nonatomic-lo-hi.h>
#include <linux/types.h>
#include "i915_reg_defs.h"
struct drm_device;
struct drm_i915_private;
struct intel_runtime_pm;
struct intel_uncore;
struct intel_gt;
struct intel_uncore_mmio_debug { … };
enum forcewake_domain_id { … };
enum forcewake_domains { … };
struct intel_uncore_fw_get { … };
struct intel_uncore_funcs { … };
struct intel_forcewake_range { … };
struct i915_range { … };
struct intel_uncore { … };
#define for_each_fw_domain_masked(domain__, mask__, uncore__, tmp__) …
#define for_each_fw_domain(domain__, uncore__, tmp__) …
static inline bool
intel_uncore_has_forcewake(const struct intel_uncore *uncore)
{ … }
static inline bool
intel_uncore_has_fpga_dbg_unclaimed(const struct intel_uncore *uncore)
{ … }
static inline bool
intel_uncore_has_dbg_unclaimed(const struct intel_uncore *uncore)
{ … }
static inline bool
intel_uncore_has_fifo(const struct intel_uncore *uncore)
{ … }
static inline bool
intel_uncore_needs_flr_on_fini(const struct intel_uncore *uncore)
{ … }
static inline bool
intel_uncore_set_flr_on_fini(struct intel_uncore *uncore)
{ … }
void intel_uncore_mmio_debug_init_early(struct drm_i915_private *i915);
void intel_uncore_init_early(struct intel_uncore *uncore,
struct intel_gt *gt);
int intel_uncore_setup_mmio(struct intel_uncore *uncore, phys_addr_t phys_addr);
int intel_uncore_init_mmio(struct intel_uncore *uncore);
void intel_uncore_prune_engine_fw_domains(struct intel_uncore *uncore,
struct intel_gt *gt);
bool intel_uncore_unclaimed_mmio(struct intel_uncore *uncore);
bool intel_uncore_arm_unclaimed_mmio_detection(struct intel_uncore *uncore);
void intel_uncore_cleanup_mmio(struct intel_uncore *uncore);
void intel_uncore_fini_mmio(struct drm_device *dev, void *data);
void intel_uncore_suspend(struct intel_uncore *uncore);
void intel_uncore_resume_early(struct intel_uncore *uncore);
void intel_uncore_runtime_resume(struct intel_uncore *uncore);
void assert_forcewakes_inactive(struct intel_uncore *uncore);
void assert_forcewakes_active(struct intel_uncore *uncore,
enum forcewake_domains fw_domains);
const char *intel_uncore_forcewake_domain_to_str(const enum forcewake_domain_id id);
enum forcewake_domains
intel_uncore_forcewake_for_reg(struct intel_uncore *uncore,
i915_reg_t reg, unsigned int op);
#define FW_REG_READ …
#define FW_REG_WRITE …
void intel_uncore_forcewake_get(struct intel_uncore *uncore,
enum forcewake_domains domains);
void intel_uncore_forcewake_put(struct intel_uncore *uncore,
enum forcewake_domains domains);
void intel_uncore_forcewake_put_delayed(struct intel_uncore *uncore,
enum forcewake_domains domains);
void intel_uncore_forcewake_flush(struct intel_uncore *uncore,
enum forcewake_domains fw_domains);
void intel_uncore_forcewake_get__locked(struct intel_uncore *uncore,
enum forcewake_domains domains);
void intel_uncore_forcewake_put__locked(struct intel_uncore *uncore,
enum forcewake_domains domains);
void intel_uncore_forcewake_user_get(struct intel_uncore *uncore);
void intel_uncore_forcewake_user_put(struct intel_uncore *uncore);
int __intel_wait_for_register(struct intel_uncore *uncore,
i915_reg_t reg,
u32 mask,
u32 value,
unsigned int fast_timeout_us,
unsigned int slow_timeout_ms,
u32 *out_value);
static inline int
intel_wait_for_register(struct intel_uncore *uncore,
i915_reg_t reg,
u32 mask,
u32 value,
unsigned int timeout_ms)
{ … }
int __intel_wait_for_register_fw(struct intel_uncore *uncore,
i915_reg_t reg,
u32 mask,
u32 value,
unsigned int fast_timeout_us,
unsigned int slow_timeout_ms,
u32 *out_value);
static inline int
intel_wait_for_register_fw(struct intel_uncore *uncore,
i915_reg_t reg,
u32 mask,
u32 value,
unsigned int timeout_ms)
{ … }
#define IS_GSI_REG(reg) …
#define __raw_read …
#define __raw_write …
__raw_read
__raw_read
__raw_read
__raw_read
__raw_write
__raw_write
__raw_write
__raw_write
#undef __raw_read
#undef __raw_write
#define __uncore_read …
#define __uncore_write …
__uncore_read
__uncore_read
__uncore_read
__uncore_read
__uncore_read
__uncore_write
__uncore_write
__uncore_write
__uncore_write
__uncore_read
#define intel_uncore_posting_read(...) …
#define intel_uncore_posting_read16(...) …
#undef __uncore_read
#undef __uncore_write
#define intel_uncore_read_fw(...) …
#define intel_uncore_write_fw(...) …
#define intel_uncore_write64_fw(...) …
#define intel_uncore_posting_read_fw(...) …
static inline u32 intel_uncore_rmw(struct intel_uncore *uncore,
i915_reg_t reg, u32 clear, u32 set)
{ … }
static inline void intel_uncore_rmw_fw(struct intel_uncore *uncore,
i915_reg_t reg, u32 clear, u32 set)
{ … }
static inline u64
intel_uncore_read64_2x32(struct intel_uncore *uncore,
i915_reg_t lower_reg, i915_reg_t upper_reg)
{ … }
static inline int intel_uncore_write_and_verify(struct intel_uncore *uncore,
i915_reg_t reg, u32 val,
u32 mask, u32 expected_val)
{ … }
static inline void __iomem *intel_uncore_regs(struct intel_uncore *uncore)
{ … }
#define raw_reg_read(base, reg) …
#define raw_reg_write(base, reg, value) …
#endif