From: Matt Roper <matthew.d.roper@intel.com> To: intel-gfx@lists.freedesktop.org Cc: Radhakrishna Sripada <radhakrishna.sripada@intel.com>, Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>, dri-devel@lists.freedesktop.org, Aravind Iddamsetty <aravind.iddamsetty@intel.com> Subject: [PATCH v3 00/14] i915: Add "standalone media" support for MTL Date: Tue, 6 Sep 2022 16:49:20 -0700 [thread overview] Message-ID: <20220906234934.3655440-1-matthew.d.roper@intel.com> (raw) Starting with MTL, media functionality has moved into a new, second GT at the hardware level. This new GT, referred to as "standalone media" in the spec, has its own GuC, power management/forcewake, etc. The general non-engine GT registers for standalone media start at 0x380000, but otherwise use the same MMIO offsets as the primary GT. Standalone media has a lot of similarity to the remote tiles present on platforms like xehpsdv and pvc, and our i915 implementation can share much of the general "multi GT" infrastructure between the two types of platforms. However there are a few notable differences we must deal with: - The 0x380000 offset only applies to the non-engine GT registers (which the specs refer to as "GSI" registers). The engine registers remain at their usual locations (e.g., 0x1C0000 for VCS0). - Unlike platforms with remote tiles, all interrupt handling for standalone media still happens via the primary GT. v2: - Added new patches to ensure each GT, not just the primary, is handled properly during various init/suspend/resume/teardown flows. (Daniele) - Simplified GSI offset handling and split it into its own patch. - Correct gt->irq_lock assignment for media GT. (Daniele) - Fix jump target for intel_root_gt_init_early() errors. (Daniele) v3: - Move intel_gt_definition struct to intel_gt_types.h. (Jani) - Drop gtdef->setup() and just switch() on type. (Jani) - Honor GSI offset during AUX table invalidation. (Aravind) - Drop intel_gt_tile_cleanup() through more intelligent use of DRM-managed actions. This also fixes the fault-injection failures reported by CI. Cc: Radhakrishna Sripada <radhakrishna.sripada@intel.com> Cc: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com> Cc: Aravind Iddamsetty <aravind.iddamsetty@intel.com> Cc: Jani Nikula <jani.nikula@linux.intel.com> Matt Roper (12): drm/i915: Move locking and unclaimed check into mmio_debug_{suspend,resume} drm/i915: Only hook up uncore->debug for primary uncore drm/i915: Use managed allocations for extra uncore objects drm/i915: Drop intel_gt_tile_cleanup() drm/i915: Prepare more multi-GT initialization drm/i915: Rename and expose common GT early init routine drm/i915: Use a DRM-managed action to release the PCI bridge device drm/i915: Initialize MMIO access for each GT drm/i915: Handle each GT on init/release and suspend/resume drm/i915/uncore: Add GSI offset to uncore drm/i915/mtl: Add gsi_offset when emitting aux table invalidation drm/i915/xelpmp: Expose media as another GT drm/i915/mtl: Use primary GT's irq lock for media GT drm/i915/mtl: Hook up interrupts for standalone media drivers/gpu/drm/i915/Makefile | 1 + drivers/gpu/drm/i915/gt/gen8_engine_cs.c | 15 ++- drivers/gpu/drm/i915/gt/gen8_engine_cs.h | 3 +- drivers/gpu/drm/i915/gt/intel_engine_cs.c | 10 +- drivers/gpu/drm/i915/gt/intel_gt.c | 108 +++++++++++++----- drivers/gpu/drm/i915/gt/intel_gt.h | 4 +- drivers/gpu/drm/i915/gt/intel_gt_irq.c | 35 ++++-- drivers/gpu/drm/i915/gt/intel_gt_pm_irq.c | 8 +- drivers/gpu/drm/i915/gt/intel_gt_regs.h | 10 ++ drivers/gpu/drm/i915/gt/intel_gt_types.h | 19 ++- drivers/gpu/drm/i915/gt/intel_lrc.c | 9 +- drivers/gpu/drm/i915/gt/intel_rps.c | 26 ++--- drivers/gpu/drm/i915/gt/intel_sa_media.c | 47 ++++++++ drivers/gpu/drm/i915/gt/intel_sa_media.h | 15 +++ drivers/gpu/drm/i915/gt/uc/intel_guc.c | 24 ++-- .../gpu/drm/i915/gt/uc/intel_guc_submission.c | 4 +- drivers/gpu/drm/i915/gt/uc/intel_uc.c | 4 +- drivers/gpu/drm/i915/i915_driver.c | 105 ++++++++++++----- drivers/gpu/drm/i915/i915_drv.h | 5 + drivers/gpu/drm/i915/i915_irq.c | 4 +- drivers/gpu/drm/i915/i915_pci.c | 14 +++ drivers/gpu/drm/i915/intel_device_info.h | 3 + drivers/gpu/drm/i915/intel_uncore.c | 92 +++++++++------ drivers/gpu/drm/i915/intel_uncore.h | 28 ++++- drivers/gpu/drm/i915/pxp/intel_pxp.c | 4 +- drivers/gpu/drm/i915/pxp/intel_pxp_debugfs.c | 4 +- drivers/gpu/drm/i915/pxp/intel_pxp_irq.c | 14 +-- drivers/gpu/drm/i915/pxp/intel_pxp_session.c | 4 +- .../gpu/drm/i915/selftests/mock_gem_device.c | 1 + 29 files changed, 449 insertions(+), 171 deletions(-) create mode 100644 drivers/gpu/drm/i915/gt/intel_sa_media.c create mode 100644 drivers/gpu/drm/i915/gt/intel_sa_media.h -- 2.37.2
WARNING: multiple messages have this Message-ID (diff)
From: Matt Roper <matthew.d.roper@intel.com> To: intel-gfx@lists.freedesktop.org Cc: dri-devel@lists.freedesktop.org Subject: [Intel-gfx] [PATCH v3 00/14] i915: Add "standalone media" support for MTL Date: Tue, 6 Sep 2022 16:49:20 -0700 [thread overview] Message-ID: <20220906234934.3655440-1-matthew.d.roper@intel.com> (raw) Starting with MTL, media functionality has moved into a new, second GT at the hardware level. This new GT, referred to as "standalone media" in the spec, has its own GuC, power management/forcewake, etc. The general non-engine GT registers for standalone media start at 0x380000, but otherwise use the same MMIO offsets as the primary GT. Standalone media has a lot of similarity to the remote tiles present on platforms like xehpsdv and pvc, and our i915 implementation can share much of the general "multi GT" infrastructure between the two types of platforms. However there are a few notable differences we must deal with: - The 0x380000 offset only applies to the non-engine GT registers (which the specs refer to as "GSI" registers). The engine registers remain at their usual locations (e.g., 0x1C0000 for VCS0). - Unlike platforms with remote tiles, all interrupt handling for standalone media still happens via the primary GT. v2: - Added new patches to ensure each GT, not just the primary, is handled properly during various init/suspend/resume/teardown flows. (Daniele) - Simplified GSI offset handling and split it into its own patch. - Correct gt->irq_lock assignment for media GT. (Daniele) - Fix jump target for intel_root_gt_init_early() errors. (Daniele) v3: - Move intel_gt_definition struct to intel_gt_types.h. (Jani) - Drop gtdef->setup() and just switch() on type. (Jani) - Honor GSI offset during AUX table invalidation. (Aravind) - Drop intel_gt_tile_cleanup() through more intelligent use of DRM-managed actions. This also fixes the fault-injection failures reported by CI. Cc: Radhakrishna Sripada <radhakrishna.sripada@intel.com> Cc: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com> Cc: Aravind Iddamsetty <aravind.iddamsetty@intel.com> Cc: Jani Nikula <jani.nikula@linux.intel.com> Matt Roper (12): drm/i915: Move locking and unclaimed check into mmio_debug_{suspend,resume} drm/i915: Only hook up uncore->debug for primary uncore drm/i915: Use managed allocations for extra uncore objects drm/i915: Drop intel_gt_tile_cleanup() drm/i915: Prepare more multi-GT initialization drm/i915: Rename and expose common GT early init routine drm/i915: Use a DRM-managed action to release the PCI bridge device drm/i915: Initialize MMIO access for each GT drm/i915: Handle each GT on init/release and suspend/resume drm/i915/uncore: Add GSI offset to uncore drm/i915/mtl: Add gsi_offset when emitting aux table invalidation drm/i915/xelpmp: Expose media as another GT drm/i915/mtl: Use primary GT's irq lock for media GT drm/i915/mtl: Hook up interrupts for standalone media drivers/gpu/drm/i915/Makefile | 1 + drivers/gpu/drm/i915/gt/gen8_engine_cs.c | 15 ++- drivers/gpu/drm/i915/gt/gen8_engine_cs.h | 3 +- drivers/gpu/drm/i915/gt/intel_engine_cs.c | 10 +- drivers/gpu/drm/i915/gt/intel_gt.c | 108 +++++++++++++----- drivers/gpu/drm/i915/gt/intel_gt.h | 4 +- drivers/gpu/drm/i915/gt/intel_gt_irq.c | 35 ++++-- drivers/gpu/drm/i915/gt/intel_gt_pm_irq.c | 8 +- drivers/gpu/drm/i915/gt/intel_gt_regs.h | 10 ++ drivers/gpu/drm/i915/gt/intel_gt_types.h | 19 ++- drivers/gpu/drm/i915/gt/intel_lrc.c | 9 +- drivers/gpu/drm/i915/gt/intel_rps.c | 26 ++--- drivers/gpu/drm/i915/gt/intel_sa_media.c | 47 ++++++++ drivers/gpu/drm/i915/gt/intel_sa_media.h | 15 +++ drivers/gpu/drm/i915/gt/uc/intel_guc.c | 24 ++-- .../gpu/drm/i915/gt/uc/intel_guc_submission.c | 4 +- drivers/gpu/drm/i915/gt/uc/intel_uc.c | 4 +- drivers/gpu/drm/i915/i915_driver.c | 105 ++++++++++++----- drivers/gpu/drm/i915/i915_drv.h | 5 + drivers/gpu/drm/i915/i915_irq.c | 4 +- drivers/gpu/drm/i915/i915_pci.c | 14 +++ drivers/gpu/drm/i915/intel_device_info.h | 3 + drivers/gpu/drm/i915/intel_uncore.c | 92 +++++++++------ drivers/gpu/drm/i915/intel_uncore.h | 28 ++++- drivers/gpu/drm/i915/pxp/intel_pxp.c | 4 +- drivers/gpu/drm/i915/pxp/intel_pxp_debugfs.c | 4 +- drivers/gpu/drm/i915/pxp/intel_pxp_irq.c | 14 +-- drivers/gpu/drm/i915/pxp/intel_pxp_session.c | 4 +- .../gpu/drm/i915/selftests/mock_gem_device.c | 1 + 29 files changed, 449 insertions(+), 171 deletions(-) create mode 100644 drivers/gpu/drm/i915/gt/intel_sa_media.c create mode 100644 drivers/gpu/drm/i915/gt/intel_sa_media.h -- 2.37.2
next reply other threads:[~2022-09-06 23:49 UTC|newest] Thread overview: 68+ messages / expand[flat|nested] mbox.gz Atom feed top 2022-09-06 23:49 Matt Roper [this message] 2022-09-06 23:49 ` [Intel-gfx] [PATCH v3 00/14] i915: Add "standalone media" support for MTL Matt Roper 2022-09-06 23:49 ` [PATCH v3 01/14] drm/i915: Move locking and unclaimed check into mmio_debug_{suspend, resume} Matt Roper 2022-09-06 23:49 ` [Intel-gfx] " Matt Roper 2022-09-06 23:49 ` [PATCH v3 02/14] drm/i915: Only hook up uncore->debug for primary uncore Matt Roper 2022-09-06 23:49 ` [Intel-gfx] " Matt Roper 2022-09-06 23:49 ` [PATCH v3 03/14] drm/i915: Use managed allocations for extra uncore objects Matt Roper 2022-09-06 23:49 ` [Intel-gfx] " Matt Roper 2022-09-06 23:49 ` [PATCH v3 04/14] drm/i915: Drop intel_gt_tile_cleanup() Matt Roper 2022-09-06 23:49 ` [Intel-gfx] " Matt Roper 2022-09-07 0:07 ` Lucas De Marchi 2022-09-07 0:07 ` [Intel-gfx] " Lucas De Marchi 2022-09-07 11:18 ` kernel test robot 2022-09-07 11:18 ` [Intel-gfx] " kernel test robot 2022-09-06 23:49 ` [PATCH v3 05/14] drm/i915: Prepare more multi-GT initialization Matt Roper 2022-09-06 23:49 ` [Intel-gfx] " Matt Roper 2022-09-08 16:19 ` Iddamsetty, Aravind 2022-09-08 16:19 ` [Intel-gfx] " Iddamsetty, Aravind 2022-09-06 23:49 ` [Intel-gfx] [PATCH v3 06/14] drm/i915: Rename and expose common GT early init routine Matt Roper 2022-09-06 23:49 ` Matt Roper 2022-09-06 23:49 ` [PATCH v3 07/14] drm/i915: Use a DRM-managed action to release the PCI bridge device Matt Roper 2022-09-06 23:49 ` [Intel-gfx] " Matt Roper 2022-09-09 20:57 ` Sripada, Radhakrishna 2022-09-09 20:57 ` [Intel-gfx] " Sripada, Radhakrishna 2022-09-06 23:49 ` [PATCH v3 08/14] drm/i915: Initialize MMIO access for each GT Matt Roper 2022-09-06 23:49 ` [Intel-gfx] " Matt Roper 2022-09-08 20:52 ` Ceraolo Spurio, Daniele 2022-09-08 20:52 ` [Intel-gfx] " Ceraolo Spurio, Daniele 2022-09-06 23:49 ` [PATCH v3 09/14] drm/i915: Handle each GT on init/release and suspend/resume Matt Roper 2022-09-06 23:49 ` [Intel-gfx] " Matt Roper 2022-09-08 20:55 ` Ceraolo Spurio, Daniele 2022-09-08 20:55 ` [Intel-gfx] " Ceraolo Spurio, Daniele 2022-09-06 23:49 ` [PATCH v3 10/14] drm/i915/uncore: Add GSI offset to uncore Matt Roper 2022-09-06 23:49 ` [Intel-gfx] " Matt Roper 2022-09-08 21:16 ` Ceraolo Spurio, Daniele 2022-09-08 21:16 ` [Intel-gfx] " Ceraolo Spurio, Daniele 2022-09-08 22:29 ` Matt Roper 2022-09-08 22:29 ` [Intel-gfx] " Matt Roper 2022-09-08 22:45 ` [PATCH v3.1 " Matt Roper 2022-09-08 22:45 ` [Intel-gfx] " Matt Roper 2022-09-08 22:53 ` Ceraolo Spurio, Daniele 2022-09-08 22:53 ` [Intel-gfx] " Ceraolo Spurio, Daniele 2022-09-06 23:49 ` [Intel-gfx] [PATCH v3 11/14] drm/i915/mtl: Add gsi_offset when emitting aux table invalidation Matt Roper 2022-09-06 23:49 ` Matt Roper 2022-09-07 16:16 ` Iddamsetty, Aravind 2022-09-07 16:16 ` [Intel-gfx] " Iddamsetty, Aravind 2022-09-06 23:49 ` [Intel-gfx] [PATCH v3 12/14] drm/i915/xelpmp: Expose media as another GT Matt Roper 2022-09-06 23:49 ` Matt Roper 2022-09-08 16:22 ` Iddamsetty, Aravind 2022-09-08 16:22 ` [Intel-gfx] " Iddamsetty, Aravind 2022-09-06 23:49 ` [PATCH v3 13/14] drm/i915/mtl: Use primary GT's irq lock for media GT Matt Roper 2022-09-06 23:49 ` [Intel-gfx] " Matt Roper 2022-09-08 21:20 ` Ceraolo Spurio, Daniele 2022-09-08 21:20 ` [Intel-gfx] " Ceraolo Spurio, Daniele 2022-09-06 23:49 ` [PATCH v3 14/14] drm/i915/mtl: Hook up interrupts for standalone media Matt Roper 2022-09-06 23:49 ` [Intel-gfx] " Matt Roper 2022-09-07 0:06 ` [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for i915: Add "standalone media" support for MTL (rev4) Patchwork 2022-09-07 0:06 ` [Intel-gfx] ✗ Fi.CI.SPARSE: " Patchwork 2022-09-07 0:28 ` [Intel-gfx] ✓ Fi.CI.BAT: success " Patchwork 2022-09-07 4:06 ` [Intel-gfx] ✗ Fi.CI.IGT: failure " Patchwork 2022-09-07 5:27 ` Matt Roper 2022-09-07 15:46 ` Vudum, Lakshminarayana 2022-09-07 15:27 ` [Intel-gfx] ✓ Fi.CI.IGT: success " Patchwork 2022-09-08 23:05 ` [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for i915: Add "standalone media" support for MTL (rev5) Patchwork 2022-09-08 23:05 ` [Intel-gfx] ✗ Fi.CI.SPARSE: " Patchwork 2022-09-08 23:16 ` [Intel-gfx] ✓ Fi.CI.BAT: success " Patchwork 2022-09-09 5:58 ` [Intel-gfx] ✗ Fi.CI.IGT: failure " Patchwork 2022-09-09 22:21 ` Matt Roper
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=20220906234934.3655440-1-matthew.d.roper@intel.com \ --to=matthew.d.roper@intel.com \ --cc=aravind.iddamsetty@intel.com \ --cc=daniele.ceraolospurio@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: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.