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