Skip to content

Commit

Permalink
drm/i915: add new helpers for accessing stepping info
Browse files Browse the repository at this point in the history
Add new runtime info field for stepping. Add new helpers for accessing
them. As we'll be switching platforms over to the new scheme
incrementally, check for non-initialized steppings.

In case a platform does not have separate display and gt steppings, it's
okay to use a common shorthand. However, in this case the display
stepping must not be initialized, and gt stepping is the single point of
truth.

v3: Remove IS_STEP() (José)

v2: Rename stepping->step

Reviewed-by: José Roberto de Souza <jose.souza@intel.com>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/bb4275733fa390ea3dbf6f62794d55b616665230.1616764798.git.jani.nikula@intel.com
  • Loading branch information
Jani Nikula committed Mar 29, 2021
1 parent 7eb186b commit 439c8dc
Show file tree
Hide file tree
Showing 3 changed files with 29 additions and 9 deletions.
20 changes: 11 additions & 9 deletions drivers/gpu/drm/i915/i915_drv.h
Original file line number Diff line number Diff line change
Expand Up @@ -1269,6 +1269,17 @@ static inline struct drm_i915_private *pdev_to_i915(struct pci_dev *pdev)
#define IS_REVID(p, since, until) \
(INTEL_REVID(p) >= (since) && INTEL_REVID(p) <= (until))

#define INTEL_DISPLAY_STEP(__i915) (RUNTIME_INFO(__i915)->step.disp_stepping)
#define INTEL_GT_STEP(__i915) (RUNTIME_INFO(__i915)->step.gt_stepping)

#define IS_DISPLAY_STEP(__i915, since, until) \
(drm_WARN_ON(&(__i915)->drm, INTEL_DISPLAY_STEP(__i915) == STEP_NONE), \
INTEL_DISPLAY_STEP(__i915) >= (since) && INTEL_DISPLAY_STEP(__i915) <= (until))

#define IS_GT_STEP(__i915, since, until) \
(drm_WARN_ON(&(__i915)->drm, INTEL_GT_STEP(__i915) == STEP_NONE), \
INTEL_GT_STEP(__i915) >= (since) && INTEL_GT_STEP(__i915) <= (until))

static __always_inline unsigned int
__platform_mask_index(const struct intel_runtime_info *info,
enum intel_platform p)
Expand Down Expand Up @@ -1507,15 +1518,6 @@ enum {
#define IS_JSL_EHL_REVID(p, since, until) \
(IS_JSL_EHL(p) && IS_REVID(p, since, until))

enum {
STEP_A0,
STEP_A2,
STEP_B0,
STEP_B1,
STEP_C0,
STEP_D0,
};

static inline const struct i915_rev_steppings *
tgl_stepping_get(struct drm_i915_private *dev_priv)
{
Expand Down
4 changes: 4 additions & 0 deletions drivers/gpu/drm/i915/intel_device_info.h
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,8 @@

#include <uapi/drm/i915_drm.h>

#include "intel_step.h"

#include "display/intel_display.h"

#include "gt/intel_engine_types.h"
Expand Down Expand Up @@ -226,6 +228,8 @@ struct intel_runtime_info {
u8 num_scalers[I915_MAX_PIPES];

u32 rawclk_freq;

struct i915_rev_steppings step;
};

struct intel_driver_caps {
Expand Down
14 changes: 14 additions & 0 deletions drivers/gpu/drm/i915/intel_step.h
Original file line number Diff line number Diff line change
Expand Up @@ -22,4 +22,18 @@ extern const struct i915_rev_steppings tgl_uy_revid_step_tbl[TGL_UY_REVID_STEP_T
extern const struct i915_rev_steppings tgl_revid_step_tbl[TGL_REVID_STEP_TBL_SIZE];
extern const struct i915_rev_steppings adls_revid_step_tbl[ADLS_REVID_STEP_TBL_SIZE];

/*
* 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_A2,
STEP_B0,
STEP_B1,
STEP_C0,
STEP_D0,
};

#endif /* __INTEL_STEP_H__ */

0 comments on commit 439c8dc

Please sign in to comment.