drm/i915/gt: Move multicast register handling to a dedicated file
[linux-block.git] / drivers / gpu / drm / i915 / gt / intel_gt_mcr.h
CommitLineData
e7858254
MR
1/* SPDX-License-Identifier: MIT */
2/*
3 * Copyright © 2022 Intel Corporation
4 */
5
6#ifndef __INTEL_GT_MCR__
7#define __INTEL_GT_MCR__
8
9#include "intel_gt_types.h"
10
11void intel_gt_mcr_init(struct intel_gt *gt);
12
13u32 intel_uncore_read_with_mcr_steering_fw(struct intel_uncore *uncore,
14 i915_reg_t reg,
15 int slice, int subslice);
16u32 intel_uncore_read_with_mcr_steering(struct intel_uncore *uncore,
17 i915_reg_t reg, int slice, int subslice);
18void intel_uncore_write_with_mcr_steering(struct intel_uncore *uncore,
19 i915_reg_t reg, u32 value,
20 int slice, int subslice);
21
22u32 intel_gt_read_register_fw(struct intel_gt *gt, i915_reg_t reg);
23u32 intel_gt_read_register(struct intel_gt *gt, i915_reg_t reg);
24
25static inline bool intel_gt_needs_read_steering(struct intel_gt *gt,
26 enum intel_steering_type type)
27{
28 return gt->steering_table[type];
29}
30
31void intel_gt_get_valid_steering_for_reg(struct intel_gt *gt, i915_reg_t reg,
32 u8 *sliceid, u8 *subsliceid);
33
34void intel_gt_report_steering(struct drm_printer *p, struct intel_gt *gt,
35 bool dump_table);
36
37#endif /* __INTEL_GT_MCR__ */