[PATCH] drm/amd/pm: avoid duplicate powergate/ungate setting

Lazar, Lijo lijo.lazar at amd.com
Tue Nov 9 07:28:50 UTC 2021



On 11/9/2021 12:46 PM, Christian König wrote:
> Am 08.11.21 um 15:41 schrieb Lazar, Lijo:
>>
>>
>> On 11/8/2021 7:44 PM, Christian König wrote:
>>> Am 08.11.21 um 12:15 schrieb Borislav Petkov:
>>>> On Mon, Nov 08, 2021 at 09:51:03AM +0100, Paul Menzel wrote:
>>>>> Please elaborate the kind of issues.
>>>> It fails to reboot on Carrizo-based laptops.
>>>
>>> That doesn't necessary sounds like a good idea to me then.
>>>
>>> What exactly is going wrong here? And what is the rational that we 
>>> must fix this by avoiding updating the current state?
>>>
>>
>> Reboot will trigger a suspend of IPs. As part of UVD/VCE suspend, now 
>> there is an added logic to power gate the IP as part of suspend 
>> sequence. In case of UVD/VCE, power gating would have already happened 
>> as part of idle work execution.
>>
>> In any case, power gating is done by SMU FW. The assumption here is - 
>> the logic to power gate IP could involve register programming. AFAIK, 
>> accessing some UVD/VCE regs during powergate state could cause a hang 
>> unless the anti-hang mechanism is not programmed. That means either FW 
>> or driver needs to track the state of IP before accessing those regs 
>> and in this case probably FW is assuming driver to be responsible. 
>> i.e., not to call power off again if it's already powered down.
>>
>> Though that seems to be a bad assumption on part of FW, it is still a 
>> possibility. Haven't seen the actual FW code, it's a very old program.
> 
> 
> Ok guys I've double checked the git history and found that this here is 
> not as it is intended to be.
> 
> See the code in question was just added in August by the following commit:
> 
> commit 859e4659273f1df3a23e3990826bcb41e85f68a5
> Author: Evan Quan <evan.quan at amd.com>
> Date:   Thu Aug 19 12:07:59 2021 +0800
> 
>      drm/amdgpu: add missing cleanups for more ASICs on UVD/VCE suspend
> 
>      This is a supplement for commit below:
>      "drm/amdgpu: add missing cleanups for Polaris12 UVD/VCE on suspend".
> 
>      Signed-off-by: Evan Quan <evan.quan at amd.com>
>      Reviewed-by: Guchun Chen <guchun.chen at amd.com>
>      Signed-off-by: Alex Deucher <alexander.deucher at amd.com>
> 
> Before that we where just not touching the UVD power state at all during 
> suspend and so we won't had a problem in the first place.
> 
> So what we should do instead is to just revert commit 
> 859e4659273f1df3a23e3990826bcb41e85f68a5 with a proper fixes Tag and 
> explanation why that is a bad idea.
> 

Yeah, right. If I remember correctly, this commit was originally added 
to fix hangs with S3 suspend/resume cycles triggered during video 
playback. Reverting could bring back that one. Evan will know more 
background details.

Thanks,
Lijo

> Regards,
> Christian.
> 
> 
>>
>> Thanks,
>> Lijo
>>
>>> See we usually assume that updating to the already set state is 
>>> unproblematic and that here sounds like just trying to mitigated some 
>>> issues instead of fixing the root cause.
>>>
>>> Regards,
>>> Christian.
>>>
>>>>
>>>> Whoever commits this, pls add
>>>>
>>>> Link: https://lore.kernel.org/r/YV81vidWQLWvATMM@zn.tnic
>>>>
>>>> so that it is clear what the whole story way.
>>>>
>>>> Thx.
>>>>
>>>
> 


More information about the amd-gfx mailing list