1 /* SPDX-License-Identifier: MIT */
2 /*
3  * Copyright © 2020,2021 Intel Corporation
4  */
5 
6 #ifndef __INTEL_STEP_H__
7 #define __INTEL_STEP_H__
8 
9 #include <linux/types.h>
10 
11 struct drm_i915_private;
12 
13 struct intel_step_info {
14 	/*
15 	 * It is expected to have 4 number steps per letter. Deviation from
16 	 * the expectation breaks gmd_to_intel_step().
17 	 */
18 	u8 graphics_step;	/* Represents the compute tile on Xe_HPC */
19 	u8 display_step;
20 	u8 media_step;
21 	u8 basedie_step;
22 };
23 
24 #define STEP_ENUM_VAL(name)  STEP_##name,
25 
26 #define STEP_NAME_LIST(func)		\
27 	func(A0)			\
28 	func(A1)			\
29 	func(A2)			\
30 	func(A3)			\
31 	func(B0)			\
32 	func(B1)			\
33 	func(B2)			\
34 	func(B3)			\
35 	func(C0)			\
36 	func(C1)			\
37 	func(C2)			\
38 	func(C3)			\
39 	func(D0)			\
40 	func(D1)			\
41 	func(D2)			\
42 	func(D3)			\
43 	func(E0)			\
44 	func(E1)			\
45 	func(E2)			\
46 	func(E3)			\
47 	func(F0)			\
48 	func(F1)			\
49 	func(F2)			\
50 	func(F3)			\
51 	func(G0)			\
52 	func(G1)			\
53 	func(G2)			\
54 	func(G3)			\
55 	func(H0)			\
56 	func(H1)			\
57 	func(H2)			\
58 	func(H3)			\
59 	func(I0)			\
60 	func(I1)			\
61 	func(I2)			\
62 	func(I3)			\
63 	func(J0)			\
64 	func(J1)			\
65 	func(J2)			\
66 	func(J3)
67 
68 /*
69  * Symbolic steppings that do not match the hardware. These are valid both as gt
70  * and display steppings as symbolic names.
71  */
72 enum intel_step {
73 	STEP_NONE = 0,
74 	STEP_NAME_LIST(STEP_ENUM_VAL)
75 	STEP_FUTURE,
76 	STEP_FOREVER,
77 };
78 
79 void intel_step_init(struct drm_i915_private *i915);
80 const char *intel_step_name(enum intel_step step);
81 
82 #endif /* __INTEL_STEP_H__ */
83