Re: [PATCH] ACPI: PM: Add support for upcoming AMD uPEP HID AMDI007

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 7/19/2021 07:09, Rafael J. Wysocki wrote:
On Sun, Jul 18, 2021 at 6:11 AM Mario Limonciello
<mario.limonciello@xxxxxxx> wrote:

AMD systems with uPEP HID AMDI007 should be using revision 2 and
the AMD method.

CC: stable@xxxxxxxxxx # v5.14

Well, what do you mean?

5.14 is still under development.

I didn't want to presume the timing or target that you would accept this. If it's still viable for 5.14, then yes that would be preferable.
Can you just remove that line from commit message?

Thanks,



Signed-off-by: Mario Limonciello <mario.limonciello@xxxxxxx>
---
  drivers/acpi/x86/s2idle.c | 10 ++++++++--
  1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/drivers/acpi/x86/s2idle.c b/drivers/acpi/x86/s2idle.c
index 1c507804fb10..fbdbef0ab552 100644
--- a/drivers/acpi/x86/s2idle.c
+++ b/drivers/acpi/x86/s2idle.c
@@ -378,19 +378,25 @@ static int lps0_device_attach(struct acpi_device *adev,
                  * AMDI0006:
                  * - should use rev_id 0x0
                  * - function mask = 0x3: Should use Microsoft method
+                * AMDI0007:
+                * - Should use rev_id 0x2
+                * - Should only use AMD method
                  */
                 const char *hid = acpi_device_hid(adev);
-               rev_id = 0;
+               rev_id = strcmp(hid, "AMDI0007") ? 0 : 2;
                 lps0_dsm_func_mask = validate_dsm(adev->handle,
                                         ACPI_LPS0_DSM_UUID_AMD, rev_id, &lps0_dsm_guid);
                 lps0_dsm_func_mask_microsoft = validate_dsm(adev->handle,
-                                       ACPI_LPS0_DSM_UUID_MICROSOFT, rev_id,
+                                       ACPI_LPS0_DSM_UUID_MICROSOFT, 0,
                                         &lps0_dsm_guid_microsoft);
                 if (lps0_dsm_func_mask > 0x3 && (!strcmp(hid, "AMD0004") ||
                                                  !strcmp(hid, "AMDI0005"))) {
                         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")) {
+                       lps0_dsm_func_mask_microsoft = -EINVAL;
+                       acpi_handle_debug(adev->handle, "_DSM Using AMD method\n");
                 }
         } else {
                 rev_id = 1;
--
2.25.1





[Index of Archives]     [Linux IBM ACPI]     [Linux Power Management]     [Linux Kernel]     [Linux Laptop]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]     [Linux Resources]

  Powered by Linux