[PATCH] drm/amd: apply s0ix codepath to more cases

Limonciello, Mario Mario.Limonciello at amd.com
Tue Jan 11 18:58:05 UTC 2022


[AMD Official Use Only]



> -----Original Message-----
> From: Lazar, Lijo <Lijo.Lazar at amd.com>
> Sent: Tuesday, January 11, 2022 12:54
> To: Limonciello, Mario <Mario.Limonciello at amd.com>; amd-
> gfx at lists.freedesktop.org
> Cc: Bjoren Dasse <bjoern.daase at gmail.com>
> Subject: Re: [PATCH] drm/amd: apply s0ix codepath to more cases
> 
> 
> 
> On 1/11/2022 10:59 PM, Mario Limonciello wrote:
> > On some OEM setups users can configure the BIOS for S3 or S2idle.
> > When configured to S3 users can still choose 's2idle' in the kernel
> > by using `/sys/power/mem_sleep`.  When configured this way, the system
> > will use more power but should still work for suspend and resume.
> >
> > As such, remove the checks that put the GPU driver into the S3 codepaths
> > when the user has selected s2idle.
> >
> > Reported-by: Bjoren Dasse <bjoern.daase at gmail.com>
> > BugLink: https://gitlab.freedesktop.org/drm/amd/-/issues/1824
> > BugLink: https://bugzilla.kernel.org/show_bug.cgi?id=215387
> > Signed-off-by: Mario Limonciello <mario.limonciello at amd.com>
> > ---
> >   drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c | 15 +++++++++------
> >   1 file changed, 9 insertions(+), 6 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c
> b/drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c
> > index 4811b0faafd9..a46bac8f79af 100644
> > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c
> > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c
> > @@ -1040,11 +1040,14 @@ void amdgpu_acpi_detect(void)
> >    */
> >   bool amdgpu_acpi_is_s0ix_active(struct amdgpu_device *adev)
> >   {
> > -#if IS_ENABLED(CONFIG_AMD_PMC) && IS_ENABLED(CONFIG_SUSPEND)
> > -	if (acpi_gbl_FADT.flags & ACPI_FADT_LOW_POWER_S0) {
> > -		if (adev->flags & AMD_IS_APU)
> > -			return pm_suspend_target_state ==
> PM_SUSPEND_TO_IDLE;
> > -	}
> > +	if (!(adev->flags & AMD_IS_APU))
> > +		return false;
> > +	if (!(acpi_gbl_FADT.flags & ACPI_FADT_LOW_POWER_S0))
> > +		dev_warn_once(adev->dev,
> > +			      "BIOS is not configured for suspend-to-idle, power
> consumption will be higher\n");
> > +#if !IS_ENABLED(CONFIG_AMD_PMC)
> > +	dev_warn_once(adev->dev,
> > +		      "amd-pmc is not enabled in the kernel, power consumption
> will be higher\n");
> >   #endif
> 
> It makes sense to emit these warnings only when pm_suspend_target_state
> == PM_SUSPEND_TO_IDLE.
> 

That's true - thanks.  The other open question ends up being whether this even
will work since the SMU never powers down the GPU without the rest of the
firmware support.

The possibilities I see are:
1) Just try it (what is happening now).
2) Reset GPU after coming back for safety.
3) Don't power down GPU without firmware support.
4) Fail the suspend without firmware support.

> Thanks,
> Lijo
> 
> > -	return false;
> > +	return pm_suspend_target_state == PM_SUSPEND_TO_IDLE;
> >   }
> >


More information about the amd-gfx mailing list