[PATCH 1/3] drm/amdgpu: move nbio ih_doorbell_range() into ih code for vega

Lazar, Lijo lijo.lazar at amd.com
Wed Sep 14 07:04:31 UTC 2022



On 9/13/2022 8:18 PM, Alex Deucher wrote:
> This mirrors what we do for other asics and this way we are
> sure the ih doorbell range is properly initialized.
> 
> There is a comment about the way doorbells on gfx9 work that
> requires that they are initialized for other IPs before GFX
> is initialized.  In this case IH is initialized before GFX,
> so there should be no issue.
> 

Not sure about the association of patch 1 and 2 with AER as in the 
comment below. I thought the access would go through (PCIE errors may 
not be reported) and the only side effect is doorbell won't be hit/routed.

The comments may not be relevant to patches 1/2, apart from that -

Series is:
	Reviewed-by: Lijo Lazar <lijo.lazar at amd.com>

Thanks,
Lijo

> This fixes the Unsupported Request error reported through
> AER during driver load. The error happens as a write happens
> to the remap offset before real remapping is done.
> 
> Link: https://bugzilla.kernel.org/show_bug.cgi?id=216373
> 
> The error was unnoticed before and got visible because of the commit
> referenced below. This doesn't fix anything in the commit below, rather
> fixes the issue in amdgpu exposed by the commit. The reference is only
> to associate this commit with below one so that both go together.
> 
> Fixes: 8795e182b02d ("PCI/portdrv: Don't disable AER reporting in get_port_device_capability()")
> 
> Signed-off-by: Alex Deucher <alexander.deucher at amd.com>
> ---
>   drivers/gpu/drm/amd/amdgpu/soc15.c     | 3 ---
>   drivers/gpu/drm/amd/amdgpu/vega10_ih.c | 4 ++++
>   drivers/gpu/drm/amd/amdgpu/vega20_ih.c | 4 ++++
>   3 files changed, 8 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/gpu/drm/amd/amdgpu/soc15.c b/drivers/gpu/drm/amd/amdgpu/soc15.c
> index 5188da87428d..e6a4002fa67d 100644
> --- a/drivers/gpu/drm/amd/amdgpu/soc15.c
> +++ b/drivers/gpu/drm/amd/amdgpu/soc15.c
> @@ -1224,9 +1224,6 @@ static void soc15_doorbell_range_init(struct amdgpu_device *adev)
>   				ring->use_doorbell, ring->doorbell_index,
>   				adev->doorbell_index.sdma_doorbell_range);
>   		}
> -
> -		adev->nbio.funcs->ih_doorbell_range(adev, adev->irq.ih.use_doorbell,
> -						adev->irq.ih.doorbell_index);
>   	}
>   }
>   
> diff --git a/drivers/gpu/drm/amd/amdgpu/vega10_ih.c b/drivers/gpu/drm/amd/amdgpu/vega10_ih.c
> index 03b7066471f9..1e83db0c5438 100644
> --- a/drivers/gpu/drm/amd/amdgpu/vega10_ih.c
> +++ b/drivers/gpu/drm/amd/amdgpu/vega10_ih.c
> @@ -289,6 +289,10 @@ static int vega10_ih_irq_init(struct amdgpu_device *adev)
>   		}
>   	}
>   
> +	if (!amdgpu_sriov_vf(adev))
> +		adev->nbio.funcs->ih_doorbell_range(adev, adev->irq.ih.use_doorbell,
> +						    adev->irq.ih.doorbell_index);
> +
>   	pci_set_master(adev->pdev);
>   
>   	/* enable interrupts */
> diff --git a/drivers/gpu/drm/amd/amdgpu/vega20_ih.c b/drivers/gpu/drm/amd/amdgpu/vega20_ih.c
> index 2022ffbb8dba..59dfca093155 100644
> --- a/drivers/gpu/drm/amd/amdgpu/vega20_ih.c
> +++ b/drivers/gpu/drm/amd/amdgpu/vega20_ih.c
> @@ -340,6 +340,10 @@ static int vega20_ih_irq_init(struct amdgpu_device *adev)
>   		}
>   	}
>   
> +	if (!amdgpu_sriov_vf(adev))
> +		adev->nbio.funcs->ih_doorbell_range(adev, adev->irq.ih.use_doorbell,
> +						    adev->irq.ih.doorbell_index);
> +
>   	pci_set_master(adev->pdev);
>   
>   	/* enable interrupts */
> 


More information about the amd-gfx mailing list