#include "xe_reg_sr.h"
#include <kunit/visibility.h>
#include <linux/align.h>
#include <linux/string_helpers.h>
#include <linux/xarray.h>
#include <drm/drm_managed.h>
#include <drm/drm_print.h>
#include "regs/xe_engine_regs.h"
#include "regs/xe_gt_regs.h"
#include "xe_device_types.h"
#include "xe_force_wake.h"
#include "xe_gt.h"
#include "xe_gt_mcr.h"
#include "xe_gt_printk.h"
#include "xe_hw_engine_types.h"
#include "xe_macros.h"
#include "xe_mmio.h"
#include "xe_reg_whitelist.h"
#include "xe_rtp_types.h"
#define XE_REG_SR_GROW_STEP_DEFAULT …
static void reg_sr_fini(struct drm_device *drm, void *arg)
{ … }
int xe_reg_sr_init(struct xe_reg_sr *sr, const char *name, struct xe_device *xe)
{ … }
EXPORT_SYMBOL_IF_KUNIT(…);
static struct xe_reg_sr_entry *alloc_entry(struct xe_reg_sr *sr)
{ … }
static bool compatible_entries(const struct xe_reg_sr_entry *e1,
const struct xe_reg_sr_entry *e2)
{ … }
static void reg_sr_inc_error(struct xe_reg_sr *sr)
{ … }
int xe_reg_sr_add(struct xe_reg_sr *sr,
const struct xe_reg_sr_entry *e,
struct xe_gt *gt)
{ … }
static struct xe_reg_mcr to_xe_reg_mcr(const struct xe_reg reg)
{ … }
static void apply_one_mmio(struct xe_gt *gt, struct xe_reg_sr_entry *entry)
{ … }
void xe_reg_sr_apply_mmio(struct xe_reg_sr *sr, struct xe_gt *gt)
{ … }
void xe_reg_sr_apply_whitelist(struct xe_hw_engine *hwe)
{ … }
void xe_reg_sr_dump(struct xe_reg_sr *sr, struct drm_printer *p)
{ … }