From: Matt Roper <matthew.d.roper@intel.com> To: intel-gfx@lists.freedesktop.org Cc: dri-devel@lists.freedesktop.org Subject: [PATCH v3 04/14] drm/i915: Drop intel_gt_tile_cleanup() Date: Tue, 6 Sep 2022 16:49:24 -0700 [thread overview] Message-ID: <20220906234934.3655440-5-matthew.d.roper@intel.com> (raw) In-Reply-To: <20220906234934.3655440-1-matthew.d.roper@intel.com> Unmapping of the MMIO range can be done as a DRM-managed action, which will take care of the unmapping on device teardown and error paths. This will also ensure proper ordering with respect to other DRM-managed actions that we'll be using to clean up non-primary GTs in upcoming patches. We have not yet enabled any non-root GTs in the driver yet, so the kfree() of the GT structure is effectively dead code. When we do start enabling non-root GTs in upcoming patches, those are going to be using DRM-managed allocations tied to the device lifetime, so we don't need to explicitly free them (and kfree would be incorrect anyway). Signed-off-by: Matt Roper <matthew.d.roper@intel.com> --- drivers/gpu/drm/i915/gt/intel_gt.c | 13 +------------ drivers/gpu/drm/i915/intel_uncore.c | 13 +++++++------ 2 files changed, 8 insertions(+), 18 deletions(-) diff --git a/drivers/gpu/drm/i915/gt/intel_gt.c b/drivers/gpu/drm/i915/gt/intel_gt.c index cf7aab7adb30..663a4798fb2e 100644 --- a/drivers/gpu/drm/i915/gt/intel_gt.c +++ b/drivers/gpu/drm/i915/gt/intel_gt.c @@ -803,15 +803,6 @@ static int intel_gt_tile_setup(struct intel_gt *gt, phys_addr_t phys_addr) return 0; } -static void -intel_gt_tile_cleanup(struct intel_gt *gt) -{ - intel_uncore_cleanup_mmio(gt->uncore); - - if (!gt_is_root(gt)) - kfree(gt); -} - int intel_gt_probe_all(struct drm_i915_private *i915) { struct pci_dev *pdev = to_pci_dev(i915->drm.dev); @@ -858,10 +849,8 @@ void intel_gt_release_all(struct drm_i915_private *i915) struct intel_gt *gt; unsigned int id; - for_each_gt(gt, i915, id) { - intel_gt_tile_cleanup(gt); + for_each_gt(gt, i915, id) i915->gt[id] = NULL; - } } void intel_gt_info_print(const struct intel_gt_info *info, diff --git a/drivers/gpu/drm/i915/intel_uncore.c b/drivers/gpu/drm/i915/intel_uncore.c index 6841f76533f9..2a32f8a65f34 100644 --- a/drivers/gpu/drm/i915/intel_uncore.c +++ b/drivers/gpu/drm/i915/intel_uncore.c @@ -21,6 +21,7 @@ * IN THE SOFTWARE. */ +#include <drm/drm_managed.h> #include <linux/pm_runtime.h> #include "gt/intel_engine_regs.h" @@ -2232,6 +2233,11 @@ static int i915_pmic_bus_access_notifier(struct notifier_block *nb, return NOTIFY_OK; } +static void uncore_unmap_mmio(struct drm_device *drm, void *regs) +{ + iounmap(regs); +} + int intel_uncore_setup_mmio(struct intel_uncore *uncore, phys_addr_t phys_addr) { struct drm_i915_private *i915 = uncore->i915; @@ -2260,12 +2266,7 @@ int intel_uncore_setup_mmio(struct intel_uncore *uncore, phys_addr_t phys_addr) return -EIO; } - return 0; -} - -void intel_uncore_cleanup_mmio(struct intel_uncore *uncore) -{ - iounmap(uncore->regs); + return drmm_add_action_or_reset(&i915->drm, uncore_unmap_mmio, uncore->regs); } void intel_uncore_init_early(struct intel_uncore *uncore, -- 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 04/14] drm/i915: Drop intel_gt_tile_cleanup() Date: Tue, 6 Sep 2022 16:49:24 -0700 [thread overview] Message-ID: <20220906234934.3655440-5-matthew.d.roper@intel.com> (raw) In-Reply-To: <20220906234934.3655440-1-matthew.d.roper@intel.com> Unmapping of the MMIO range can be done as a DRM-managed action, which will take care of the unmapping on device teardown and error paths. This will also ensure proper ordering with respect to other DRM-managed actions that we'll be using to clean up non-primary GTs in upcoming patches. We have not yet enabled any non-root GTs in the driver yet, so the kfree() of the GT structure is effectively dead code. When we do start enabling non-root GTs in upcoming patches, those are going to be using DRM-managed allocations tied to the device lifetime, so we don't need to explicitly free them (and kfree would be incorrect anyway). Signed-off-by: Matt Roper <matthew.d.roper@intel.com> --- drivers/gpu/drm/i915/gt/intel_gt.c | 13 +------------ drivers/gpu/drm/i915/intel_uncore.c | 13 +++++++------ 2 files changed, 8 insertions(+), 18 deletions(-) diff --git a/drivers/gpu/drm/i915/gt/intel_gt.c b/drivers/gpu/drm/i915/gt/intel_gt.c index cf7aab7adb30..663a4798fb2e 100644 --- a/drivers/gpu/drm/i915/gt/intel_gt.c +++ b/drivers/gpu/drm/i915/gt/intel_gt.c @@ -803,15 +803,6 @@ static int intel_gt_tile_setup(struct intel_gt *gt, phys_addr_t phys_addr) return 0; } -static void -intel_gt_tile_cleanup(struct intel_gt *gt) -{ - intel_uncore_cleanup_mmio(gt->uncore); - - if (!gt_is_root(gt)) - kfree(gt); -} - int intel_gt_probe_all(struct drm_i915_private *i915) { struct pci_dev *pdev = to_pci_dev(i915->drm.dev); @@ -858,10 +849,8 @@ void intel_gt_release_all(struct drm_i915_private *i915) struct intel_gt *gt; unsigned int id; - for_each_gt(gt, i915, id) { - intel_gt_tile_cleanup(gt); + for_each_gt(gt, i915, id) i915->gt[id] = NULL; - } } void intel_gt_info_print(const struct intel_gt_info *info, diff --git a/drivers/gpu/drm/i915/intel_uncore.c b/drivers/gpu/drm/i915/intel_uncore.c index 6841f76533f9..2a32f8a65f34 100644 --- a/drivers/gpu/drm/i915/intel_uncore.c +++ b/drivers/gpu/drm/i915/intel_uncore.c @@ -21,6 +21,7 @@ * IN THE SOFTWARE. */ +#include <drm/drm_managed.h> #include <linux/pm_runtime.h> #include "gt/intel_engine_regs.h" @@ -2232,6 +2233,11 @@ static int i915_pmic_bus_access_notifier(struct notifier_block *nb, return NOTIFY_OK; } +static void uncore_unmap_mmio(struct drm_device *drm, void *regs) +{ + iounmap(regs); +} + int intel_uncore_setup_mmio(struct intel_uncore *uncore, phys_addr_t phys_addr) { struct drm_i915_private *i915 = uncore->i915; @@ -2260,12 +2266,7 @@ int intel_uncore_setup_mmio(struct intel_uncore *uncore, phys_addr_t phys_addr) return -EIO; } - return 0; -} - -void intel_uncore_cleanup_mmio(struct intel_uncore *uncore) -{ - iounmap(uncore->regs); + return drmm_add_action_or_reset(&i915->drm, uncore_unmap_mmio, uncore->regs); } void intel_uncore_init_early(struct intel_uncore *uncore, -- 2.37.2
next prev parent reply other threads:[~2022-09-06 23:51 UTC|newest] Thread overview: 68+ messages / expand[flat|nested] mbox.gz Atom feed top 2022-09-06 23:49 [PATCH v3 00/14] i915: Add "standalone media" support for MTL Matt Roper 2022-09-06 23:49 ` [Intel-gfx] " 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 ` Matt Roper [this message] 2022-09-06 23:49 ` [Intel-gfx] [PATCH v3 04/14] drm/i915: Drop intel_gt_tile_cleanup() 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-5-matthew.d.roper@intel.com \ --to=matthew.d.roper@intel.com \ --cc=dri-devel@lists.freedesktop.org \ --cc=intel-gfx@lists.freedesktop.org \ /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.