rebase patches on top of Ubuntu-6.1.0-14.14
(generated with debian/scripts/import-upstream-tag) Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
This commit is contained in:
parent
b7cd468287
commit
5ddf42542e
@ -55,10 +55,10 @@ Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
|
|||||||
2 files changed, 111 insertions(+)
|
2 files changed, 111 insertions(+)
|
||||||
|
|
||||||
diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentation/admin-guide/kernel-parameters.txt
|
diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentation/admin-guide/kernel-parameters.txt
|
||||||
index ff56a4fe3f95..100342e59f45 100644
|
index 7ab595b21b24..87caff8d4561 100644
|
||||||
--- a/Documentation/admin-guide/kernel-parameters.txt
|
--- a/Documentation/admin-guide/kernel-parameters.txt
|
||||||
+++ b/Documentation/admin-guide/kernel-parameters.txt
|
+++ b/Documentation/admin-guide/kernel-parameters.txt
|
||||||
@@ -4155,6 +4155,15 @@
|
@@ -4172,6 +4172,15 @@
|
||||||
Also, it enforces the PCI Local Bus spec
|
Also, it enforces the PCI Local Bus spec
|
||||||
rule that those bits should be 0 in system reset
|
rule that those bits should be 0 in system reset
|
||||||
events (useful for kexec/kdump cases).
|
events (useful for kexec/kdump cases).
|
||||||
|
@ -14,7 +14,7 @@ Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
|
|||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug
|
diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug
|
||||||
index 3638b3424be5..43172078db03 100644
|
index 12dfe6691dd5..930bbd7ddffd 100644
|
||||||
--- a/lib/Kconfig.debug
|
--- a/lib/Kconfig.debug
|
||||||
+++ b/lib/Kconfig.debug
|
+++ b/lib/Kconfig.debug
|
||||||
@@ -365,7 +365,7 @@ config PAHOLE_HAS_BTF_TAG
|
@@ -365,7 +365,7 @@ config PAHOLE_HAS_BTF_TAG
|
||||||
|
@ -1,47 +0,0 @@
|
|||||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Jocelyn Falempe <jfalempe@redhat.com>
|
|
||||||
Date: Thu, 13 Oct 2022 15:28:10 +0200
|
|
||||||
Subject: [PATCH] drm/mgag200: Fix PLL setup for G200_SE_A rev >=4
|
|
||||||
|
|
||||||
commit b389286d0234e1edbaf62ed8bc0892a568c33662 upstream.
|
|
||||||
|
|
||||||
For G200_SE_A, PLL M setting is wrong, which leads to blank screen,
|
|
||||||
or "signal out of range" on VGA display.
|
|
||||||
previous code had "m |= 0x80" which was changed to
|
|
||||||
m |= ((pixpllcn & BIT(8)) >> 1);
|
|
||||||
|
|
||||||
Tested on G200_SE_A rev 42
|
|
||||||
|
|
||||||
This line of code was moved to another file with
|
|
||||||
commit 877507bb954e ("drm/mgag200: Provide per-device callbacks for
|
|
||||||
PIXPLLC") but can be easily backported before this commit.
|
|
||||||
|
|
||||||
v2: * put BIT(7) First to respect MSB-to-LSB (Thomas)
|
|
||||||
* Add a comment to explain that this bit must be set (Thomas)
|
|
||||||
|
|
||||||
Fixes: 2dd040946ecf ("drm/mgag200: Store values (not bits) in struct mgag200_pll_values")
|
|
||||||
Cc: stable@vger.kernel.org
|
|
||||||
Signed-off-by: Jocelyn Falempe <jfalempe@redhat.com>
|
|
||||||
Reviewed-by: Thomas Zimmermann <tzimmermann@suse.de>
|
|
||||||
Link: https://patchwork.freedesktop.org/patch/msgid/20221013132810.521945-1-jfalempe@redhat.com
|
|
||||||
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
|
||||||
(cherry picked from commit 3650c063f22d03795026bd6f3d473e5bbdabb442)
|
|
||||||
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
|
|
||||||
---
|
|
||||||
drivers/gpu/drm/mgag200/mgag200_g200se.c | 3 ++-
|
|
||||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/drivers/gpu/drm/mgag200/mgag200_g200se.c b/drivers/gpu/drm/mgag200/mgag200_g200se.c
|
|
||||||
index be389ed91cbd..bd6e573c9a1a 100644
|
|
||||||
--- a/drivers/gpu/drm/mgag200/mgag200_g200se.c
|
|
||||||
+++ b/drivers/gpu/drm/mgag200/mgag200_g200se.c
|
|
||||||
@@ -284,7 +284,8 @@ static void mgag200_g200se_04_pixpllc_atomic_update(struct drm_crtc *crtc,
|
|
||||||
pixpllcp = pixpllc->p - 1;
|
|
||||||
pixpllcs = pixpllc->s;
|
|
||||||
|
|
||||||
- xpixpllcm = pixpllcm | ((pixpllcn & BIT(8)) >> 1);
|
|
||||||
+ // For G200SE A, BIT(7) should be set unconditionally.
|
|
||||||
+ xpixpllcm = BIT(7) | pixpllcm;
|
|
||||||
xpixpllcn = pixpllcn;
|
|
||||||
xpixpllcp = (pixpllcs << 3) | pixpllcp;
|
|
||||||
|
|
@ -1,59 +0,0 @@
|
|||||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Vlastimil Babka <vbabka@suse.cz>
|
|
||||||
Date: Fri, 16 Dec 2022 17:32:27 +0100
|
|
||||||
Subject: [PATCH] mm, mremap: fix mremap() expanding vma with addr inside vma
|
|
||||||
MIME-Version: 1.0
|
|
||||||
Content-Type: text/plain; charset=UTF-8
|
|
||||||
Content-Transfer-Encoding: 8bit
|
|
||||||
|
|
||||||
commit 6f12be792fde994ed934168f93c2a0d2a0cf0bc5 upstream.
|
|
||||||
|
|
||||||
Since 6.1 we have noticed random rpm install failures that were tracked to
|
|
||||||
mremap() returning -ENOMEM and to commit ca3d76b0aa80 ("mm: add merging
|
|
||||||
after mremap resize").
|
|
||||||
|
|
||||||
The problem occurs when mremap() expands a VMA in place, but using an
|
|
||||||
starting address that's not vma->vm_start, but somewhere in the middle.
|
|
||||||
The extension_pgoff calculation introduced by the commit is wrong in that
|
|
||||||
case, so vma_merge() fails due to pgoffs not being compatible. Fix the
|
|
||||||
calculation.
|
|
||||||
|
|
||||||
By the way it seems that the situations, where rpm now expands a vma from
|
|
||||||
the middle, were made possible also due to that commit, thanks to the
|
|
||||||
improved vma merging. Yet it should work just fine, except for the buggy
|
|
||||||
calculation.
|
|
||||||
|
|
||||||
Link: https://lkml.kernel.org/r/20221216163227.24648-1-vbabka@suse.cz
|
|
||||||
Reported-by: Jiri Slaby <jirislaby@kernel.org>
|
|
||||||
Link: https://bugzilla.suse.com/show_bug.cgi?id=1206359
|
|
||||||
Fixes: ca3d76b0aa80 ("mm: add merging after mremap resize")
|
|
||||||
Signed-off-by: Vlastimil Babka <vbabka@suse.cz>
|
|
||||||
Cc: Jakub Matěna <matenajakub@gmail.com>
|
|
||||||
Cc: "Kirill A . Shutemov" <kirill@shutemov.name>
|
|
||||||
Cc: Liam Howlett <liam.howlett@oracle.com>
|
|
||||||
Cc: Matthew Wilcox <willy@infradead.org>
|
|
||||||
Cc: Mel Gorman <mgorman@techsingularity.net>
|
|
||||||
Cc: Michal Hocko <mhocko@kernel.org>
|
|
||||||
Cc: <stable@vger.kernel.org>
|
|
||||||
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
|
|
||||||
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
|
||||||
(cherry picked from commit 4d528dab403ba45db24769f5e5a9514ab0890351)
|
|
||||||
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
|
|
||||||
---
|
|
||||||
mm/mremap.c | 3 ++-
|
|
||||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/mm/mremap.c b/mm/mremap.c
|
|
||||||
index e465ffe279bb..fe587c5d6591 100644
|
|
||||||
--- a/mm/mremap.c
|
|
||||||
+++ b/mm/mremap.c
|
|
||||||
@@ -1016,7 +1016,8 @@ SYSCALL_DEFINE5(mremap, unsigned long, addr, unsigned long, old_len,
|
|
||||||
long pages = (new_len - old_len) >> PAGE_SHIFT;
|
|
||||||
unsigned long extension_start = addr + old_len;
|
|
||||||
unsigned long extension_end = addr + new_len;
|
|
||||||
- pgoff_t extension_pgoff = vma->vm_pgoff + (old_len >> PAGE_SHIFT);
|
|
||||||
+ pgoff_t extension_pgoff = vma->vm_pgoff +
|
|
||||||
+ ((extension_start - vma->vm_start) >> PAGE_SHIFT);
|
|
||||||
|
|
||||||
if (vma->vm_flags & VM_ACCOUNT) {
|
|
||||||
if (security_vm_enough_memory_mm(mm, pages)) {
|
|
@ -1,54 +0,0 @@
|
|||||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
|
|
||||||
Date: Thu, 15 Dec 2022 14:46:21 -0500
|
|
||||||
Subject: [PATCH] mm/mempolicy: fix memory leak in set_mempolicy_home_node
|
|
||||||
system call
|
|
||||||
|
|
||||||
commit 38ce7c9bdfc228c14d7621ba36d3eebedd9d4f76 upstream.
|
|
||||||
|
|
||||||
When encountering any vma in the range with policy other than MPOL_BIND or
|
|
||||||
MPOL_PREFERRED_MANY, an error is returned without issuing a mpol_put on
|
|
||||||
the policy just allocated with mpol_dup().
|
|
||||||
|
|
||||||
This allows arbitrary users to leak kernel memory.
|
|
||||||
|
|
||||||
Link: https://lkml.kernel.org/r/20221215194621.202816-1-mathieu.desnoyers@efficios.com
|
|
||||||
Fixes: c6018b4b2549 ("mm/mempolicy: add set_mempolicy_home_node syscall")
|
|
||||||
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
|
|
||||||
Reviewed-by: Randy Dunlap <rdunlap@infradead.org>
|
|
||||||
Reviewed-by: "Huang, Ying" <ying.huang@intel.com>
|
|
||||||
Reviewed-by: Aneesh Kumar K.V <aneesh.kumar@linux.ibm.com>
|
|
||||||
Acked-by: Michal Hocko <mhocko@suse.com>
|
|
||||||
Cc: Aneesh Kumar K.V <aneesh.kumar@linux.ibm.com>
|
|
||||||
Cc: Dave Hansen <dave.hansen@linux.intel.com>
|
|
||||||
Cc: Feng Tang <feng.tang@intel.com>
|
|
||||||
Cc: Michal Hocko <mhocko@kernel.org>
|
|
||||||
Cc: Andrea Arcangeli <aarcange@redhat.com>
|
|
||||||
Cc: Mel Gorman <mgorman@techsingularity.net>
|
|
||||||
Cc: Mike Kravetz <mike.kravetz@oracle.com>
|
|
||||||
Cc: Randy Dunlap <rdunlap@infradead.org>
|
|
||||||
Cc: Vlastimil Babka <vbabka@suse.cz>
|
|
||||||
Cc: Andi Kleen <ak@linux.intel.com>
|
|
||||||
Cc: Dan Williams <dan.j.williams@intel.com>
|
|
||||||
Cc: Huang Ying <ying.huang@intel.com>
|
|
||||||
Cc: <stable@vger.kernel.org> [5.17+]
|
|
||||||
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
|
|
||||||
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
|
||||||
(cherry picked from commit 0ce4cc6d269ddc448a825955b495f662f5d9e153)
|
|
||||||
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
|
|
||||||
---
|
|
||||||
mm/mempolicy.c | 1 +
|
|
||||||
1 file changed, 1 insertion(+)
|
|
||||||
|
|
||||||
diff --git a/mm/mempolicy.c b/mm/mempolicy.c
|
|
||||||
index 61aa9aedb728..02c8a712282f 100644
|
|
||||||
--- a/mm/mempolicy.c
|
|
||||||
+++ b/mm/mempolicy.c
|
|
||||||
@@ -1540,6 +1540,7 @@ SYSCALL_DEFINE4(set_mempolicy_home_node, unsigned long, start, unsigned long, le
|
|
||||||
* the home node for vmas we already updated before.
|
|
||||||
*/
|
|
||||||
if (new->mode != MPOL_BIND && new->mode != MPOL_PREFERRED_MANY) {
|
|
||||||
+ mpol_put(new);
|
|
||||||
err = -EOPNOTSUPP;
|
|
||||||
break;
|
|
||||||
}
|
|
@ -1,64 +0,0 @@
|
|||||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Mario Limonciello <mario.limonciello@amd.com>
|
|
||||||
Date: Thu, 15 Dec 2022 13:16:15 -0600
|
|
||||||
Subject: [PATCH] ACPI: x86: s2idle: Force AMD GUID/_REV 2 on HP Elitebook 865
|
|
||||||
|
|
||||||
commit 3ea45390e9c0d35805ef8357ace55594fd4233d0 upstream.
|
|
||||||
|
|
||||||
HP Elitebook 865 supports both the AMD GUID w/ _REV 2 and Microsoft
|
|
||||||
GUID with _REV 0. Both have very similar code but the AMD GUID
|
|
||||||
has a special workaround that is specific to a problem with
|
|
||||||
spurious wakeups on systems with Qualcomm WLAN.
|
|
||||||
|
|
||||||
This is believed to be a bug in the Qualcomm WLAN F/W (it doesn't
|
|
||||||
affect any other WLAN H/W). If this WLAN firmware is fixed this
|
|
||||||
quirk can be dropped.
|
|
||||||
|
|
||||||
Cc: stable@vger.kernel.org # 6.1
|
|
||||||
Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>
|
|
||||||
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
|
|
||||||
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
|
||||||
(cherry picked from commit 577821f756cf3dfd308906d38610db178268841a)
|
|
||||||
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
|
|
||||||
---
|
|
||||||
drivers/acpi/x86/s2idle.c | 20 ++++++++++++++++++++
|
|
||||||
1 file changed, 20 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/drivers/acpi/x86/s2idle.c b/drivers/acpi/x86/s2idle.c
|
|
||||||
index 5350c73564b6..422415cb14f4 100644
|
|
||||||
--- a/drivers/acpi/x86/s2idle.c
|
|
||||||
+++ b/drivers/acpi/x86/s2idle.c
|
|
||||||
@@ -401,6 +401,13 @@ static const struct acpi_device_id amd_hid_ids[] = {
|
|
||||||
{}
|
|
||||||
};
|
|
||||||
|
|
||||||
+static int lps0_prefer_amd(const struct dmi_system_id *id)
|
|
||||||
+{
|
|
||||||
+ pr_debug("Using AMD GUID w/ _REV 2.\n");
|
|
||||||
+ rev_id = 2;
|
|
||||||
+ return 0;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
static int lps0_prefer_microsoft(const struct dmi_system_id *id)
|
|
||||||
{
|
|
||||||
pr_debug("Preferring Microsoft GUID.\n");
|
|
||||||
@@ -462,6 +469,19 @@ static const struct dmi_system_id s2idle_dmi_table[] __initconst = {
|
|
||||||
DMI_MATCH(DMI_PRODUCT_NAME, "ROG Flow X16 GV601"),
|
|
||||||
},
|
|
||||||
},
|
|
||||||
+ {
|
|
||||||
+ /*
|
|
||||||
+ * AMD Rembrandt based HP EliteBook 835/845/865 G9
|
|
||||||
+ * Contains specialized AML in AMD/_REV 2 path to avoid
|
|
||||||
+ * triggering a bug in Qualcomm WLAN firmware. This may be
|
|
||||||
+ * removed in the future if that firmware is fixed.
|
|
||||||
+ */
|
|
||||||
+ .callback = lps0_prefer_amd,
|
|
||||||
+ .matches = {
|
|
||||||
+ DMI_MATCH(DMI_BOARD_VENDOR, "HP"),
|
|
||||||
+ DMI_MATCH(DMI_BOARD_NAME, "8990"),
|
|
||||||
+ },
|
|
||||||
+ },
|
|
||||||
{}
|
|
||||||
};
|
|
||||||
|
|
@ -1,190 +0,0 @@
|
|||||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Mario Limonciello <mario.limonciello@amd.com>
|
|
||||||
Date: Thu, 15 Dec 2022 13:16:16 -0600
|
|
||||||
Subject: [PATCH] ACPI: x86: s2idle: Stop using AMD specific codepath for
|
|
||||||
Rembrandt+
|
|
||||||
|
|
||||||
commit e555c85792bd5f9828a2fd2ca9761f70efb1c77b upstream.
|
|
||||||
|
|
||||||
After we introduced a module parameter and quirk infrastructure for
|
|
||||||
picking the Microsoft GUID over the SOC vendor GUID we discovered
|
|
||||||
that lots and lots of systems are getting this wrong.
|
|
||||||
|
|
||||||
The table continues to grow, and is becoming unwieldy.
|
|
||||||
|
|
||||||
We don't really have any benefit to forcing vendors to populate the
|
|
||||||
AMD GUID. This is just extra work, and more and more vendors seem
|
|
||||||
to mess it up. As the Microsoft GUID is used by Windows as well,
|
|
||||||
it's very likely that it won't be messed up like this.
|
|
||||||
|
|
||||||
So drop all the quirks forcing it and the Rembrandt behavior. This
|
|
||||||
means that Cezanne or later effectively only run the Microsoft GUID
|
|
||||||
codepath with the exception of HP Elitebook 8*5 G9.
|
|
||||||
|
|
||||||
Fixes: fd894f05cf30 ("ACPI: x86: s2idle: If a new AMD _HID is missing assume Rembrandt")
|
|
||||||
Cc: stable@vger.kernel.org # 6.1
|
|
||||||
Reported-by: Benjamin Cheng <ben@bcheng.me>
|
|
||||||
Reported-by: bilkow@tutanota.com
|
|
||||||
Reported-by: Paul <paul@zogpog.com>
|
|
||||||
Link: https://gitlab.freedesktop.org/drm/amd/-/issues/2292
|
|
||||||
Link: https://bugzilla.kernel.org/show_bug.cgi?id=216768
|
|
||||||
Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>
|
|
||||||
Reviewed-by: Philipp Zabel <philipp.zabel@gmail.com>
|
|
||||||
Tested-by: Philipp Zabel <philipp.zabel@gmail.com>
|
|
||||||
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
|
|
||||||
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
|
||||||
(cherry picked from commit e6d180a35bc0efd614b0df45f92a08550143555d)
|
|
||||||
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
|
|
||||||
---
|
|
||||||
drivers/acpi/x86/s2idle.c | 87 ++-------------------------------------
|
|
||||||
1 file changed, 3 insertions(+), 84 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/drivers/acpi/x86/s2idle.c b/drivers/acpi/x86/s2idle.c
|
|
||||||
index 422415cb14f4..c7afce465a07 100644
|
|
||||||
--- a/drivers/acpi/x86/s2idle.c
|
|
||||||
+++ b/drivers/acpi/x86/s2idle.c
|
|
||||||
@@ -28,10 +28,6 @@ static bool sleep_no_lps0 __read_mostly;
|
|
||||||
module_param(sleep_no_lps0, bool, 0644);
|
|
||||||
MODULE_PARM_DESC(sleep_no_lps0, "Do not use the special LPS0 device interface");
|
|
||||||
|
|
||||||
-static bool prefer_microsoft_dsm_guid __read_mostly;
|
|
||||||
-module_param(prefer_microsoft_dsm_guid, bool, 0644);
|
|
||||||
-MODULE_PARM_DESC(prefer_microsoft_dsm_guid, "Prefer using Microsoft GUID in LPS0 device _DSM evaluation");
|
|
||||||
-
|
|
||||||
static const struct acpi_device_id lps0_device_ids[] = {
|
|
||||||
{"PNP0D80", },
|
|
||||||
{"", },
|
|
||||||
@@ -369,27 +365,15 @@ static int validate_dsm(acpi_handle handle, const char *uuid, int rev, guid_t *d
|
|
||||||
}
|
|
||||||
|
|
||||||
struct amd_lps0_hid_device_data {
|
|
||||||
- const unsigned int rev_id;
|
|
||||||
const bool check_off_by_one;
|
|
||||||
- const bool prefer_amd_guid;
|
|
||||||
};
|
|
||||||
|
|
||||||
static const struct amd_lps0_hid_device_data amd_picasso = {
|
|
||||||
- .rev_id = 0,
|
|
||||||
.check_off_by_one = true,
|
|
||||||
- .prefer_amd_guid = false,
|
|
||||||
};
|
|
||||||
|
|
||||||
static const struct amd_lps0_hid_device_data amd_cezanne = {
|
|
||||||
- .rev_id = 0,
|
|
||||||
.check_off_by_one = false,
|
|
||||||
- .prefer_amd_guid = false,
|
|
||||||
-};
|
|
||||||
-
|
|
||||||
-static const struct amd_lps0_hid_device_data amd_rembrandt = {
|
|
||||||
- .rev_id = 2,
|
|
||||||
- .check_off_by_one = false,
|
|
||||||
- .prefer_amd_guid = true,
|
|
||||||
};
|
|
||||||
|
|
||||||
static const struct acpi_device_id amd_hid_ids[] = {
|
|
||||||
@@ -397,7 +381,6 @@ static const struct acpi_device_id amd_hid_ids[] = {
|
|
||||||
{"AMD0005", (kernel_ulong_t)&amd_picasso, },
|
|
||||||
{"AMDI0005", (kernel_ulong_t)&amd_picasso, },
|
|
||||||
{"AMDI0006", (kernel_ulong_t)&amd_cezanne, },
|
|
||||||
- {"AMDI0007", (kernel_ulong_t)&amd_rembrandt, },
|
|
||||||
{}
|
|
||||||
};
|
|
||||||
|
|
||||||
@@ -407,68 +390,7 @@ static int lps0_prefer_amd(const struct dmi_system_id *id)
|
|
||||||
rev_id = 2;
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
-
|
|
||||||
-static int lps0_prefer_microsoft(const struct dmi_system_id *id)
|
|
||||||
-{
|
|
||||||
- pr_debug("Preferring Microsoft GUID.\n");
|
|
||||||
- prefer_microsoft_dsm_guid = true;
|
|
||||||
- return 0;
|
|
||||||
-}
|
|
||||||
-
|
|
||||||
static const struct dmi_system_id s2idle_dmi_table[] __initconst = {
|
|
||||||
- {
|
|
||||||
- /*
|
|
||||||
- * ASUS TUF Gaming A17 FA707RE
|
|
||||||
- * https://bugzilla.kernel.org/show_bug.cgi?id=216101
|
|
||||||
- */
|
|
||||||
- .callback = lps0_prefer_microsoft,
|
|
||||||
- .matches = {
|
|
||||||
- DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."),
|
|
||||||
- DMI_MATCH(DMI_PRODUCT_NAME, "ASUS TUF Gaming A17"),
|
|
||||||
- },
|
|
||||||
- },
|
|
||||||
- {
|
|
||||||
- /* ASUS ROG Zephyrus G14 (2022) */
|
|
||||||
- .callback = lps0_prefer_microsoft,
|
|
||||||
- .matches = {
|
|
||||||
- DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."),
|
|
||||||
- DMI_MATCH(DMI_PRODUCT_NAME, "ROG Zephyrus G14 GA402"),
|
|
||||||
- },
|
|
||||||
- },
|
|
||||||
- {
|
|
||||||
- /*
|
|
||||||
- * Lenovo Yoga Slim 7 Pro X 14ARH7
|
|
||||||
- * https://bugzilla.kernel.org/show_bug.cgi?id=216473 : 82V2
|
|
||||||
- * https://bugzilla.kernel.org/show_bug.cgi?id=216438 : 82TL
|
|
||||||
- */
|
|
||||||
- .callback = lps0_prefer_microsoft,
|
|
||||||
- .matches = {
|
|
||||||
- DMI_MATCH(DMI_BOARD_VENDOR, "LENOVO"),
|
|
||||||
- DMI_MATCH(DMI_PRODUCT_NAME, "82"),
|
|
||||||
- },
|
|
||||||
- },
|
|
||||||
- {
|
|
||||||
- /*
|
|
||||||
- * ASUSTeK COMPUTER INC. ROG Flow X13 GV301RE_GV301RE
|
|
||||||
- * https://gitlab.freedesktop.org/drm/amd/-/issues/2148
|
|
||||||
- */
|
|
||||||
- .callback = lps0_prefer_microsoft,
|
|
||||||
- .matches = {
|
|
||||||
- DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."),
|
|
||||||
- DMI_MATCH(DMI_PRODUCT_NAME, "ROG Flow X13 GV301"),
|
|
||||||
- },
|
|
||||||
- },
|
|
||||||
- {
|
|
||||||
- /*
|
|
||||||
- * ASUSTeK COMPUTER INC. ROG Flow X16 GV601RW_GV601RW
|
|
||||||
- * https://gitlab.freedesktop.org/drm/amd/-/issues/2148
|
|
||||||
- */
|
|
||||||
- .callback = lps0_prefer_microsoft,
|
|
||||||
- .matches = {
|
|
||||||
- DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."),
|
|
||||||
- DMI_MATCH(DMI_PRODUCT_NAME, "ROG Flow X16 GV601"),
|
|
||||||
- },
|
|
||||||
- },
|
|
||||||
{
|
|
||||||
/*
|
|
||||||
* AMD Rembrandt based HP EliteBook 835/845/865 G9
|
|
||||||
@@ -504,16 +426,14 @@ static int lps0_device_attach(struct acpi_device *adev,
|
|
||||||
if (dev_id->id[0])
|
|
||||||
data = (const struct amd_lps0_hid_device_data *) dev_id->driver_data;
|
|
||||||
else
|
|
||||||
- data = &amd_rembrandt;
|
|
||||||
- rev_id = data->rev_id;
|
|
||||||
+ data = &amd_cezanne;
|
|
||||||
lps0_dsm_func_mask = validate_dsm(adev->handle,
|
|
||||||
ACPI_LPS0_DSM_UUID_AMD, rev_id, &lps0_dsm_guid);
|
|
||||||
if (lps0_dsm_func_mask > 0x3 && data->check_off_by_one) {
|
|
||||||
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 && data->prefer_amd_guid &&
|
|
||||||
- !prefer_microsoft_dsm_guid) {
|
|
||||||
+ } else if (lps0_dsm_func_mask_microsoft > 0 && rev_id) {
|
|
||||||
lps0_dsm_func_mask_microsoft = -EINVAL;
|
|
||||||
acpi_handle_debug(adev->handle, "_DSM Using AMD method\n");
|
|
||||||
}
|
|
||||||
@@ -521,8 +441,7 @@ static int lps0_device_attach(struct acpi_device *adev,
|
|
||||||
rev_id = 1;
|
|
||||||
lps0_dsm_func_mask = validate_dsm(adev->handle,
|
|
||||||
ACPI_LPS0_DSM_UUID, rev_id, &lps0_dsm_guid);
|
|
||||||
- if (!prefer_microsoft_dsm_guid)
|
|
||||||
- lps0_dsm_func_mask_microsoft = -EINVAL;
|
|
||||||
+ lps0_dsm_func_mask_microsoft = -EINVAL;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (lps0_dsm_func_mask < 0 && lps0_dsm_func_mask_microsoft < 0)
|
|
Loading…
Reference in New Issue
Block a user