xref: /linux/drivers/gpu/drm/i915/intel_step.h (revision 3a39d672e7f48b8d6b91a09afa4b55352773b4b5)
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 */
19e181fa1dSJosé Roberto de Souza 	u8 media_step;
207eb186bbSJani Nikula };
217eb186bbSJani Nikula 
22e631a440SAnusha Srivatsa #define STEP_ENUM_VAL(name)  STEP_##name,
23e631a440SAnusha Srivatsa 
24e631a440SAnusha Srivatsa #define STEP_NAME_LIST(func)		\
25e631a440SAnusha Srivatsa 	func(A0)			\
26e631a440SAnusha Srivatsa 	func(A1)			\
27e631a440SAnusha Srivatsa 	func(A2)			\
28*944ca7d8SJosé Roberto de Souza 	func(A3)			\
29e631a440SAnusha Srivatsa 	func(B0)			\
30e631a440SAnusha Srivatsa 	func(B1)			\
31e631a440SAnusha Srivatsa 	func(B2)			\
328b449f1cSMatt Roper 	func(B3)			\
33e631a440SAnusha Srivatsa 	func(C0)			\
34e631a440SAnusha Srivatsa 	func(C1)			\
35*944ca7d8SJosé Roberto de Souza 	func(C2)			\
36*944ca7d8SJosé Roberto de Souza 	func(C3)			\
37e631a440SAnusha Srivatsa 	func(D0)			\
38e631a440SAnusha Srivatsa 	func(D1)			\
39*944ca7d8SJosé Roberto de Souza 	func(D2)			\
40*944ca7d8SJosé Roberto de Souza 	func(D3)			\
41e631a440SAnusha Srivatsa 	func(E0)			\
42*944ca7d8SJosé Roberto de Souza 	func(E1)			\
43*944ca7d8SJosé Roberto de Souza 	func(E2)			\
44*944ca7d8SJosé Roberto de Souza 	func(E3)			\
45e631a440SAnusha Srivatsa 	func(F0)			\
46*944ca7d8SJosé Roberto de Souza 	func(F1)			\
47*944ca7d8SJosé Roberto de Souza 	func(F2)			\
48*944ca7d8SJosé Roberto de Souza 	func(F3)			\
49e631a440SAnusha Srivatsa 	func(G0)			\
50*944ca7d8SJosé Roberto de Souza 	func(G1)			\
51*944ca7d8SJosé Roberto de Souza 	func(G2)			\
52*944ca7d8SJosé Roberto de Souza 	func(G3)			\
53e631a440SAnusha Srivatsa 	func(H0)			\
54*944ca7d8SJosé Roberto de Souza 	func(H1)			\
55*944ca7d8SJosé Roberto de Souza 	func(H2)			\
56*944ca7d8SJosé Roberto de Souza 	func(H3)			\
57e631a440SAnusha Srivatsa 	func(I0)			\
58e631a440SAnusha Srivatsa 	func(I1)			\
59*944ca7d8SJosé Roberto de Souza 	func(I2)			\
60*944ca7d8SJosé Roberto de Souza 	func(I3)			\
61*944ca7d8SJosé Roberto de Souza 	func(J0)			\
62*944ca7d8SJosé Roberto de Souza 	func(J1)			\
63*944ca7d8SJosé Roberto de Souza 	func(J2)			\
64*944ca7d8SJosé Roberto de Souza 	func(J3)
65e631a440SAnusha Srivatsa 
66439c8dccSJani Nikula /*
67439c8dccSJani Nikula  * Symbolic steppings that do not match the hardware. These are valid both as gt
68439c8dccSJani Nikula  * and display steppings as symbolic names.
69439c8dccSJani Nikula  */
70439c8dccSJani Nikula enum intel_step {
71439c8dccSJani Nikula 	STEP_NONE = 0,
72e631a440SAnusha Srivatsa 	STEP_NAME_LIST(STEP_ENUM_VAL)
73ef47b7abSJani Nikula 	STEP_FUTURE,
74ef47b7abSJani Nikula 	STEP_FOREVER,
75439c8dccSJani Nikula };
76439c8dccSJani Nikula 
77ef47b7abSJani Nikula void intel_step_init(struct drm_i915_private *i915);
78e631a440SAnusha Srivatsa const char *intel_step_name(enum intel_step step);
79ef47b7abSJani Nikula 
807eb186bbSJani Nikula #endif /* __INTEL_STEP_H__ */
81