[PATCH v2 8/9] drm/i915: Release memory regions on driver remove

Janusz Krzysztofik janusz.krzysztofik at linux.intel.com
Fri Jul 24 14:31:15 UTC 2020


Fake LMEM memory region depends on GGTT address space.  Since we want
to release that space with its related DMA mappings on driver remove,
we have to release the fake LMEM region as well.

Instead of looking up for a fake LMEM, it shouldn't hurt to release
all memory regions on driver remove.  Rename the respective function
and move it from i915)driver_release() to i915_driver_hw_remove().

Signed-off-by: Janusz Krzysztofik <janusz.krzysztofik at linux.intel.com>
Cc: Michał Winiarski <michal.winiarski at intel.com>

Signed-off-by: Janusz Krzysztofik <janusz.krzysztofik at linux.intel.com>
---
 drivers/gpu/drm/i915/i915_drv.c                  | 6 +++---
 drivers/gpu/drm/i915/intel_memory_region.c       | 4 ++--
 drivers/gpu/drm/i915/intel_memory_region.h       | 2 +-
 drivers/gpu/drm/i915/selftests/mock_gem_device.c | 4 ++--
 4 files changed, 8 insertions(+), 8 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c
index 6392f69e9e27..05acc144555b 100644
--- a/drivers/gpu/drm/i915/i915_drv.c
+++ b/drivers/gpu/drm/i915/i915_drv.c
@@ -746,7 +746,7 @@ static int i915_driver_hw_probe(struct drm_i915_private *dev_priv)
 		pci_disable_msi(pdev);
 	cpu_latency_qos_remove_request(&dev_priv->pm_qos);
 err_mem_regions:
-	intel_memory_regions_driver_release(dev_priv);
+	intel_memory_regions_hw_remove(dev_priv);
 err_ggtt:
 	i915_ggtt_driver_release(dev_priv);
 err_perf:
@@ -764,6 +764,8 @@ static void i915_driver_hw_remove(struct drm_i915_private *dev_priv)
 
 	i915_perf_fini(dev_priv);
 
+	intel_memory_regions_hw_remove(dev_priv);
+
 	if (pdev->msi_enabled)
 		pci_disable_msi(pdev);
 
@@ -1016,7 +1018,6 @@ int i915_driver_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
 	i915_driver_modeset_remove_noirq(i915);
 out_cleanup_hw:
 	i915_driver_hw_remove(i915);
-	intel_memory_regions_driver_release(i915);
 	i915_ggtt_driver_release(i915);
 out_cleanup_mmio:
 	i915_driver_mmio_release(i915);
@@ -1073,7 +1074,6 @@ static void i915_driver_release(struct drm_device *dev)
 
 	i915_gem_driver_release(dev_priv);
 
-	intel_memory_regions_driver_release(dev_priv);
 	i915_ggtt_driver_release(dev_priv);
 
 	i915_driver_mmio_release(dev_priv);
diff --git a/drivers/gpu/drm/i915/intel_memory_region.c b/drivers/gpu/drm/i915/intel_memory_region.c
index 6b5e9d88646d..d3dccb305131 100644
--- a/drivers/gpu/drm/i915/intel_memory_region.c
+++ b/drivers/gpu/drm/i915/intel_memory_region.c
@@ -281,11 +281,11 @@ int intel_memory_regions_hw_probe(struct drm_i915_private *i915)
 	return 0;
 
 out_cleanup:
-	intel_memory_regions_driver_release(i915);
+	intel_memory_regions_hw_remove(i915);
 	return err;
 }
 
-void intel_memory_regions_driver_release(struct drm_i915_private *i915)
+void intel_memory_regions_hw_remove(struct drm_i915_private *i915)
 {
 	int i;
 
diff --git a/drivers/gpu/drm/i915/intel_memory_region.h b/drivers/gpu/drm/i915/intel_memory_region.h
index 232490d89a83..e96ba4e1d546 100644
--- a/drivers/gpu/drm/i915/intel_memory_region.h
+++ b/drivers/gpu/drm/i915/intel_memory_region.h
@@ -131,7 +131,7 @@ intel_memory_region_get(struct intel_memory_region *mem);
 void intel_memory_region_put(struct intel_memory_region *mem);
 
 int intel_memory_regions_hw_probe(struct drm_i915_private *i915);
-void intel_memory_regions_driver_release(struct drm_i915_private *i915);
+void intel_memory_regions_hw_remove(struct drm_i915_private *i915);
 struct intel_memory_region *
 intel_memory_region_by_type(struct drm_i915_private *i915,
 			    enum intel_memory_type mem_type);
diff --git a/drivers/gpu/drm/i915/selftests/mock_gem_device.c b/drivers/gpu/drm/i915/selftests/mock_gem_device.c
index a242b9060780..0c9c0a49159d 100644
--- a/drivers/gpu/drm/i915/selftests/mock_gem_device.c
+++ b/drivers/gpu/drm/i915/selftests/mock_gem_device.c
@@ -72,7 +72,7 @@ static void mock_device_release(struct drm_device *dev)
 	destroy_workqueue(i915->wq);
 
 	intel_gt_driver_late_release(&i915->gt);
-	intel_memory_regions_driver_release(i915);
+	intel_memory_regions_hw_remove(i915);
 
 	drm_mode_config_cleanup(&i915->drm);
 
@@ -215,7 +215,7 @@ struct drm_i915_private *mock_gem_device(void)
 	destroy_workqueue(i915->wq);
 err_drv:
 	intel_gt_driver_late_release(&i915->gt);
-	intel_memory_regions_driver_release(i915);
+	intel_memory_regions_hw_remove(i915);
 	drm_mode_config_cleanup(&i915->drm);
 	drm_dev_put(&i915->drm);
 
-- 
2.21.1



More information about the Intel-gfx-trybot mailing list