Skip to content

Commit

Permalink
drm/i915: Move display and media IP version to runtime info
Browse files Browse the repository at this point in the history
Future platforms can read the IP version from a register and the
IP version numbers need not be hard coded in device info. Move the
ip version for media and display to runtime info.

On platforms where hard coding of IP version is required, update
the IP version in __runtime under device_info.

v2:
 - Avoid name collision for ip versions(Jani)

Suggested-by: Jani Nikula <jani.nikula@intel.com>
Cc: Matt Roper <matthew.d.roper@intel.com>
Signed-off-by: Radhakrishna Sripada <radhakrishna.sripada@intel.com>
  • Loading branch information
rkinvictus authored and intel-lab-lkp committed Sep 2, 2022
1 parent deda08d commit 159b139
Show file tree
Hide file tree
Showing 4 changed files with 53 additions and 42 deletions.
14 changes: 7 additions & 7 deletions drivers/gpu/drm/i915/i915_drv.h
Expand Up @@ -469,19 +469,19 @@ static inline struct intel_gt *to_gt(struct drm_i915_private *i915)

#define IP_VER(ver, rel) ((ver) << 8 | (rel))

#define GRAPHICS_VER(i915) (RUNTIME_INFO(i915)->graphics.ver)
#define GRAPHICS_VER_FULL(i915) IP_VER(RUNTIME_INFO(i915)->graphics.ver, \
RUNTIME_INFO(i915)->graphics.rel)
#define GRAPHICS_VER(i915) (RUNTIME_INFO(i915)->graphics.version.ver)
#define GRAPHICS_VER_FULL(i915) IP_VER(RUNTIME_INFO(i915)->graphics.version.ver, \
RUNTIME_INFO(i915)->graphics.version.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) (RUNTIME_INFO(i915)->media.version.ver)
#define MEDIA_VER_FULL(i915) IP_VER(RUNTIME_INFO(i915)->media.version.ver, \
RUNTIME_INFO(i915)->media.version.rel)
#define IS_MEDIA_VER(i915, from, until) \
(MEDIA_VER(i915) >= (from) && MEDIA_VER(i915) <= (until))

#define DISPLAY_VER(i915) (INTEL_INFO(i915)->display.ver)
#define DISPLAY_VER(i915) (RUNTIME_INFO(i915)->display.version.ver)
#define IS_DISPLAY_VER(i915, from, until) \
(DISPLAY_VER(i915) >= (from) && DISPLAY_VER(i915) <= (until))

Expand Down
38 changes: 19 additions & 19 deletions drivers/gpu/drm/i915/i915_pci.c
Expand Up @@ -34,9 +34,9 @@

#define PLATFORM(x) .platform = (x)
#define GEN(x) \
.__runtime.graphics.ver = (x), \
.media.ver = (x), \
.display.ver = (x)
.__runtime.graphics.version.ver = (x), \
.__runtime.media.version.ver = (x), \
.__runtime.display.version.ver = (x)

