]> git.itanic.dy.fi Git - linux-stable/commitdiff
drm/i915: Add struct to hold IP version
authorJosé Roberto de Souza <jose.souza@intel.com>
Wed, 20 Oct 2021 00:23:51 +0000 (17:23 -0700)
committerJosé Roberto de Souza <jose.souza@intel.com>
Tue, 2 Nov 2021 20:05:31 +0000 (13:05 -0700)
Adding a structure to standardize access to IP versioning as future
platforms will have this information populated at runtime.

The constant platform display version is not using this new struct but
the runtime variant will definitely use it.

Cc: Radhakrishna Sripada <radhakrishna.sripada@intel.com>
Cc: Matt Atwood <matthew.s.atwood@intel.com>
Signed-off-by: José Roberto de Souza <jose.souza@intel.com>
Reviewed-by: Caz Yokoyama <caz.yokoyama@intel.com>
Reviewed-by: Lucas De Marchi <lucas.demarchi@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20211020002353.193893-1-jose.souza@intel.com
drivers/gpu/drm/i915/i915_drv.c
drivers/gpu/drm/i915/i915_drv.h
drivers/gpu/drm/i915/i915_pci.c
drivers/gpu/drm/i915/intel_device_info.c
drivers/gpu/drm/i915/intel_device_info.h
drivers/gpu/drm/i915/selftests/mock_gem_device.c

index b18a250e5d2e7523e35714536f1e98c870039819..066116bc0a90749c75fb0e13e5b9f61d1fd440b1 100644 (file)
@@ -807,7 +807,7 @@ int i915_driver_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
                return PTR_ERR(i915);
 
        /* Disable nuclear pageflip by default on pre-ILK */
-       if (!i915->params.nuclear_pageflip && match_info->graphics_ver < 5)
+       if (!i915->params.nuclear_pageflip && match_info->graphics.ver < 5)
                i915->drm.driver_features &= ~DRIVER_ATOMIC;
 
        /*
index 2321f895cdea7b9f8810264604c4592e1762a5ae..5338de64fbe65ffb791c00666c8d7bf128100b6e 100644 (file)
@@ -1325,15 +1325,15 @@ static inline struct drm_i915_private *pdev_to_i915(struct pci_dev *pdev)
 
 #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 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 MEDIA_VER(i915)                        (INTEL_INFO(i915)->media.ver)
+#define MEDIA_VER_FULL(i915)           IP_VER(INTEL_INFO(i915)->media.arch, \
+                                              INTEL_INFO(i915)->media.rel)
 #define IS_MEDIA_VER(i915, from, until) \
        (MEDIA_VER(i915) >= (from) && MEDIA_VER(i915) <= (until))
 
index 169837de395d31bb7dbd15350f7fe3759efb0782..5e6795853dc312392e4f64e2e9eb6eaaaf351e8b 100644 (file)
@@ -32,8 +32,8 @@
 
 #define PLATFORM(x) .platform = (x)
 #define GEN(x) \
-       .graphics_ver = (x), \
-       .media_ver = (x), \
+       .graphics.ver = (x), \
+       .media.ver = (x), \
        .display.ver = (x)
 
 #define I845_PIPE_OFFSETS \
@@ -899,7 +899,7 @@ static const struct intel_device_info rkl_info = {
 static const struct intel_device_info dg1_info = {
        GEN12_FEATURES,
        DGFX_FEATURES,
-       .graphics_rel = 10,
+       .graphics.rel = 10,
        PLATFORM(INTEL_DG1),
        .pipe_mask = BIT(PIPE_A) | BIT(PIPE_B) | BIT(PIPE_C) | BIT(PIPE_D),
        .require_force_probe = 1,
@@ -986,8 +986,8 @@ static const struct intel_device_info adl_p_info = {
                      I915_GTT_PAGE_SIZE_2M
 
 #define XE_HP_FEATURES \
-       .graphics_ver = 12, \
-       .graphics_rel = 50, \
+       .graphics.ver = 12, \
+       .graphics.rel = 50, \
        XE_HP_PAGE_SIZES, \
        .dma_mask_size = 46, \
        .has_64bit_reloc = 1, \
@@ -1005,8 +1005,8 @@ static const struct intel_device_info adl_p_info = {
        .ppgtt_type = INTEL_PPGTT_FULL
 
 #define XE_HPM_FEATURES \
-       .media_ver = 12, \
-       .media_rel = 50
+       .media.ver = 12, \
+       .media.rel = 50
 
 __maybe_unused
 static const struct intel_device_info xehpsdv_info = {
@@ -1030,8 +1030,8 @@ static const struct intel_device_info dg2_info = {
        XE_HPM_FEATURES,
        XE_LPD_FEATURES,
        DGFX_FEATURES,
-       .graphics_rel = 55,
-       .media_rel = 55,
+       .graphics.rel = 55,
+       .media.rel = 55,
        PLATFORM(INTEL_DG2),
        .platform_engine_mask =
                BIT(RCS0) | BIT(BCS0) |
index 305facedd2841cdeb7baf0f84f6e75afc80bef38..6e6b317bc33ce9186ea31323f0b29141243739dd 100644 (file)
@@ -97,17 +97,22 @@ static const char *iommu_name(void)
 void intel_device_info_print_static(const struct intel_device_info *info,
                                    struct drm_printer *p)
 {
-       if (info->graphics_rel)
-               drm_printf(p, "graphics version: %u.%02u\n", info->graphics_ver, info->graphics_rel);
+       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);
+               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);
+       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, "media version: %u\n", info->media.ver);
+
+       if (info->display.rel)
+               drm_printf(p, "display version: %u.%02u\n", info->display.ver, info->display.rel);
+       else
+               drm_printf(p, "display version: %u\n", info->display.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());
        drm_printf(p, "memory-regions: %x\n", info->memory_regions);
index 8e6f48d1eb7bcb4402d4b777d5c32076fb206078..669f0d26c3c382ce4d4f2ec5d5c59cdb81b567dc 100644 (file)
@@ -166,11 +166,14 @@ enum intel_ppgtt_type {
        func(overlay_needs_physical); \
        func(supports_tv);
 
+struct ip_version {
+       u8 ver;
+       u8 rel;
+};
+
 struct intel_device_info {
-       u8 graphics_ver;
-       u8 graphics_rel;
-       u8 media_ver;
-       u8 media_rel;
+       struct ip_version graphics;
+       struct ip_version media;
 
        intel_engine_mask_t platform_engine_mask; /* Engines supported by the HW */
 
@@ -200,6 +203,7 @@ struct intel_device_info {
 
        struct {
                u8 ver;
+               u8 rel;
 
 #define DEFINE_FLAG(name) u8 name:1
                DEV_INFO_DISPLAY_FOR_EACH_FLAG(DEFINE_FLAG);
index 4f818014688817bda070a56cddcc1ab47adf0f80..9ab3f284d1dd9ede421b36b249d53274812f799a 100644 (file)
@@ -165,7 +165,7 @@ struct drm_i915_private *mock_gem_device(void)
        /* Using the global GTT may ask questions about KMS users, so prepare */
        drm_mode_config_init(&i915->drm);
 
-       mkwrite_device_info(i915)->graphics_ver = -1;
+       mkwrite_device_info(i915)->graphics.ver = -1;
 
        mkwrite_device_info(i915)->page_sizes =
                I915_GTT_PAGE_SIZE_4K |