linux/drivers/gpu/drm/i915/intel_step.h
Matt Roper 8b449f1c44 drm/i915/pvc: Extract stepping information from PCI revid
For PVC, the base die and compute tile have separate stepping values
that we need to track; we'll use the existing graphics_step field to
represent the compute tile stepping and add a new 'basedie_step' field.

Unlike past platforms, steppings for these components are represented by
specific bitfields within the PCI revision ID, and we shouldn't make
assumptions about the non-CT, non-BD bits staying 0.  Let's update our
stepping code accordingly.

Bspec: 44484
Signed-off-by: Matt Roper <matthew.d.roper@intel.com>
Reviewed-by: Matt Atwood <matthew.s.atwood@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20220527163348.1936146-2-matthew.d.roper@intel.com
2022-05-31 14:44:57 -07:00

57 lines
1023 B
C

/* SPDX-License-Identifier: MIT */
/*
* Copyright © 2020,2021 Intel Corporation
*/
#ifndef __INTEL_STEP_H__
#define __INTEL_STEP_H__
#include <linux/types.h>
struct drm_i915_private;
struct intel_step_info {
u8 graphics_step; /* Represents the compute tile on Xe_HPC */
u8 display_step;
u8 media_step;
u8 basedie_step;
};
#define STEP_ENUM_VAL(name) STEP_##name,
#define STEP_NAME_LIST(func) \
func(A0) \
func(A1) \
func(A2) \
func(B0) \
func(B1) \
func(B2) \
func(B3) \
func(C0) \
func(C1) \
func(D0) \
func(D1) \
func(E0) \
func(F0) \
func(G0) \
func(H0) \
func(I0) \
func(I1) \
func(J0)
/*
* Symbolic steppings that do not match the hardware. These are valid both as gt
* and display steppings as symbolic names.
*/
enum intel_step {
STEP_NONE = 0,
STEP_NAME_LIST(STEP_ENUM_VAL)
STEP_FUTURE,
STEP_FOREVER,
};
void intel_step_init(struct drm_i915_private *i915);
const char *intel_step_name(enum intel_step step);
#endif /* __INTEL_STEP_H__ */