162306a36Sopenharmony_ci/* SPDX-License-Identifier: MIT */ 262306a36Sopenharmony_ci/* 362306a36Sopenharmony_ci * Copyright © 2020,2021 Intel Corporation 462306a36Sopenharmony_ci */ 562306a36Sopenharmony_ci 662306a36Sopenharmony_ci#ifndef __INTEL_STEP_H__ 762306a36Sopenharmony_ci#define __INTEL_STEP_H__ 862306a36Sopenharmony_ci 962306a36Sopenharmony_ci#include <linux/types.h> 1062306a36Sopenharmony_ci 1162306a36Sopenharmony_cistruct drm_i915_private; 1262306a36Sopenharmony_ci 1362306a36Sopenharmony_cistruct intel_step_info { 1462306a36Sopenharmony_ci /* 1562306a36Sopenharmony_ci * It is expected to have 4 number steps per letter. Deviation from 1662306a36Sopenharmony_ci * the expectation breaks gmd_to_intel_step(). 1762306a36Sopenharmony_ci */ 1862306a36Sopenharmony_ci u8 graphics_step; /* Represents the compute tile on Xe_HPC */ 1962306a36Sopenharmony_ci u8 display_step; 2062306a36Sopenharmony_ci u8 media_step; 2162306a36Sopenharmony_ci u8 basedie_step; 2262306a36Sopenharmony_ci}; 2362306a36Sopenharmony_ci 2462306a36Sopenharmony_ci#define STEP_ENUM_VAL(name) STEP_##name, 2562306a36Sopenharmony_ci 2662306a36Sopenharmony_ci#define STEP_NAME_LIST(func) \ 2762306a36Sopenharmony_ci func(A0) \ 2862306a36Sopenharmony_ci func(A1) \ 2962306a36Sopenharmony_ci func(A2) \ 3062306a36Sopenharmony_ci func(A3) \ 3162306a36Sopenharmony_ci func(B0) \ 3262306a36Sopenharmony_ci func(B1) \ 3362306a36Sopenharmony_ci func(B2) \ 3462306a36Sopenharmony_ci func(B3) \ 3562306a36Sopenharmony_ci func(C0) \ 3662306a36Sopenharmony_ci func(C1) \ 3762306a36Sopenharmony_ci func(C2) \ 3862306a36Sopenharmony_ci func(C3) \ 3962306a36Sopenharmony_ci func(D0) \ 4062306a36Sopenharmony_ci func(D1) \ 4162306a36Sopenharmony_ci func(D2) \ 4262306a36Sopenharmony_ci func(D3) \ 4362306a36Sopenharmony_ci func(E0) \ 4462306a36Sopenharmony_ci func(E1) \ 4562306a36Sopenharmony_ci func(E2) \ 4662306a36Sopenharmony_ci func(E3) \ 4762306a36Sopenharmony_ci func(F0) \ 4862306a36Sopenharmony_ci func(F1) \ 4962306a36Sopenharmony_ci func(F2) \ 5062306a36Sopenharmony_ci func(F3) \ 5162306a36Sopenharmony_ci func(G0) \ 5262306a36Sopenharmony_ci func(G1) \ 5362306a36Sopenharmony_ci func(G2) \ 5462306a36Sopenharmony_ci func(G3) \ 5562306a36Sopenharmony_ci func(H0) \ 5662306a36Sopenharmony_ci func(H1) \ 5762306a36Sopenharmony_ci func(H2) \ 5862306a36Sopenharmony_ci func(H3) \ 5962306a36Sopenharmony_ci func(I0) \ 6062306a36Sopenharmony_ci func(I1) \ 6162306a36Sopenharmony_ci func(I2) \ 6262306a36Sopenharmony_ci func(I3) \ 6362306a36Sopenharmony_ci func(J0) \ 6462306a36Sopenharmony_ci func(J1) \ 6562306a36Sopenharmony_ci func(J2) \ 6662306a36Sopenharmony_ci func(J3) 6762306a36Sopenharmony_ci 6862306a36Sopenharmony_ci/* 6962306a36Sopenharmony_ci * Symbolic steppings that do not match the hardware. These are valid both as gt 7062306a36Sopenharmony_ci * and display steppings as symbolic names. 7162306a36Sopenharmony_ci */ 7262306a36Sopenharmony_cienum intel_step { 7362306a36Sopenharmony_ci STEP_NONE = 0, 7462306a36Sopenharmony_ci STEP_NAME_LIST(STEP_ENUM_VAL) 7562306a36Sopenharmony_ci STEP_FUTURE, 7662306a36Sopenharmony_ci STEP_FOREVER, 7762306a36Sopenharmony_ci}; 7862306a36Sopenharmony_ci 7962306a36Sopenharmony_civoid intel_step_init(struct drm_i915_private *i915); 8062306a36Sopenharmony_ciconst char *intel_step_name(enum intel_step step); 8162306a36Sopenharmony_ci 8262306a36Sopenharmony_ci#endif /* __INTEL_STEP_H__ */ 83