[PATCH 1/4] drm/amd/amdgpu: Simplify gmc_v9_0_vm_fault_interrupt_state()

Christian König deathsimple at vodafone.de
Fri Sep 1 14:44:45 UTC 2017


Am 01.09.2017 um 15:57 schrieb Tom St Denis:
> Signed-off-by: Tom St Denis <tom.stdenis at amd.com>

Reviewed-by: Christian König <christian.koenig at amd.com> for the entire 
series.

> ---
>   drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c | 51 ++++++++++++-----------------------
>   1 file changed, 17 insertions(+), 34 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c b/drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c
> index d04d0b123212..1cb7aa2af683 100644
> --- a/drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c
> +++ b/drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c
> @@ -77,7 +77,7 @@ static int gmc_v9_0_vm_fault_interrupt_state(struct amdgpu_device *adev,
>   					enum amdgpu_interrupt_state state)
>   {
>   	struct amdgpu_vmhub *hub;
> -	u32 tmp, reg, bits, i;
> +	u32 tmp, reg, bits, i, j;
>   
>   	bits = VM_CONTEXT1_CNTL__RANGE_PROTECTION_FAULT_ENABLE_INTERRUPT_MASK |
>   		VM_CONTEXT1_CNTL__DUMMY_PAGE_PROTECTION_FAULT_ENABLE_INTERRUPT_MASK |
> @@ -89,43 +89,26 @@ static int gmc_v9_0_vm_fault_interrupt_state(struct amdgpu_device *adev,
>   
>   	switch (state) {
>   	case AMDGPU_IRQ_STATE_DISABLE:
> -		/* MM HUB */
> -		hub = &adev->vmhub[AMDGPU_MMHUB];
> -		for (i = 0; i< 16; i++) {
> -			reg = hub->vm_context0_cntl + i;
> -			tmp = RREG32(reg);
> -			tmp &= ~bits;
> -			WREG32(reg, tmp);
> -		}
> -
> -		/* GFX HUB */
> -		hub = &adev->vmhub[AMDGPU_GFXHUB];
> -		for (i = 0; i < 16; i++) {
> -			reg = hub->vm_context0_cntl + i;
> -			tmp = RREG32(reg);
> -			tmp &= ~bits;
> -			WREG32(reg, tmp);
> +		for (j = 0; j < AMDGPU_MAX_VMHUBS; j++) {
> +			hub = &adev->vmhub[j];
> +			for (i = 0; i < 16; i++) {
> +				reg = hub->vm_context0_cntl + i;
> +				tmp = RREG32(reg);
> +				tmp &= ~bits;
> +				WREG32(reg, tmp);
> +			}
>   		}
>   		break;
>   	case AMDGPU_IRQ_STATE_ENABLE:
> -		/* MM HUB */
> -		hub = &adev->vmhub[AMDGPU_MMHUB];
> -		for (i = 0; i< 16; i++) {
> -			reg = hub->vm_context0_cntl + i;
> -			tmp = RREG32(reg);
> -			tmp |= bits;
> -			WREG32(reg, tmp);
> +		for (j = 0; j < AMDGPU_MAX_VMHUBS; j++) {
> +			hub = &adev->vmhub[j];
> +			for (i = 0; i < 16; i++) {
> +				reg = hub->vm_context0_cntl + i;
> +				tmp = RREG32(reg);
> +				tmp |= bits;
> +				WREG32(reg, tmp);
> +			}
>   		}
> -
> -		/* GFX HUB */
> -		hub = &adev->vmhub[AMDGPU_GFXHUB];
> -		for (i = 0; i < 16; i++) {
> -			reg = hub->vm_context0_cntl + i;
> -			tmp = RREG32(reg);
> -			tmp |= bits;
> -			WREG32(reg, tmp);
> -		}
> -		break;
>   	default:
>   		break;
>   	}




More information about the amd-gfx mailing list