[PATCH] drm/amdgpu: read reg in each iterate of psp_wait_for loop

Zhang, Jerry (Junwei) Jerry.Zhang at amd.com
Mon Jul 17 08:56:26 UTC 2017


+ stable at vger.kernel.org

On 07/17/2017 03:57 PM, Huang Rui wrote:
> On Mon, Jul 17, 2017 at 03:52:10PM +0800, Huang Rui wrote:
>> On Fri, Jul 14, 2017 at 06:20:17PM +0800, Junwei Zhang wrote:
>>> Signed-off-by: Junwei Zhang <Jerry.Zhang at amd.com>
>>> ---
>>>   drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c | 3 +--
>>>   1 file changed, 1 insertion(+), 2 deletions(-)
>>>
>>> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c
>>> index ba743d4..71ce3ee 100644
>>> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c
>>> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c
>>> @@ -95,9 +95,8 @@ int psp_wait_for(struct psp_context *psp, uint32_t reg_index,
>>>   	int i;
>>>   	struct amdgpu_device *adev = psp->adev;
>>>
>>> -	val = RREG32(reg_index);
>>> -
>>>   	for (i = 0; i < adev->usec_timeout; i++) {
>>> +		val = RREG32(reg_index);
>>>   		if (check_changed) {
>>>   			if (val != reg_val)
>>>   				return 0;
>>
>> Nice catch. I remembered Ken also mentioned it before. This should fix the
>> issue I encountered before during bring-up. Can you open this handshake in
>> psp_v3_1_bootloader_load_sos and double check if this handshake is workable
>> with this fix. If yes, please add it back.

Yes, it could fix this.
Later I will enable it.

Jerry

>>
>> #if 0
>>          ret = psp_wait_for(psp, SOC15_REG_OFFSET(MP0, 0, mmMP0_SMN_C2PMSG_81),
>>                             RREG32_SOC15(MP0, 0, mmMP0_SMN_C2PMSG_81),
>>                             0, true);
>> #endif
>>
>> Acked-by: Huang Rui <ray.huang at amd.com>
>
> BTW: please add Cc: <stable at vger.kernel.org> in your patch, it need be
> backported to stable tree.
>
> Thanks,
> Rui
> _______________________________________________
> 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