ERROR: modpost: "pm_suspend_target_state" [drivers/gpu/drm/amd/amdgpu/amdgpu.ko] undefined!

Borislav Petkov bp at alien8.de
Mon Aug 23 20:28:25 UTC 2021


On Mon, Aug 23, 2021 at 03:49:39PM -0400, Alex Deucher wrote:
> Maybe fixed with this patch?
> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=5706cb3c910cc8283f344bc37a889a8d523a2c6d

Nope, this one is already in:

$ git tag --contains 5706cb3c910cc8283f344bc37a889a8d523a2c6d
v5.14-rc5
v5.14-rc6
v5.14-rc7

also, from only a quick poke so IMHO, the error says:

ERROR: modpost: "pm_suspend_target_state" [drivers/gpu/drm/amd/amdgpu/amdgpu.ko] undefined!

which means you need the

EXPORT_SYMBOL_GPL(pm_suspend_target_state);

which is in kernel/power/suspend.c which gets enabled with

obj-$(CONFIG_SUSPEND)           += suspend.o

and if you look at PM_SLEEP:

config PM_SLEEP
        def_bool y
        depends on SUSPEND || HIBERNATE_CALLBACKS

(notice the ||)

and my randconfig has:

$ grep -E "(HIBERNATE_CALLBACKS|SUSPEND)" .config
# CONFIG_SUSPEND is not set
CONFIG_HIBERNATE_CALLBACKS=y

which means, you need:

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c
index 4137e848f6a2..a9ce3b20d371 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c
@@ -1040,7 +1040,7 @@ void amdgpu_acpi_detect(void)
  */
 bool amdgpu_acpi_is_s0ix_supported(struct amdgpu_device *adev)
 {
-#if IS_ENABLED(CONFIG_AMD_PMC) && IS_ENABLED(CONFIG_PM_SLEEP)
+#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;


but whether that gives you what you want for amdgpu, you probably need
to ponder on a bit.

I sincerely hope that helps a little.

-- 
Regards/Gruss,
    Boris.

https://people.kernel.org/tglx/notes-about-netiquette


More information about the amd-gfx mailing list