[PATCH] drm/amdgpu:use hw_init for sriov_gpu_reset

Christian König deathsimple at vodafone.de
Thu Feb 9 15:53:58 UTC 2017


Am 09.02.2017 um 15:37 schrieb Deucher, Alexander:
>> -----Original Message-----
>> From: amd-gfx [mailto:amd-gfx-bounces at lists.freedesktop.org] On Behalf
>> Of Monk Liu
>> Sent: Thursday, February 09, 2017 12:46 AM
>> To: amd-gfx at lists.freedesktop.org
>> Cc: Liu, Monk
>> Subject: [PATCH] drm/amdgpu:use hw_init for sriov_gpu_reset
>>
>> no suspend invoked so after VF FLR by host, we just
>> call hw_init to reinitialize IPs.
>>
>> Change-Id: If09cb42b09bee6acc84e6b239ef537ad5a3df41c
>> Signed-off-by: Monk Liu <Monk.Liu at amd.com>
> Reviewed-by: Alex Deucher <alexander.deucher at amd.com>

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

>
>> ---
>>   drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 12 ++++++------
>>   1 file changed, 6 insertions(+), 6 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
>> b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
>> index 0d33bc9..7e64110 100644
>> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
>> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
>> @@ -1604,7 +1604,7 @@ int amdgpu_suspend(struct amdgpu_device
>> *adev)
>>   	return 0;
>>   }
>>
>> -static int amdgpu_sriov_resume_early(struct amdgpu_device *adev)
>> +static int amdgpu_sriov_reinit_early(struct amdgpu_device *adev)
>>   {
>>   	int i, r;
>>
>> @@ -1615,7 +1615,7 @@ static int amdgpu_sriov_resume_early(struct
>> amdgpu_device *adev)
>>   		if (adev->ip_blocks[i].version->type ==
>> AMD_IP_BLOCK_TYPE_COMMON ||
>>   				adev->ip_blocks[i].version->type ==
>> AMD_IP_BLOCK_TYPE_GMC ||
>>   				adev->ip_blocks[i].version->type ==
>> AMD_IP_BLOCK_TYPE_IH)
>> -			r = adev->ip_blocks[i].version->funcs-
>>> resume(adev);
>> +			r = adev->ip_blocks[i].version->funcs-
>>> hw_init(adev);
>>   		if (r) {
>>   			DRM_ERROR("resume of IP block <%s> failed %d\n",
>> @@ -1627,7 +1627,7 @@ static int amdgpu_sriov_resume_early(struct
>> amdgpu_device *adev)
>>   	return 0;
>>   }
>>
>> -static int amdgpu_sriov_resume_late(struct amdgpu_device *adev)
>> +static int amdgpu_sriov_reinit_late(struct amdgpu_device *adev)
>>   {
>>   	int i, r;
>>
>> @@ -1640,7 +1640,7 @@ static int amdgpu_sriov_resume_late(struct
>> amdgpu_device *adev)
>>   				adev->ip_blocks[i].version->type ==
>> AMD_IP_BLOCK_TYPE_IH )
>>   			continue;
>>
>> -		r = adev->ip_blocks[i].version->funcs->resume(adev);
>> +		r = adev->ip_blocks[i].version->funcs->hw_init(adev);
>>   		if (r) {
>>   			DRM_ERROR("resume of IP block <%s> failed %d\n",
>>   				  adev->ip_blocks[i].version->funcs->name,
>> r);
>> @@ -2433,13 +2433,13 @@ int amdgpu_sriov_gpu_reset(struct
>> amdgpu_device *adev, bool voluntary)
>>
>>
>>   	/* Resume IP prior to SMC */
>> -	amdgpu_sriov_resume_early(adev);
>> +	amdgpu_sriov_reinit_early(adev);
>>
>>   	/* we need recover gart prior to run SMC/CP/SDMA resume */
>>   	amdgpu_ttm_recover_gart(adev);
>>
>>   	/* now we are okay to resume SMC/CP/SDMA */
>> -	amdgpu_sriov_resume_late(adev);
>> +	amdgpu_sriov_reinit_late(adev);
>>
>>   	amdgpu_irq_gpu_reset_resume_helper(adev);
>>
>> --
>> 2.7.4
>>
>> _______________________________________________
>> amd-gfx mailing list
>> amd-gfx at lists.freedesktop.org
>> https://lists.freedesktop.org/mailman/listinfo/amd-gfx
> _______________________________________________
> amd-gfx mailing list
> amd-gfx at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/amd-gfx




More information about the amd-gfx mailing list