All of lore.kernel.org
 help / color / mirror / Atom feed
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


  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: link
Be 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.