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