https://bugzilla.kernel.org/show_bug.cgi?id=216101

--- Comment #7 from Mario Limonciello (AMD) (mario.limoncie...@amd.com) ---
OK I think I see what might be going on.  In the PEP device there is an extra
call in the 11e00d56-ce64-47ce-837b-1f898f9aa461 case for modern standby exit:

                        Case (0x08)
                        {
                            M000 (0x3E08)
                            If (CondRefOf (\_SB.PCI0.GPP7.DEV0))
                            {
                                M460 ("    Notify (\\_SB.PCI0.GPP7.DEV0,
0x1)\n", Zero, Zero, Zero, Zero, Zero, Zero)
                                Notify (\_SB.PCI0.GPP7.DEV0, One) // Device
Check
                            }

                            Return (Zero)
                        }

In the e3f32452-febc-43ce-9039-932122d37721 case (which is used by default in
Linux) I don't see that call in the matching exit routines:
                        Case (0x03)
                        {
                            M000 (0x3E05)
                            Return (Zero)
                        }
or 
                        Case (0x05)
                        {
                            M000 (0x3E03)
                            Return (Zero)
                        }

I would hypothesize this is the reason for the problem.

Please have a try with this change.  It's not upstreamable like this, but given
it's a firmware bug it would at least prove the correct root cause and we can
think about how to do it better.

diff --git a/drivers/acpi/x86/s2idle.c b/drivers/acpi/x86/s2idle.c
index f9ac12b778e6..c9a7dd474892 100644
--- a/drivers/acpi/x86/s2idle.c
+++ b/drivers/acpi/x86/s2idle.c
@@ -394,11 +394,6 @@ static int lps0_device_attach(struct acpi_device *adev,
                        lps0_dsm_func_mask = (lps0_dsm_func_mask << 1) | 0x1;
                        acpi_handle_debug(adev->handle, "_DSM UUID %s: Adjusted
function mask: 0x%x\n",
                                          ACPI_LPS0_DSM_UUID_AMD,
lps0_dsm_func_mask);
-               } else if (lps0_dsm_func_mask_microsoft > 0 &&
-                               (!strcmp(hid, "AMDI0007") ||
-                                !strcmp(hid, "AMDI0008"))) {
-                       lps0_dsm_func_mask_microsoft = -EINVAL;
-                       acpi_handle_debug(adev->handle, "_DSM Using AMD
method\n");
                }
        } else {
                rev_id = 1;

-- 
You may reply to this email to add a comment.

You are receiving this mail because:
You are watching the assignee of the bug.

_______________________________________________
acpi-bugzilla mailing list
acpi-bugzilla@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/acpi-bugzilla

Reply via email to