Commit e116be25 authored by Lucas Stach's avatar Lucas Stach
Browse files

drm/etnaviv: drop GPU initialized property



Now that it is only used to track the driver internal state of
the MMU global and cmdbuf objects, we can get rid of this property
by making the free/finit functions of those objects safe to call
on an uninitialized object.

Signed-off-by: default avatarLucas Stach <l.stach@pengutronix.de>
Reviewed-by: default avatarChristian Gmeiner <cgmeiner@igalia.com>
parent 647d817d
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -121,6 +121,9 @@ void etnaviv_cmdbuf_free(struct etnaviv_cmdbuf *cmdbuf)
	int order = order_base_2(ALIGN(cmdbuf->size, SUBALLOC_GRANULE) /
				 SUBALLOC_GRANULE);

	if (!suballoc)
		return;

	mutex_lock(&suballoc->lock);
	bitmap_release_region(suballoc->granule_map,
			      cmdbuf->suballoc_offset / SUBALLOC_GRANULE,
+2 −7
Original line number Diff line number Diff line
@@ -876,8 +876,6 @@ int etnaviv_gpu_init(struct etnaviv_gpu *gpu)
	pm_runtime_mark_last_busy(gpu->dev);
	pm_runtime_put_autosuspend(gpu->dev);

	gpu->initialized = true;

	return 0;

fail:
@@ -1805,11 +1803,8 @@ static void etnaviv_gpu_unbind(struct device *dev, struct device *master,
	if (gpu->mmu_context)
		etnaviv_iommu_context_put(gpu->mmu_context);

	if (gpu->initialized) {
	etnaviv_cmdbuf_free(&gpu->buffer);
	etnaviv_iommu_global_fini(gpu);
		gpu->initialized = false;
	}

	gpu->drm = NULL;
	xa_destroy(&gpu->user_fences);
+0 −1
Original line number Diff line number Diff line
@@ -114,7 +114,6 @@ struct etnaviv_gpu {
	struct mutex sched_lock;
	struct drm_gpu_scheduler sched;
	enum etnaviv_gpu_state state;
	bool initialized;

	/* 'ring'-buffer: */
	struct etnaviv_cmdbuf buffer;
+3 −0
Original line number Diff line number Diff line
@@ -553,6 +553,9 @@ void etnaviv_iommu_global_fini(struct etnaviv_gpu *gpu)
	struct etnaviv_drm_private *priv = gpu->drm->dev_private;
	struct etnaviv_iommu_global *global = priv->mmu_global;

	if (!global)
		return;

	if (--global->use > 0)
		return;