From: Matt Roper <matthew.d.roper@intel.com>
To: Radhakrishna Sripada <radhakrishna.sripada@intel.com>
Cc: intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org
Subject: Re: [PATCH v4.1] drm/i915: Move display and media IP version to runtime info
Date: Thu, 8 Sep 2022 10:21:23 -0700 [thread overview]
Message-ID: <Yxokk5v2W9rK+0i+@mdroper-desk1.amr.corp.intel.com> (raw)
In-Reply-To: <20220902221054.173524-1-radhakrishna.sripada@intel.com>
On Fri, Sep 02, 2022 at 03:10:54PM -0700, Radhakrishna Sripada wrote:
> 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)
> v4.1:
> - Fix build error in mock_gem_device.c
>
> 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>
> ---
> drivers/gpu/drm/i915/i915_drv.h | 14 +++----
> drivers/gpu/drm/i915/i915_pci.c | 38 +++++++++----------
> drivers/gpu/drm/i915/intel_device_info.c | 28 +++++++++-----
> drivers/gpu/drm/i915/intel_device_info.h | 15 +++++---
> .../gpu/drm/i915/selftests/mock_gem_device.c | 2 +-
> 5 files changed, 54 insertions(+), 43 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
> index c9cca165bf5d..f85a470397a5 100644
> --- a/drivers/gpu/drm/i915/i915_drv.h
> +++ b/drivers/gpu/drm/i915/i915_drv.h
> @@ -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))
>
> diff --git a/drivers/gpu/drm/i915/i915_pci.c b/drivers/gpu/drm/i915/i915_pci.c
> index 26b25d9434d6..f6aaf938c53c 100644
> --- a/drivers/gpu/drm/i915/i915_pci.c
> +++ b/drivers/gpu/drm/i915/i915_pci.c
> @@ -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 = { \
> @@ -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,
> };
> @@ -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,
> @@ -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, \
> @@ -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, \
> @@ -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 = {
> @@ -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, \
> @@ -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,
> @@ -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)
>
> @@ -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,
> @@ -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);
> }
> diff --git a/drivers/gpu/drm/i915/intel_device_info.c b/drivers/gpu/drm/i915/intel_device_info.c
> index 0a1f97b35f2b..56f19683dd55 100644
> --- a/drivers/gpu/drm/i915/intel_device_info.c
> +++ b/drivers/gpu/drm/i915/intel_device_info.c
> @@ -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);
> diff --git a/drivers/gpu/drm/i915/intel_device_info.h b/drivers/gpu/drm/i915/intel_device_info.h
> index 6904ad03ca19..d36cf25f1d5f 100644
> --- a/drivers/gpu/drm/i915/intel_device_info.h
> +++ b/drivers/gpu/drm/i915/intel_device_info.h
> @@ -200,7 +200,15 @@ struct ip_version {
> };
>
> struct intel_runtime_info {
> - struct ip_version graphics;
> + struct {
> + struct ip_version version;
Bikeshed: It might be more natural to name these inner structures 'ip'
rather than 'version' so that elsewhere in the code we'll be dealing
with things like runtime->graphics.ip.ver and runtime->graphics.ip.rel.
Up to you though. Either way,
Reviewed-by: Matt Roper <matthew.d.roper@intel.com>
> + } 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
> @@ -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 */
> @@ -259,9 +265,6 @@ struct intel_device_info {
> #undef DEFINE_FLAG
>
> struct {
> - u8 ver;
> - u8 rel;
> -
> u8 abox_mask;
>
> struct {
> diff --git a/drivers/gpu/drm/i915/selftests/mock_gem_device.c b/drivers/gpu/drm/i915/selftests/mock_gem_device.c
> index f5904e659ef2..869b952c13a0 100644
> --- a/drivers/gpu/drm/i915/selftests/mock_gem_device.c
> +++ b/drivers/gpu/drm/i915/selftests/mock_gem_device.c
> @@ -172,7 +172,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);
>
> - RUNTIME_INFO(i915)->graphics.ver = -1;
> + RUNTIME_INFO(i915)->graphics.version.ver = -1;
>
> RUNTIME_INFO(i915)->page_sizes =
> I915_GTT_PAGE_SIZE_4K |
> --
> 2.34.1
>
--
Matt Roper
Graphics Software Engineer
VTT-OSGC Platform Enablement
Intel Corporation
next prev parent reply other threads:[~2022-09-08 17:21 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-09-02 6:03 [PATCH v4 00/11] Initial Meteorlake Support Radhakrishna Sripada
2022-09-02 6:03 ` [PATCH v4 01/11] drm/i915: Move display and media IP version to runtime info Radhakrishna Sripada
2022-09-02 16:49 ` kernel test robot
2022-09-02 22:10 ` [PATCH v4.1] " Radhakrishna Sripada
2022-09-08 17:21 ` Matt Roper [this message]
2022-09-02 6:03 ` [PATCH v4 02/11] drm/i915: Read graphics/media/display arch version from hw Radhakrishna Sripada
2022-09-07 20:49 ` [Intel-gfx] " Lucas De Marchi
2022-09-07 22:13 ` Matt Roper
2022-09-07 22:21 ` Lucas De Marchi
2022-09-07 22:38 ` Sripada, Radhakrishna
2022-09-07 23:32 ` [PATCH v4.1] " Radhakrishna Sripada
2022-09-02 6:03 ` [PATCH v4 03/11] drm/i915: Parse and set stepping for platforms with GMD Radhakrishna Sripada
2022-09-08 17:42 ` [Intel-gfx] " Matt Roper
2022-09-02 6:03 ` [PATCH v4 04/11] drm/i915/mtl: Define engine context layouts Radhakrishna Sripada
2022-09-06 12:16 ` Balasubramani Vivekanandan
2022-09-07 23:33 ` [PATCH v4.1] " Radhakrishna Sripada
2022-09-08 18:00 ` [Intel-gfx] " Matt Roper
2022-09-02 6:03 ` [PATCH v4 05/11] drm/i915/mtl: Add gmbus and gpio support Radhakrishna Sripada
2022-09-08 13:05 ` [Intel-gfx] " Balasubramani Vivekanandan
2022-09-08 18:02 ` Matt Roper
2022-09-02 6:03 ` [PATCH v4 06/11] drm/i915/mtl: Add display power wells Radhakrishna Sripada
2022-09-08 18:07 ` Matt Roper
2022-09-08 18:11 ` Matt Roper
2022-09-02 6:03 ` [PATCH v4 07/11] drm/i915/mtl: Add DP AUX support on TypeC ports Radhakrishna Sripada
2022-09-08 18:13 ` Matt Roper
2022-09-02 6:03 ` [PATCH v4 08/11] drm/i915/mtl: Obtain SAGV values from MMIO instead of GT pcode mailbox Radhakrishna Sripada
2022-09-02 6:03 ` [PATCH v4 09/11] drm/i915/mtl: Update MBUS_DBOX credits Radhakrishna Sripada
2022-09-08 20:02 ` Matt Roper
2022-09-02 6:03 ` [PATCH v4 10/11] drm/i915/mtl: Update CHICKEN_TRANS* register addresses Radhakrishna Sripada
2022-09-08 20:30 ` Matt Roper
2022-09-02 6:03 ` [PATCH v4 11/11] drm/i915/mtl: Do not update GV point, mask value Radhakrishna Sripada
2022-09-09 17:14 ` [Intel-gfx] " Balasubramani Vivekanandan
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=Yxokk5v2W9rK+0i+@mdroper-desk1.amr.corp.intel.com \
--to=matthew.d.roper@intel.com \
--cc=dri-devel@lists.freedesktop.org \
--cc=intel-gfx@lists.freedesktop.org \
--cc=radhakrishna.sripada@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).