[PATCH 5/6] drm/amdgpu/gfx: move mec parameter setup into sw_init

axie axie at amd.com
Wed Jun 7 22:03:45 UTC 2017


Reviewed-by: Alex Xie <AlexBin.Xie at amd.com>

On 2017-06-07 03:34 PM, Alex Deucher wrote:
> This will allow us to share more mec code.
>
> Signed-off-by: Alex Deucher <alexander.deucher at amd.com>
> ---
>   drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c | 30 +++++++++++++--------------
>   drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c | 38 +++++++++++++++++------------------
>   drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c | 26 ++++++++++++------------
>   3 files changed, 47 insertions(+), 47 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c b/drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c
> index d80cf72..e30c7d0 100644
> --- a/drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c
> +++ b/drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c
> @@ -2817,21 +2817,6 @@ static int gfx_v7_0_mec_init(struct amdgpu_device *adev)
>   
>   	bitmap_zero(adev->gfx.mec.queue_bitmap, AMDGPU_MAX_COMPUTE_QUEUES);
>   
> -	switch (adev->asic_type) {
> -	case CHIP_KAVERI:
> -		adev->gfx.mec.num_mec = 2;
> -		break;
> -	case CHIP_BONAIRE:
> -	case CHIP_HAWAII:
> -	case CHIP_KABINI:
> -	case CHIP_MULLINS:
> -	default:
> -		adev->gfx.mec.num_mec = 1;
> -		break;
> -	}
> -	adev->gfx.mec.num_pipe_per_mec = 4;
> -	adev->gfx.mec.num_queue_per_pipe = 8;
> -
>   	/* take ownership of the relevant compute queues */
>   	amdgpu_gfx_compute_queue_acquire(adev);
>   
> @@ -4723,6 +4708,21 @@ static int gfx_v7_0_sw_init(void *handle)
>   	struct amdgpu_device *adev = (struct amdgpu_device *)handle;
>   	int i, j, k, r, ring_id;
>   
> +	switch (adev->asic_type) {
> +	case CHIP_KAVERI:
> +		adev->gfx.mec.num_mec = 2;
> +		break;
> +	case CHIP_BONAIRE:
> +	case CHIP_HAWAII:
> +	case CHIP_KABINI:
> +	case CHIP_MULLINS:
> +	default:
> +		adev->gfx.mec.num_mec = 1;
> +		break;
> +	}
> +	adev->gfx.mec.num_pipe_per_mec = 4;
> +	adev->gfx.mec.num_queue_per_pipe = 8;
> +
>   	/* EOP Event */
>   	r = amdgpu_irq_add_id(adev, AMDGPU_IH_CLIENTID_LEGACY, 181, &adev->gfx.eop_irq);
>   	if (r)
> diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c b/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c
> index 8a9d35a..97d39369 100644
> --- a/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c
> +++ b/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c
> @@ -1387,25 +1387,6 @@ static int gfx_v8_0_mec_init(struct amdgpu_device *adev)
>   
>   	bitmap_zero(adev->gfx.mec.queue_bitmap, AMDGPU_MAX_COMPUTE_QUEUES);
>   
> -	switch (adev->asic_type) {
> -	case CHIP_FIJI:
> -	case CHIP_TONGA:
> -	case CHIP_POLARIS11:
> -	case CHIP_POLARIS12:
> -	case CHIP_POLARIS10:
> -	case CHIP_CARRIZO:
> -		adev->gfx.mec.num_mec = 2;
> -		break;
> -	case CHIP_TOPAZ:
> -	case CHIP_STONEY:
> -	default:
> -		adev->gfx.mec.num_mec = 1;
> -		break;
> -	}
> -
> -	adev->gfx.mec.num_pipe_per_mec = 4;
> -	adev->gfx.mec.num_queue_per_pipe = 8;
> -
>   	/* take ownership of the relevant compute queues */
>   	amdgpu_gfx_compute_queue_acquire(adev);
>   
> @@ -2009,6 +1990,25 @@ static int gfx_v8_0_sw_init(void *handle)
>   	struct amdgpu_kiq *kiq;
>   	struct amdgpu_device *adev = (struct amdgpu_device *)handle;
>   
> +	switch (adev->asic_type) {
> +	case CHIP_FIJI:
> +	case CHIP_TONGA:
> +	case CHIP_POLARIS11:
> +	case CHIP_POLARIS12:
> +	case CHIP_POLARIS10:
> +	case CHIP_CARRIZO:
> +		adev->gfx.mec.num_mec = 2;
> +		break;
> +	case CHIP_TOPAZ:
> +	case CHIP_STONEY:
> +	default:
> +		adev->gfx.mec.num_mec = 1;
> +		break;
> +	}
> +
> +	adev->gfx.mec.num_pipe_per_mec = 4;
> +	adev->gfx.mec.num_queue_per_pipe = 8;
> +
>   	/* KIQ event */
>   	r = amdgpu_irq_add_id(adev, AMDGPU_IH_CLIENTID_LEGACY, 178, &adev->gfx.kiq.irq);
>   	if (r)
> diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c b/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c
> index fbb9d20..b7094c3 100644
> --- a/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c
> +++ b/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c
> @@ -870,19 +870,6 @@ static int gfx_v9_0_mec_init(struct amdgpu_device *adev)
>   
>   	bitmap_zero(adev->gfx.mec.queue_bitmap, AMDGPU_MAX_COMPUTE_QUEUES);
>   
> -	switch (adev->asic_type) {
> -	case CHIP_VEGA10:
> -	case CHIP_RAVEN:
> -		adev->gfx.mec.num_mec = 2;
> -		break;
> -	default:
> -		adev->gfx.mec.num_mec = 1;
> -		break;
> -	}
> -
> -	adev->gfx.mec.num_pipe_per_mec = 4;
> -	adev->gfx.mec.num_queue_per_pipe = 8;
> -
>   	/* take ownership of the relevant compute queues */
>   	amdgpu_gfx_compute_queue_acquire(adev);
>   	mec_hpd_size = adev->gfx.num_compute_rings * GFX9_MEC_HPD_SIZE;
> @@ -1393,6 +1380,19 @@ static int gfx_v9_0_sw_init(void *handle)
>   	struct amdgpu_kiq *kiq;
>   	struct amdgpu_device *adev = (struct amdgpu_device *)handle;
>   
> +	switch (adev->asic_type) {
> +	case CHIP_VEGA10:
> +	case CHIP_RAVEN:
> +		adev->gfx.mec.num_mec = 2;
> +		break;
> +	default:
> +		adev->gfx.mec.num_mec = 1;
> +		break;
> +	}
> +
> +	adev->gfx.mec.num_pipe_per_mec = 4;
> +	adev->gfx.mec.num_queue_per_pipe = 8;
> +
>   	/* KIQ event */
>   	r = amdgpu_irq_add_id(adev, AMDGPU_IH_CLIENTID_GRBM_CP, 178, &adev->gfx.kiq.irq);
>   	if (r)

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/amd-gfx/attachments/20170607/73531203/attachment-0001.html>


More information about the amd-gfx mailing list