xref: /openbmc/linux/drivers/gpu/drm/i915/intel_step.h (revision 7ae9fb1b7ecbb5d85d07857943f677fd1a559b18)
17eb186bbSJani Nikula /* SPDX-License-Identifier: MIT */
27eb186bbSJani Nikula /*
37eb186bbSJani Nikula  * Copyright © 2020,2021 Intel Corporation
47eb186bbSJani Nikula  */
57eb186bbSJani Nikula 
67eb186bbSJani Nikula #ifndef __INTEL_STEP_H__
77eb186bbSJani Nikula #define __INTEL_STEP_H__
87eb186bbSJani Nikula 
97eb186bbSJani Nikula #include <linux/types.h>
107eb186bbSJani Nikula 
11ef47b7abSJani Nikula struct drm_i915_private;
12ef47b7abSJani Nikula 
135644dc0aSJani Nikula struct intel_step_info {
14*944ca7d8SJosé Roberto de Souza 	/*
15*944ca7d8SJosé Roberto de Souza 	 * It is expected to have 4 number steps per letter. Deviation from
16*944ca7d8SJosé Roberto de Souza 	 * the expectation breaks gmd_to_intel_step().
17*944ca7d8SJosé Roberto de Souza 	 */
188b449f1cSMatt Roper 	u8 graphics_step;	/* Represents the compute tile on Xe_HPC */
1926475ca9SJani Nikula 	u8 display_step;
20e181fa1dSJosé Roberto de Souza 	u8 media_step;
218b449f1cSMatt Roper 	u8 basedie_step;
227eb186bbSJani Nikula };
237eb186bbSJani Nikula 
24e631a440SAnusha Srivatsa #define STEP_ENUM_VAL(name)  STEP_##name,
25e631a440SAnusha Srivatsa 
26e631a440SAnusha Srivatsa #define STEP_NAME_LIST(func)		\
27e631a440SAnusha Srivatsa 	func(A0)			\
28e631a440SAnusha Srivatsa 	func(A1)			\
29e631a440SAnusha Srivatsa 	func(A2)			\
30*944ca7d8SJosé Roberto de Souza 	func(A3)			\
31e631a440SAnusha Srivatsa 	func(B0)			\
32e631a440SAnusha Srivatsa 	func(B1)			\
33e631a440SAnusha Srivatsa 	func(B2)			\
348b449f1cSMatt Roper 	func(B3)			\
35e631a440SAnusha Srivatsa 	func(C0)			\
36e631a440SAnusha Srivatsa 	func(C1)			\
37*944ca7d8SJosé Roberto de Souza 	func(C2)			\
38*944ca7d8SJosé Roberto de Souza 	func(C3)			\
39e631a440SAnusha Srivatsa 	func(D0)			\
40e631a440SAnusha Srivatsa 	func(D1)			\
41*944ca7d8SJosé Roberto de Souza 	func(D2)			\
42*944ca7d8SJosé Roberto de Souza 	func(D3)			\
43e631a440SAnusha Srivatsa 	func(E0)			\
44*944ca7d8SJosé Roberto de Souza 	func(E1)			\
45*944ca7d8SJosé Roberto de Souza 	func(E2)			\
46*944ca7d8SJosé Roberto de Souza 	func(E3)			\
47e631a440SAnusha Srivatsa 	func(F0)			\
48*944ca7d8SJosé Roberto de Souza 	func(F1)			\
49*944ca7d8SJosé Roberto de Souza 	func(F2)			\
50*944ca7d8SJosé Roberto de Souza 	func(F3)			\
51e631a440SAnusha Srivatsa 	func(G0)			\
52*944ca7d8SJosé Roberto de Souza 	func(G1)			\
53*944ca7d8SJosé Roberto de Souza 	func(G2)			\
54*944ca7d8SJosé Roberto de Souza 	func(G3)			\
55e631a440SAnusha Srivatsa 	func(H0)			\
56*944ca7d8SJosé Roberto de Souza 	func(H1)			\
57*944ca7d8SJosé Roberto de Souza 	func(H2)			\
58*944ca7d8SJosé Roberto de Souza 	func(H3)			\
59e631a440SAnusha Srivatsa 	func(I0)			\
60e631a440SAnusha Srivatsa 	func(I1)			\
61*944ca7d8SJosé Roberto de Souza 	func(I2)			\
62*944ca7d8SJosé Roberto de Souza 	func(I3)			\
63*944ca7d8SJosé Roberto de Souza 	func(J0)			\
64*944ca7d8SJosé Roberto de Souza 	func(J1)			\
65*944ca7d8SJosé Roberto de Souza 	func(J2)			\
66*944ca7d8SJosé Roberto de Souza 	func(J3)
67e631a440SAnusha Srivatsa 
68439c8dccSJani Nikula /*
69439c8dccSJani Nikula  * Symbolic steppings that do not match the hardware. These are valid both as gt
70439c8dccSJani Nikula  * and display steppings as symbolic names.
71439c8dccSJani Nikula  */
72439c8dccSJani Nikula enum intel_step {
73439c8dccSJani Nikula 	STEP_NONE = 0,
74e631a440SAnusha Srivatsa 	STEP_NAME_LIST(STEP_ENUM_VAL)
75ef47b7abSJani Nikula 	STEP_FUTURE,
76ef47b7abSJani Nikula 	STEP_FOREVER,
77439c8dccSJani Nikula };
78439c8dccSJani Nikula 
79ef47b7abSJani Nikula void intel_step_init(struct drm_i915_private *i915);
80e631a440SAnusha Srivatsa const char *intel_step_name(enum intel_step step);
81ef47b7abSJani Nikula 
827eb186bbSJani Nikula #endif /* __INTEL_STEP_H__ */
83