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 	u8 gt_step;
15 	u8 display_step;
16 };
17 
18 #define STEP_ENUM_VAL(name)  STEP_##name,
19 
20 #define STEP_NAME_LIST(func)		\
21 	func(A0)			\
22 	func(A1)			\
23 	func(A2)			\
24 	func(B0)			\
25 	func(B1)			\
26 	func(B2)			\
27 	func(C0)			\
28 	func(C1)			\
29 	func(D0)			\
30 	func(D1)			\
31 	func(E0)			\
32 	func(F0)			\
33 	func(G0)			\
34 	func(H0)			\
35 	func(I0)			\
36 	func(I1)			\
37 	func(J0)
38 
39 /*
40  * Symbolic steppings that do not match the hardware. These are valid both as gt
41  * and display steppings as symbolic names.
42  */
43 enum intel_step {
44 	STEP_NONE = 0,
45 	STEP_NAME_LIST(STEP_ENUM_VAL)
46 	STEP_FUTURE,
47 	STEP_FOREVER,
48 };
49 
50 void intel_step_init(struct drm_i915_private *i915);
51 const char *intel_step_name(enum intel_step step);
52 
53 #endif /* __INTEL_STEP_H__ */
54