[PATCH 10/10] drm/amdgpu: clean up ring_backup code, no need more

Christian König deathsimple at vodafone.de
Thu Jun 30 08:22:37 UTC 2016


Am 30.06.2016 um 09:09 schrieb Chunming Zhou:
> Change-Id: I8ec7c9d6e34178752e2e97f4a1f2c3b705c66c82
> Signed-off-by: Chunming Zhou <David1.Zhou at amd.com>

We could remove even more, but this should do it for now.

Patch is Reviewed-by: Christian König <christian.koenig at amd.com>.

Regards,
Christian.

> ---
>   drivers/gpu/drm/amd/amdgpu/amdgpu.h        |  4 --
>   drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 18 --------
>   drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c   | 72 ------------------------------
>   3 files changed, 94 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu.h b/drivers/gpu/drm/amd/amdgpu/amdgpu.h
> index 35248d0..d22d0fa 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu.h
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu.h
> @@ -1211,10 +1211,6 @@ void amdgpu_ring_insert_nop(struct amdgpu_ring *ring, uint32_t count);
>   void amdgpu_ring_generic_pad_ib(struct amdgpu_ring *ring, struct amdgpu_ib *ib);
>   void amdgpu_ring_commit(struct amdgpu_ring *ring);
>   void amdgpu_ring_undo(struct amdgpu_ring *ring);
> -unsigned amdgpu_ring_backup(struct amdgpu_ring *ring,
> -			    uint32_t **data);
> -int amdgpu_ring_restore(struct amdgpu_ring *ring,
> -			unsigned size, uint32_t *data);
>   int amdgpu_ring_init(struct amdgpu_device *adev, struct amdgpu_ring *ring,
>   		     unsigned ring_size, u32 nop, u32 align_mask,
>   		     struct amdgpu_irq_src *irq_src, unsigned irq_type,
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
> index 35cc529..8793bf6 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
> @@ -1932,11 +1932,6 @@ int amdgpu_resume_kms(struct drm_device *dev, bool resume, bool fbcon)
>   int amdgpu_gpu_reset(struct amdgpu_device *adev)
>   {
>   	struct drm_atomic_state *state = NULL;
> -	unsigned ring_sizes[AMDGPU_MAX_RINGS];
> -	uint32_t *ring_data[AMDGPU_MAX_RINGS];
> -
> -	bool saved = false;
> -
>   	int i, r;
>   	int resched;
>   
> @@ -1965,19 +1960,6 @@ int amdgpu_gpu_reset(struct amdgpu_device *adev)
>   	amdgpu_atombios_scratch_regs_save(adev);
>   	r = amdgpu_suspend(adev);
>   
> -	for (i = 0; i < AMDGPU_MAX_RINGS; ++i) {
> -		struct amdgpu_ring *ring = adev->rings[i];
> -		if (!ring)
> -			continue;
> -
> -		ring_sizes[i] = amdgpu_ring_backup(ring, &ring_data[i]);
> -		if (ring_sizes[i]) {
> -			saved = true;
> -			dev_info(adev->dev, "Saved %d dwords of commands "
> -				 "on ring %d.\n", ring_sizes[i], i);
> -		}
> -	}
> -
>   retry:
>   	/* Disable fb access */
>   	if (adev->mode_info.num_crtc) {
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c
> index 7311d58..ac8b62f 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c
> @@ -142,78 +142,6 @@ void amdgpu_ring_undo(struct amdgpu_ring *ring)
>   }
>   
>   /**
> - * amdgpu_ring_backup - Back up the content of a ring
> - *
> - * @ring: the ring we want to back up
> - *
> - * Saves all unprocessed commits from a ring, returns the number of dwords saved.
> - */
> -unsigned amdgpu_ring_backup(struct amdgpu_ring *ring,
> -			    uint32_t **data)
> -{
> -	unsigned size, ptr, i;
> -
> -	*data = NULL;
> -
> -	if (ring->ring_obj == NULL)
> -		return 0;
> -
> -	/* it doesn't make sense to save anything if all fences are signaled */
> -	if (!amdgpu_fence_count_emitted(ring))
> -		return 0;
> -
> -	ptr = le32_to_cpu(*ring->next_rptr_cpu_addr);
> -
> -	size = ring->wptr + (ring->ring_size / 4);
> -	size -= ptr;
> -	size &= ring->ptr_mask;
> -	if (size == 0)
> -		return 0;
> -
> -	/* and then save the content of the ring */
> -	*data = kmalloc_array(size, sizeof(uint32_t), GFP_KERNEL);
> -	if (!*data)
> -		return 0;
> -	for (i = 0; i < size; ++i) {
> -		(*data)[i] = ring->ring[ptr++];
> -		ptr &= ring->ptr_mask;
> -	}
> -
> -	return size;
> -}
> -
> -/**
> - * amdgpu_ring_restore - append saved commands to the ring again
> - *
> - * @ring: ring to append commands to
> - * @size: number of dwords we want to write
> - * @data: saved commands
> - *
> - * Allocates space on the ring and restore the previously saved commands.
> - */
> -int amdgpu_ring_restore(struct amdgpu_ring *ring,
> -			unsigned size, uint32_t *data)
> -{
> -	int i, r;
> -
> -	if (!size || !data)
> -		return 0;
> -
> -	/* restore the saved ring content */
> -	r = amdgpu_ring_alloc(ring, size);
> -	if (r)
> -		return r;
> -
> -	for (i = 0; i < size; ++i) {
> -		amdgpu_ring_write(ring, data[i]);
> -	}
> -
> -	amdgpu_ring_commit(ring);
> -	kfree(data);
> -	return 0;
> -}
> -
> -/**
>    * amdgpu_ring_init - init driver ring struct.
>    *
>    * @adev: amdgpu_device pointer



More information about the amd-gfx mailing list