summaryrefslogtreecommitdiff
path: root/drivers/gpu/drm/i915/intel_step.h
diff options
context:
space:
mode:
authorAnusha Srivatsa <anusha.srivatsa@intel.com>2021-07-22 00:52:35 +0300
committerAnusha Srivatsa <anusha.srivatsa@intel.com>2021-07-22 20:18:06 +0300
commite631a440c03c658eab1159ddc701d5a579f9c5b3 (patch)
treeb44bdb8082e4f1f1d20163bd9171bb093b390852 /drivers/gpu/drm/i915/intel_step.h
parent34ba3c8a7d8ef378f4244f539978a95e38157aa6 (diff)
downloadlinux-e631a440c03c658eab1159ddc701d5a579f9c5b3.tar.xz
drm/i915/step: Add macro magic for handling steps
With the addition of stepping info for all platforms, lets use macros for handling them and autogenerating code for all steps at a time. Suggested-by: Matt Roper <matthew.d.roper@intel.com> Cc: Lucas De Marchi <lucas.demarchi@intel.com> Signed-off-by: Anusha Srivatsa <anusha.srivatsa@intel.com> Reviewed-by: Lucas De Marchi <lucas.demarchi@intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20210721215238.24980-1-anusha.srivatsa@intel.com
Diffstat (limited to 'drivers/gpu/drm/i915/intel_step.h')
-rw-r--r--drivers/gpu/drm/i915/intel_step.h38
1 files changed, 23 insertions, 15 deletions
diff --git a/drivers/gpu/drm/i915/intel_step.h b/drivers/gpu/drm/i915/intel_step.h
index 41567d9b7c35..f6641e2a3c77 100644
--- a/drivers/gpu/drm/i915/intel_step.h
+++ b/drivers/gpu/drm/i915/intel_step.h
@@ -15,31 +15,39 @@ struct intel_step_info {
u8 display_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(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_A0,
- STEP_A1,
- STEP_A2,
- STEP_B0,
- STEP_B1,
- STEP_C0,
- STEP_D0,
- STEP_D1,
- STEP_E0,
- STEP_F0,
- STEP_G0,
- STEP_H0,
- STEP_I0,
- STEP_I1,
- STEP_J0,
+ 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__ */