[PATCH 8/8] drm/amdgpu: add a wrapper for atom asic_init

Nirmoy nirmodas at amd.com
Mon Aug 24 18:13:16 UTC 2020


Series is Acked-by: Nirmoy Das <nirmoy.das at amd.com>

On 8/24/20 6:15 PM, Alex Deucher wrote:
> This allows us to add asic specific workarounds for atom
> asic init while keeping the adev specifics out of the
> atombios parser code.
>
> Signed-off-by: Alex Deucher <alexander.deucher at amd.com>
> ---
>   drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 20 +++++++++++++++++---
>   1 file changed, 17 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
> index 6573e1112462..e41aa1e885ba 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
> @@ -653,6 +653,20 @@ static void amdgpu_block_invalid_wreg(struct amdgpu_device *adev,
>   	BUG();
>   }
>   
> +/**
> + * amdgpu_device_asic_init - Wrapper for atom asic_init
> + *
> + * @dev: drm_device pointer
> + *
> + * Does any asic specific work and then calls atom asic init.
> + */
> +static int amdgpu_device_asic_init(struct amdgpu_device *adev)
> +{
> +	amdgpu_asic_pre_asic_init(adev);
> +
> +	return amdgpu_atom_asic_init(adev->mode_info.atom_context);
> +}
> +
>   /**
>    * amdgpu_device_vram_scratch_init - allocate the VRAM scratch page
>    *
> @@ -3203,7 +3217,7 @@ int amdgpu_device_init(struct amdgpu_device *adev,
>   			goto failed;
>   		}
>   		DRM_INFO("GPU posting now...\n");
> -		r = amdgpu_atom_asic_init(adev->mode_info.atom_context);
> +		r = amdgpu_device_asic_init(adev);
>   		if (r) {
>   			dev_err(adev->dev, "gpu post error!\n");
>   			goto failed;
> @@ -3552,7 +3566,7 @@ int amdgpu_device_resume(struct drm_device *dev, bool fbcon)
>   
>   	/* post card */
>   	if (amdgpu_device_need_post(adev)) {
> -		r = amdgpu_atom_asic_init(adev->mode_info.atom_context);
> +		r = amdgpu_device_asic_init(adev);
>   		if (r)
>   			DRM_ERROR("amdgpu asic init failed\n");
>   	}
> @@ -4109,7 +4123,7 @@ static int amdgpu_do_asic_reset(struct amdgpu_hive_info *hive,
>   	list_for_each_entry(tmp_adev, device_list_handle, gmc.xgmi.head) {
>   		if (need_full_reset) {
>   			/* post card */
> -			if (amdgpu_atom_asic_init(tmp_adev->mode_info.atom_context))
> +			if (amdgpu_device_asic_init(tmp_adev))
>   				DRM_WARN("asic atom init failed!");
>   
>   			if (!r) {


More information about the amd-gfx mailing list