drm/i915: Add release id version
Besides the arch version returned by GRAPHICS_VER(), new platforms contain a "release id" to make clear the difference from one platform to another. The release id number is not formally defined by hardware until future platforms that will expose it via a new GMD_ID register. For the platforms we support before that register becomes available we will set the values in software and we can set them as we please. So the plan is to set them so we can group different features under a single GRAPHICS_VER_FULL() check. After GMD_ID is used, the usefulness of a "full version check" will be greatly reduced and will be mostly used for deciding workarounds and a few code paths. So it makes sense to keep it as a separate field from graphics_ver. Also, as a platform with `release == n` may be closer feature-wise to `n - 2` than to `n - 1`, use the word "release" rather than the more common "minor" for this This is a mix of 2 independent changes: one by me and the other by Matt Roper. v2: - Reword commit message to make it clearer why we don't call it "minor" (Matt Roper and Tvrtko) - Rename variables s/*_ver_release/*_rel/ and print them in a single line formatted as {ver}.{rel:2} (Jani and Matt Roper) Cc: Matt Roper <matthew.d.roper@intel.com> Signed-off-by: Lucas De Marchi <lucas.demarchi@intel.com> Signed-off-by: Matt Roper <matthew.d.roper@intel.com> Reviewed-by: Matt Roper <matthew.d.roper@intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20210707235921.2416911-2-lucas.demarchi@intel.com
This commit is contained in:
Родитель
0f9b145a0a
Коммит
ca6374e267
|
@ -1241,11 +1241,17 @@ static inline struct drm_i915_private *pdev_to_i915(struct pci_dev *pdev)
|
|||
|
||||
#define INTEL_DEVID(dev_priv) (RUNTIME_INFO(dev_priv)->device_id)
|
||||
|
||||
#define IP_VER(ver, rel) ((ver) << 8 | (rel))
|
||||
|
||||
#define GRAPHICS_VER(i915) (INTEL_INFO(i915)->graphics_ver)
|
||||
#define GRAPHICS_VER_FULL(i915) IP_VER(INTEL_INFO(i915)->graphics_ver, \
|
||||
INTEL_INFO(i915)->graphics_rel)
|
||||
#define IS_GRAPHICS_VER(i915, from, until) \
|
||||
(GRAPHICS_VER(i915) >= (from) && GRAPHICS_VER(i915) <= (until))
|
||||
|
||||
#define MEDIA_VER(i915) (INTEL_INFO(i915)->media_ver)
|
||||
#define MEDIA_VER_FULL(i915) IP_VER(INTEL_INFO(i915)->media_ver, \
|
||||
INTEL_INFO(i915)->media_rel)
|
||||
#define IS_MEDIA_VER(i915, from, until) \
|
||||
(MEDIA_VER(i915) >= (from) && MEDIA_VER(i915) <= (until))
|
||||
|
||||
|
|
|
@ -96,8 +96,16 @@ static const char *iommu_name(void)
|
|||
void intel_device_info_print_static(const struct intel_device_info *info,
|
||||
struct drm_printer *p)
|
||||
{
|
||||
drm_printf(p, "graphics version: %u\n", info->graphics_ver);
|
||||
drm_printf(p, "media version: %u\n", info->media_ver);
|
||||
if (info->graphics_rel)
|
||||
drm_printf(p, "graphics version: %u.%02u\n", info->graphics_ver, info->graphics_rel);
|
||||
else
|
||||
drm_printf(p, "graphics version: %u\n", info->graphics_ver);
|
||||
|
||||
if (info->media_rel)
|
||||
drm_printf(p, "media version: %u.%02u\n", info->media_ver, info->media_rel);
|
||||
else
|
||||
drm_printf(p, "media version: %u\n", info->media_ver);
|
||||
|
||||
drm_printf(p, "display version: %u\n", info->display.ver);
|
||||
drm_printf(p, "gt: %d\n", info->gt);
|
||||
drm_printf(p, "iommu: %s\n", iommu_name());
|
||||
|
|
|
@ -163,7 +163,9 @@ enum intel_ppgtt_type {
|
|||
|
||||
struct intel_device_info {
|
||||
u8 graphics_ver;
|
||||
u8 graphics_rel;
|
||||
u8 media_ver;
|
||||
u8 media_rel;
|
||||
|
||||
u8 gt; /* GT number, 0 if undefined */
|
||||
intel_engine_mask_t platform_engine_mask; /* Engines supported by the HW */
|
||||
|
|
Загрузка…
Ссылка в новой задаче