#define I845_PIPE_OFFSETS \
.display.pipe_offsets = { \
Expand Down Expand Up @@ -740,7 +740,7 @@ static const struct intel_device_info bxt_info = {
static const struct intel_device_info glk_info = {
GEN9_LP_FEATURES,
PLATFORM(INTEL_GEMINILAKE),
.display.ver = 10,
.__runtime.display.version.ver = 10,
.display.dbuf.size = 1024 - 4, /* 4 blocks for bypass path allocation */
GLK_COLORS,
};
Expand Down Expand Up @@ -919,7 +919,7 @@ static const struct intel_device_info rkl_info = {
static const struct intel_device_info dg1_info = {
GEN12_FEATURES,
DGFX_FEATURES,
.__runtime.graphics.rel = 10,
.__runtime.graphics.version.rel = 10,
PLATFORM(INTEL_DG1),
.__runtime.pipe_mask = BIT(PIPE_A) | BIT(PIPE_B) | BIT(PIPE_C) | BIT(PIPE_D),
.require_force_probe = 1,
Expand Down Expand Up @@ -962,7 +962,7 @@ static const struct intel_device_info adl_s_info = {
.display.has_hotplug = 1, \
.display.has_ipc = 1, \
.display.has_psr = 1, \
.display.ver = 13, \
.__runtime.display.version.ver = 13, \
.__runtime.pipe_mask = BIT(PIPE_A) | BIT(PIPE_B) | BIT(PIPE_C) | BIT(PIPE_D), \
.display.pipe_offsets = { \
[TRANSCODER_A] = PIPE_A_OFFSET, \
Expand Down Expand Up @@ -1006,8 +1006,8 @@ static const struct intel_device_info adl_p_info = {
I915_GTT_PAGE_SIZE_2M

#define XE_HP_FEATURES \
.__runtime.graphics.ver = 12, \
.__runtime.graphics.rel = 50, \
.__runtime.graphics.version.ver = 12, \
.__runtime.graphics.version.rel = 50, \
XE_HP_PAGE_SIZES, \
.dma_mask_size = 46, \
.has_3d_pipeline = 1, \
Expand All @@ -1027,8 +1027,8 @@ static const struct intel_device_info adl_p_info = {
.__runtime.ppgtt_type = INTEL_PPGTT_FULL

#define XE_HPM_FEATURES \
.media.ver = 12, \
.media.rel = 50
.__runtime.media.version.ver = 12, \
.__runtime.media.version.rel = 50

__maybe_unused
static const struct intel_device_info xehpsdv_info = {
Expand All @@ -1053,8 +1053,8 @@ static const struct intel_device_info xehpsdv_info = {
XE_HP_FEATURES, \
XE_HPM_FEATURES, \
DGFX_FEATURES, \
.__runtime.graphics.rel = 55, \
.media.rel = 55, \
.__runtime.graphics.version.rel = 55, \
.__runtime.media.version.rel = 55, \
PLATFORM(INTEL_DG2), \
.has_4tile = 1, \
.has_64k_pages = 1, \
Expand Down Expand Up @@ -1097,8 +1097,8 @@ static const struct intel_device_info pvc_info = {
XE_HPC_FEATURES,
XE_HPM_FEATURES,
DGFX_FEATURES,
.__runtime.graphics.rel = 60,
.media.rel = 60,
.__runtime.graphics.version.rel = 60,
.__runtime.media.version.rel = 60,
PLATFORM(INTEL_PONTEVECCHIO),
.display = { 0 },
.has_flat_ccs = 0,
Expand All @@ -1111,7 +1111,7 @@ static const struct intel_device_info pvc_info = {

#define XE_LPDP_FEATURES \
XE_LPD_FEATURES, \
.display.ver = 14, \
.__runtime.display.version.ver = 14, \
.display.has_cdclk_crawl = 1, \
.__runtime.fbc_mask = BIT(INTEL_FBC_A) | BIT(INTEL_FBC_B)

Expand All @@ -1123,9 +1123,9 @@ static const struct intel_device_info mtl_info = {
* Real graphics IP version will be obtained from hardware GMD_ID
* register. Value provided here is just for sanity checking.
*/
.__runtime.graphics.ver = 12,
.__runtime.graphics.rel = 70,
.media.ver = 13,
.__runtime.graphics.version.ver = 12,
.__runtime.graphics.version.rel = 70,
.__runtime.media.version.ver = 13,
PLATFORM(INTEL_METEORLAKE),
.display.has_modular_fia = 1,
.has_flat_ccs = 0,
Expand Down Expand Up @@ -1281,7 +1281,7 @@ bool i915_pci_resource_valid(struct pci_dev *pdev, int bar)

static bool intel_mmio_bar_valid(struct pci_dev *pdev, struct intel_device_info *intel_info)
{
int gttmmaddr_bar = intel_info->__runtime.graphics.ver == 2 ? GEN2_GTTMMADR_BAR : GTTMMADR_BAR;
int gttmmaddr_bar = intel_info->__runtime.graphics.version.ver == 2 ? GEN2_GTTMMADR_BAR : GTTMMADR_BAR;

return i915_pci_resource_valid(pdev, gttmmaddr_bar);
}
Expand Down
28 changes: 18 additions & 10 deletions drivers/gpu/drm/i915/intel_device_info.c
Expand Up @@ -92,21 +92,29 @@ void intel_device_info_print(const struct intel_device_info *info,
const struct intel_runtime_info *runtime,
struct drm_printer *p)
{
if (runtime->graphics.rel)
drm_printf(p, "graphics version: %u.%02u\n", runtime->graphics.ver,
runtime->graphics.rel);
if (runtime->graphics.version.rel)
drm_printf(p, "graphics version: %u.%02u\n",
runtime->graphics.version.ver,
runtime->graphics.version.rel);
else
drm_printf(p, "graphics version: %u\n", runtime->graphics.ver);
drm_printf(p, "graphics version: %u\n",
runtime->graphics.version.ver);

if (info->media.rel)
drm_printf(p, "media version: %u.%02u\n", info->media.ver, info->media.rel);
if (runtime->media.version.rel)
drm_printf(p, "media version: %u.%02u\n",
runtime->media.version.ver,
runtime->media.version.rel);
else
drm_printf(p, "media version: %u\n", info->media.ver);
drm_printf(p, "media version: %u\n",
runtime->media.version.ver);

if (info->display.rel)
drm_printf(p, "display version: %u.%02u\n", info->display.ver, info->display.rel);
if (runtime->display.version.rel)
drm_printf(p, "display version: %u.%02u\n",
runtime->display.version.ver,
runtime->display.version.rel);
else
drm_printf(p, "display version: %u\n", info->display.ver);
drm_printf(p, "display version: %u\n",
runtime->display.version.ver);

drm_printf(p, "gt: %d\n", info->gt);
drm_printf(p, "memory-regions: %x\n", runtime->memory_regions);
Expand Down
15 changes: 9 additions & 6 deletions drivers/gpu/drm/i915/intel_device_info.h
Expand Up @@ -200,7 +200,15 @@ struct ip_version {
};

struct intel_runtime_info {
struct ip_version graphics;
struct {
struct ip_version version;
} graphics;
struct {
struct ip_version version;
} media;
struct {
struct ip_version version;
} display;

/*
* Platform mask is used for optimizing or-ed IS_PLATFORM calls into
Expand Down Expand Up @@ -246,8 +254,6 @@ struct intel_runtime_info {
};

struct intel_device_info {
struct ip_version media;

enum intel_platform platform;

unsigned int dma_mask_size; /* available DMA address bits */
Expand All @@ -259,9 +265,6 @@ struct intel_device_info {
#undef DEFINE_FLAG

struct {
u8 ver;
u8 rel;

u8 abox_mask;

struct {
Expand Down

0 comments on commit 159b139

Please sign in to comment.