diff options
| author | Leo Liu <leo.liu@amd.com> | 2019-11-11 09:56:32 -0500 | 
|---|---|---|
| committer | Alex Deucher <alexander.deucher@amd.com> | 2019-11-19 10:12:50 -0500 | 
| commit | 14f43e8f88c57bbeaed3d05f13efab733f5e2338 (patch) | |
| tree | af772c3d89c171b3bbaaa09fef8be29f42d9cd48 /drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c | |
| parent | 5be45a26c9fbb019814c611932fee391d1cfb364 (diff) | |
drm/amdgpu: move JPEG2.5 out from VCN2.5
And clean up the duplicated stuff
Signed-off-by: Leo Liu <leo.liu@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c')
| -rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c | 105 | 
1 files changed, 0 insertions, 105 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c index 4715115c8f06..428cfd58b37d 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c @@ -706,108 +706,3 @@ error:  	amdgpu_bo_unref(&bo);  	return r;  } - -int amdgpu_vcn_jpeg_ring_test_ring(struct amdgpu_ring *ring) -{ -	struct amdgpu_device *adev = ring->adev; -	uint32_t tmp = 0; -	unsigned i; -	int r; - -	WREG32(adev->vcn.inst[ring->me].external.jpeg_pitch, 0xCAFEDEAD); -	r = amdgpu_ring_alloc(ring, 3); -	if (r) -		return r; - -	amdgpu_ring_write(ring, PACKET0(adev->vcn.internal.jpeg_pitch, 0)); -	amdgpu_ring_write(ring, 0xDEADBEEF); -	amdgpu_ring_commit(ring); - -	for (i = 0; i < adev->usec_timeout; i++) { -		tmp = RREG32(adev->vcn.inst[ring->me].external.jpeg_pitch); -		if (tmp == 0xDEADBEEF) -			break; -		udelay(1); -	} - -	if (i >= adev->usec_timeout) -		r = -ETIMEDOUT; - -	return r; -} - -static int amdgpu_vcn_jpeg_set_reg(struct amdgpu_ring *ring, uint32_t handle, -		struct dma_fence **fence) -{ -	struct amdgpu_device *adev = ring->adev; -	struct amdgpu_job *job; -	struct amdgpu_ib *ib; -	struct dma_fence *f = NULL; -	const unsigned ib_size_dw = 16; -	int i, r; - -	r = amdgpu_job_alloc_with_ib(ring->adev, ib_size_dw * 4, &job); -	if (r) -		return r; - -	ib = &job->ibs[0]; - -	ib->ptr[0] = PACKETJ(adev->vcn.internal.jpeg_pitch, 0, 0, PACKETJ_TYPE0); -	ib->ptr[1] = 0xDEADBEEF; -	for (i = 2; i < 16; i += 2) { -		ib->ptr[i] = PACKETJ(0, 0, 0, PACKETJ_TYPE6); -		ib->ptr[i+1] = 0; -	} -	ib->length_dw = 16; - -	r = amdgpu_job_submit_direct(job, ring, &f); -	if (r) -		goto err; - -	if (fence) -		*fence = dma_fence_get(f); -	dma_fence_put(f); - -	return 0; - -err: -	amdgpu_job_free(job); -	return r; -} - -int amdgpu_vcn_jpeg_ring_test_ib(struct amdgpu_ring *ring, long timeout) -{ -	struct amdgpu_device *adev = ring->adev; -	uint32_t tmp = 0; -	unsigned i; -	struct dma_fence *fence = NULL; -	long r = 0; - -	r = amdgpu_vcn_jpeg_set_reg(ring, 1, &fence); -	if (r) -		goto error; - -	r = dma_fence_wait_timeout(fence, false, timeout); -	if (r == 0) { -		r = -ETIMEDOUT; -		goto error; -	} else if (r < 0) { -		goto error; -	} else { -		r = 0; -	} - -	for (i = 0; i < adev->usec_timeout; i++) { -		tmp = RREG32(adev->vcn.inst[ring->me].external.jpeg_pitch); -		if (tmp == 0xDEADBEEF) -			break; -		udelay(1); -	} - -	if (i >= adev->usec_timeout) -		r = -ETIMEDOUT; - -	dma_fence_put(fence); -error: -	return r; -}  | 
