[PATCH 1/2] drm/amdgpu: remove superflous UVD encode entity

Leo Liu leo.liu at amd.com
Thu Jul 19 13:15:03 UTC 2018



On 07/18/2018 02:44 PM, Christian König wrote:
> Not sure what that was every used for, but now it is completely unused.
UVD having it's own scheduler entity is inherited from UVD physical 
mode, which need send session destroy ib when session is done to free 
the handle in firmware.
Because we cannot call amdgpu_ib_schedule directly, so need the entity 
to put this job to the scheduler.

The patch is:

Reviewed-by: Leo Liu <leo.liu at amd.com>

>
> Signed-off-by: Christian König <christian.koenig at amd.com>
> ---
>   drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.h |  1 -
>   drivers/gpu/drm/amd/amdgpu/uvd_v6_0.c   | 12 ------------
>   drivers/gpu/drm/amd/amdgpu/uvd_v7_0.c   | 14 --------------
>   3 files changed, 27 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.h
> index 8b23a1b00c76..cae3f526216b 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.h
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.h
> @@ -48,7 +48,6 @@ struct amdgpu_uvd_inst {
>   	struct amdgpu_ring	ring_enc[AMDGPU_MAX_UVD_ENC_RINGS];
>   	struct amdgpu_irq_src	irq;
>   	struct drm_sched_entity entity;
> -	struct drm_sched_entity entity_enc;
>   	uint32_t                srbm_soft_reset;
>   };
>   
> diff --git a/drivers/gpu/drm/amd/amdgpu/uvd_v6_0.c b/drivers/gpu/drm/amd/amdgpu/uvd_v6_0.c
> index b796dc8375cd..598dbeaba636 100644
> --- a/drivers/gpu/drm/amd/amdgpu/uvd_v6_0.c
> +++ b/drivers/gpu/drm/amd/amdgpu/uvd_v6_0.c
> @@ -418,16 +418,6 @@ static int uvd_v6_0_sw_init(void *handle)
>   		adev->uvd.num_enc_rings = 0;
>   
>   		DRM_INFO("UVD ENC is disabled\n");
> -	} else {
> -		struct drm_sched_rq *rq;
> -		ring = &adev->uvd.inst->ring_enc[0];
> -		rq = &ring->sched.sched_rq[DRM_SCHED_PRIORITY_NORMAL];
> -		r = drm_sched_entity_init(&adev->uvd.inst->entity_enc,
> -					  &rq, 1, NULL);
> -		if (r) {
> -			DRM_ERROR("Failed setting up UVD ENC run queue.\n");
> -			return r;
> -		}
>   	}
>   
>   	r = amdgpu_uvd_resume(adev);
> @@ -463,8 +453,6 @@ static int uvd_v6_0_sw_fini(void *handle)
>   		return r;
>   
>   	if (uvd_v6_0_enc_support(adev)) {
> -		drm_sched_entity_destroy(&adev->uvd.inst->ring_enc[0].sched, &adev->uvd.inst->entity_enc);
> -
>   		for (i = 0; i < adev->uvd.num_enc_rings; ++i)
>   			amdgpu_ring_fini(&adev->uvd.inst->ring_enc[i]);
>   	}
> diff --git a/drivers/gpu/drm/amd/amdgpu/uvd_v7_0.c b/drivers/gpu/drm/amd/amdgpu/uvd_v7_0.c
> index 89fe910e5c9a..2192f4536c24 100644
> --- a/drivers/gpu/drm/amd/amdgpu/uvd_v7_0.c
> +++ b/drivers/gpu/drm/amd/amdgpu/uvd_v7_0.c
> @@ -389,7 +389,6 @@ static int uvd_v7_0_early_init(void *handle)
>   static int uvd_v7_0_sw_init(void *handle)
>   {
>   	struct amdgpu_ring *ring;
> -	struct drm_sched_rq *rq;
>   	int i, j, r;
>   	struct amdgpu_device *adev = (struct amdgpu_device *)handle;
>   
> @@ -421,17 +420,6 @@ static int uvd_v7_0_sw_init(void *handle)
>   		DRM_INFO("PSP loading UVD firmware\n");
>   	}
>   
> -	for (j = 0; j < adev->uvd.num_uvd_inst; j++) {
> -		ring = &adev->uvd.inst[j].ring_enc[0];
> -		rq = &ring->sched.sched_rq[DRM_SCHED_PRIORITY_NORMAL];
> -		r = drm_sched_entity_init(&adev->uvd.inst[j].entity_enc,
> -					  &rq, 1, NULL);
> -		if (r) {
> -			DRM_ERROR("(%d)Failed setting up UVD ENC run queue.\n", j);
> -			return r;
> -		}
> -	}
> -
>   	r = amdgpu_uvd_resume(adev);
>   	if (r)
>   		return r;
> @@ -484,8 +472,6 @@ static int uvd_v7_0_sw_fini(void *handle)
>   		return r;
>   
>   	for (j = 0; j < adev->uvd.num_uvd_inst; ++j) {
> -		drm_sched_entity_destroy(&adev->uvd.inst[j].ring_enc[0].sched, &adev->uvd.inst[j].entity_enc);
> -
>   		for (i = 0; i < adev->uvd.num_enc_rings; ++i)
>   			amdgpu_ring_fini(&adev->uvd.inst[j].ring_enc[i]);
>   	}



More information about the amd-gfx mailing list