summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorTaijian2023-05-09 13:31:24 +0200
committerTaijian2023-05-09 13:31:24 +0200
commit49aeaf6639822a0d281567420bd8d1666f3d1bd8 (patch)
tree81e8d1ce4c3a08ada6f28509e2b7a06559f06012
parent2bbfe28010ae41a3b1c86d9c25a6f290c684d73c (diff)
downloadaur-49aeaf6639822a0d281567420bd8d1666f3d1bd8.tar.gz
update to 6.3.1
-rw-r--r--.SRCINFO66
-rw-r--r--0001-HID-asus-Add-support-for-ASUS-ROG-Z13-keyboard.patch (renamed from 0029-HID-asus-Add-support-for-ASUS-ROG-Z13-keyboard.patch)13
-rw-r--r--0001-Revert-perf-x86-intel-Fix-unchecked-MSR-access-error.patch127
-rw-r--r--0001-constgran-v2.patch86
-rw-r--r--0001-linux6.1.y-bore2.2.1.patch458
-rw-r--r--0002-HID-asus-add-keycodes-for-0x6a-0x4b-and-0xc7.patch48
-rw-r--r--0002-mm-add-vma_has_recency.patch272
-rw-r--r--0003-HID-asus-reformat-the-hotkey-mapping-block.patch78
-rw-r--r--0004-ALSA-hda-realtek-Add-quirk-for-2nd-ASUS-GU603.patch27
-rw-r--r--0005-ACPI-resource-Skip-IRQ-override-on-ASUS-TUF-Gaming-A.patch45
-rw-r--r--0006-ACPI-resource-Skip-IRQ-override-on-ASUS-TUF-Gaming-A.patch34
-rw-r--r--0007-platform-x86-asus-wmi-add-support-for-ASUS-screenpad.patch219
-rw-r--r--0024-V8-0-4-PCI-vmd-Enable-PCIe-ASPM-and-LTR-on-select-hardware.patch1420
-rw-r--r--0028-patch01_gu604_alc285_fixes.patch13
-rw-r--r--0029-patch02_gu604v_wmi_keys.patch18
-rw-r--r--0030-HID-asus-Add-support-for-ASUS-ROG-Z13-ACRNM-keyboard.patch43
-rw-r--r--0031-FX516PE-rgb-mode.patch68
-rw-r--r--0031-HID-asus-Map-0xc7-key-event-to-KEY_KBDILLUMTOGGLE.patch28
-rw-r--r--PKGBUILD191
-rwxr-xr-xchoose-gcc-optimization.sh6
-rwxr-xr-xchroot-build.sh42
-rw-r--r--config369
-rw-r--r--sys-kernel_arch-sources-g14_files-0004-5.17+--more-uarches-for-kernel.patch193
23 files changed, 1733 insertions, 2131 deletions
diff --git a/.SRCINFO b/.SRCINFO
index 02a5443409aa..6ebb6951963d 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,38 +1,42 @@
pkgbase = linux-g14
pkgdesc = Linux
- pkgver = 6.2.12.arch1
- pkgrel = 2
+ pkgver = 6.3.1.arch1
+ pkgrel = 1
url = https://gitlab.com/dragonn/linux-g14.git
arch = x86_64
license = GPL2
makedepends = bc
- makedepends = kmod
+ makedepends = cpio
+ makedepends = gettext
+ makedepends = git
makedepends = libelf
makedepends = pahole
- makedepends = cpio
+ makedepends = perl
makedepends = tar
makedepends = xz
- makedepends = xmlto
- makedepends = git
- makedepends = gcc>=11.0
+ makedepends = python
options = !strip
- source = archlinux-linux::git+https://github.com/archlinux/linux?signed#tag=v6.2.12-arch1
+ source = archlinux-linux::git+https://github.com/archlinux/linux?signed#tag=v6.3.1-arch1
source = config
source = choose-gcc-optimization.sh
source = sys-kernel_arch-sources-g14_files-0004-5.17+--more-uarches-for-kernel.patch::https://raw.githubusercontent.com/graysky2/kernel_compiler_patch/master/more-uarches-for-kernel-5.17+.patch
source = 0001-acpi-proc-idle-skip-dummy-wait.patch
source = 0019-HID-amd_sfh-Add-keyguard-for-ASUS-ROG-X13-tablet.patch
source = 0001-platform-x86-asus-wmi-Add-safety-checks-to-dgpu-egpu.patch
- source = 0001-Revert-perf-x86-intel-Fix-unchecked-MSR-access-error.patch
- source = 0024-V8-0-4-PCI-vmd-Enable-PCIe-ASPM-and-LTR-on-select-hardware.patch
source = 0027-mt76_-mt7921_-Disable-powersave-features-by-default.patch
source = 0001-Revert-PCI-Add-a-REBAR-size-quirk-for-Sapphire-RX-56.patch
- source = 0001-linux6.0.y-bore1.7.5.patch
- source = 0002-mm-add-vma_has_recency.patch
+ source = 0001-constgran-v2.patch
+ source = 0001-linux6.1.y-bore2.2.1.patch
source = 0028-patch01_gu604_alc285_fixes.patch
- source = 0029-HID-asus-Add-support-for-ASUS-ROG-Z13-keyboard.patch
- source = 0030-HID-asus-Add-support-for-ASUS-ROG-Z13-ACRNM-keyboard.patch
- source = 0031-HID-asus-Map-0xc7-key-event-to-KEY_KBDILLUMTOGGLE.patch
+ source = 0029-patch02_gu604v_wmi_keys.patch
+ source = 0031-FX516PE-rgb-mode.patch
+ source = 0001-HID-asus-Add-support-for-ASUS-ROG-Z13-keyboard.patch
+ source = 0002-HID-asus-add-keycodes-for-0x6a-0x4b-and-0xc7.patch
+ source = 0003-HID-asus-reformat-the-hotkey-mapping-block.patch
+ source = 0004-ALSA-hda-realtek-Add-quirk-for-2nd-ASUS-GU603.patch
+ source = 0005-ACPI-resource-Skip-IRQ-override-on-ASUS-TUF-Gaming-A.patch
+ source = 0006-ACPI-resource-Skip-IRQ-override-on-ASUS-TUF-Gaming-A.patch
+ source = 0007-platform-x86-asus-wmi-add-support-for-ASUS-screenpad.patch
source = sys-kernel_arch-sources-g14_files-0047-asus-nb-wmi-Add-tablet_mode_sw-lid-flip.patch
source = sys-kernel_arch-sources-g14_files-0048-asus-nb-wmi-fix-tablet_mode_sw_int.patch
source = sys-kernel_arch-sources-g14_files-0049-ALSA-hda-realtek-Add-quirk-for-ASUS-M16-GU603H.patch
@@ -41,22 +45,26 @@ pkgbase = linux-g14
validpgpkeys = A2FF3A36AAA56654109064AB19802F8B0D70FC30
validpgpkeys = C7E7849466FE2358343588377258734B41C31549
sha256sums = SKIP
- sha256sums = 70cf3252ff877cb91ca7eba13439ae181e693513b09ff43e83c48d2b0b46d0f8
- sha256sums = 278118011d7a2eeca9971ac97b31bf0c55ab55e99c662ab9ae4717b55819c9a2
- sha256sums = dea86a521603414a8c7bf9cf1f41090d5d6f8035ce31407449e25964befb1e50
+ sha256sums = 6b337a9d3cfdc00005589a80b8d36fa500f6a92ed21565a3aceec48d7202a7da
+ sha256sums = 38dd8add41aa2dc75a3da9d51358e28c2bd4510bd9abc54b6494d61e4a317fc2
+ sha256sums = 81ad663925a0aa5b5332a69bae7227393664bb81ee2e57a283e7f16e9ff75efe
sha256sums = 0a7ea482fe20c403788d290826cec42fe395e5a6eab07b88845f8b9a9829998d
sha256sums = d45e2ae1d21b1dc8e0de94a4fa58e9a53d72306843f87d3cc49f5f641399d8e3
sha256sums = 172dbc88d0a3cda78387f3c907fa4953c71cb1cb162f0b34f78b8b78924bc3d4
- sha256sums = 6739a42bf9d233cb58ae9a69c3f78959175de695e2d4a7e66bb9984fcf5c0f7e
- sha256sums = f036ac8a49153f66d7d8638508cfe0b4a158d12faf30d2c671b04a6b7b606b3b
sha256sums = a691e7b22633fe0c458d140167d6d381b66149e05de3cb926b30a19fd43e78ce
sha256sums = 7b16fce20b03babc9e149030f43e283534835bbd8835ba0a794fd0205fea1708
- sha256sums = bca0caa5efad45c0acde1e78d43f8ce1af6ebf3cbb0240b143be3e6486509970
- sha256sums = b6288935f2768a7023d11e9a200f47b087669ffd4d418f791ee71d5a51d0530e
- sha256sums = 5b19e3d557fbd52ef7e966b6d491c17a77769f03534b8cf9877fe3696e5d291f
- sha256sums = 1f63361ebbebecaaa3122ec174b39dfc346eda44592299a058b44bb4837b5d92
- sha256sums = 0febf2e8fee2e5c2222441464812aca66d21d714cd28aa7c218218b509d242fb
- sha256sums = 00feb23b3ed0983d13a8929ade35b3dcb23987d21f0e342db4dcb8292656a72e
+ sha256sums = efbf65b17fb48fd22f199b6fddd05f159f8ea31faad5543f2c07fddf45eb9f12
+ sha256sums = d4f8e606eaad9a1fe302f04b9023a3980eb2305108c0d8c90654d23e53ff8bef
+ sha256sums = 8614c92567822e38ac7a0893e93776f39bbb6d373797f4b713cef5b3c060c8f1
+ sha256sums = cdbcec3031878cdb7ffab32034e4ee31bbd0ec214088f95dc446a13320985631
+ sha256sums = ec3cced4d3d5de4827e07430a77fcba755d84b9cfded09dc0b6be46e28427f22
+ sha256sums = 14f695b481e1afc4ac8c79ef48f0613267c86d1862f3293d889f6f68e1b84188
+ sha256sums = 93b7ad2dd6b172d487d5e37847027f5854cae0c7291bc643d890045692903bab
+ sha256sums = 04167065497211326a3a6f83519111e2f81273c848143d300e7e3e91062c061b
+ sha256sums = f0bdd2287d6b1b04d440de2ccf7c523202a9846852fc6b92241b494e5220a86e
+ sha256sums = 185ccdbfa7d4a0a3c55412082d87c5965221a73442f076d396f1e8cc0aabece1
+ sha256sums = e20f3d11077c9abe8cc41c61378abd6b3fbd5059497a01baa881a810f1c91eb0
+ sha256sums = 22ae0fb68016064ce32d5a32235d463b6e65eff2af83fe70be976cf39b1a9623
sha256sums = 15e912a66e4bbce1cf0450f1dc6610653df29df8dd6d5426f9c1b039490436c8
sha256sums = 444f2d86de8c2177655b01596f939f99c2e7abfa8efad8a509e0a334f42dfa85
sha256sums = 982a31e47d3d586789e1b3cdda25f75e3b71d810e7494202089b8f2cef7c0ef9
@@ -64,10 +72,11 @@ pkgbase = linux-g14
pkgname = linux-g14
pkgdesc = The Linux kernel and modules
depends = coreutils
- depends = kmod
depends = initramfs
- optdepends = crda: to set the correct wireless channels of your country
+ depends = kmod
+ optdepends = wireless-regdb: to set the correct wireless channels of your country
optdepends = linux-firmware: firmware images needed for some devices
+ provides = KSMBD-MODULE
provides = VIRTUALBOX-GUEST-MODULES
provides = WIREGUARD-MODULE
provides = linux-rog
@@ -77,5 +86,4 @@ pkgname = linux-g14
pkgname = linux-g14-headers
pkgdesc = Headers and scripts for building modules for the Linux kernel
depends = pahole
- provides = linux-rog
provides = linux-rog-headers
diff --git a/0029-HID-asus-Add-support-for-ASUS-ROG-Z13-keyboard.patch b/0001-HID-asus-Add-support-for-ASUS-ROG-Z13-keyboard.patch
index 8c62dd0bb5bd..7219c48c637e 100644
--- a/0029-HID-asus-Add-support-for-ASUS-ROG-Z13-keyboard.patch
+++ b/0001-HID-asus-Add-support-for-ASUS-ROG-Z13-keyboard.patch
@@ -1,9 +1,10 @@
-From 797aa7ce7169594294cb78b358100f47ad2eb42e Mon Sep 17 00:00:00 2001
+From f92c356bbd162c710bd7ee8cbc81b8d0a7cc7bb0 Mon Sep 17 00:00:00 2001
From: "Luke D. Jones" <luke@ljones.dev>
-Date: Wed, 19 Apr 2023 11:58:48 +1200
-Subject: [PATCH 1/2] HID: asus: Add support for ASUS ROG Z13 keyboard
+Date: Mon, 24 Apr 2023 11:16:24 +1200
+Subject: [PATCH 1/7] HID: asus: Add support for ASUS ROG Z13 keyboard
-Add the ID of the Z13 keyboard and associated quirk.
+Add support for the ROG Z13 keyboard. This is a variant of the last
+few ASUS ROG keyboards and has much of the same functionality.
Signed-off-by: Luke D. Jones <luke@ljones.dev>
---
@@ -26,14 +27,14 @@ index d1094bb1aa42..ac93f987d822 100644
USB_DEVICE_ID_ASUSTEK_ROG_CLAYMORE_II_KEYBOARD),
QUIRK_ROG_CLAYMORE_II_KEYBOARD },
diff --git a/drivers/hid/hid-ids.h b/drivers/hid/hid-ids.h
-index c2e9b6d1fd7d..a2d78d0cf425 100644
+index c2e9b6d1fd7d..513290a2e91c 100644
--- a/drivers/hid/hid-ids.h
+++ b/drivers/hid/hid-ids.h
@@ -207,6 +207,7 @@
#define USB_DEVICE_ID_ASUSTEK_ROG_KEYBOARD3 0x1822
#define USB_DEVICE_ID_ASUSTEK_ROG_NKEY_KEYBOARD 0x1866
#define USB_DEVICE_ID_ASUSTEK_ROG_NKEY_KEYBOARD2 0x19b6
-+#define USB_DEVICE_ID_ASUSTEK_ROG_NKEY_KEYBOARD3 0x18c6
++#define USB_DEVICE_ID_ASUSTEK_ROG_NKEY_KEYBOARD3 0x1a30
#define USB_DEVICE_ID_ASUSTEK_ROG_CLAYMORE_II_KEYBOARD 0x196b
#define USB_DEVICE_ID_ASUSTEK_FX503VD_KEYBOARD 0x1869
diff --git a/0001-Revert-perf-x86-intel-Fix-unchecked-MSR-access-error.patch b/0001-Revert-perf-x86-intel-Fix-unchecked-MSR-access-error.patch
deleted file mode 100644
index 507a8c31a1b7..000000000000
--- a/0001-Revert-perf-x86-intel-Fix-unchecked-MSR-access-error.patch
+++ /dev/null
@@ -1,127 +0,0 @@
-From 94f0bed04310b9e8a061b48170b0b465e301f951 Mon Sep 17 00:00:00 2001
-From: "Luke D. Jones" <luke@ljones.dev>
-Date: Sun, 16 Oct 2022 22:14:09 +1300
-Subject: [PATCH] Revert "perf/x86/intel: Fix unchecked MSR access error for
- Alder Lake N"
-
-This reverts commit 24919fdea6f8b31d7cdf32ac291bc5dd0b023878.
----
- arch/x86/events/intel/core.c | 40 +-----------------------------------
- arch/x86/events/intel/ds.c | 9 ++------
- arch/x86/events/perf_event.h | 2 --
- 3 files changed, 3 insertions(+), 48 deletions(-)
-
-diff --git a/arch/x86/events/intel/core.c b/arch/x86/events/intel/core.c
-index a646a5f9a235..3939debb27e7 100644
---- a/arch/x86/events/intel/core.c
-+++ b/arch/x86/events/intel/core.c
-@@ -2102,15 +2102,6 @@ static struct extra_reg intel_tnt_extra_regs[] __read_mostly = {
- EVENT_EXTRA_END
- };
-
--EVENT_ATTR_STR(mem-loads, mem_ld_grt, "event=0xd0,umask=0x5,ldlat=3");
--EVENT_ATTR_STR(mem-stores, mem_st_grt, "event=0xd0,umask=0x6");
--
--static struct attribute *grt_mem_attrs[] = {
-- EVENT_PTR(mem_ld_grt),
-- EVENT_PTR(mem_st_grt),
-- NULL
--};
--
- static struct extra_reg intel_grt_extra_regs[] __read_mostly = {
- /* must define OFFCORE_RSP_X first, see intel_fixup_er() */
- INTEL_UEVENT_EXTRA_REG(0x01b7, MSR_OFFCORE_RSP_0, 0x3fffffffffull, RSP_0),
-@@ -6004,36 +5995,6 @@ __init int intel_pmu_init(void)
- name = "Tremont";
- break;
-
-- case INTEL_FAM6_ALDERLAKE_N:
-- x86_pmu.mid_ack = true;
-- memcpy(hw_cache_event_ids, glp_hw_cache_event_ids,
-- sizeof(hw_cache_event_ids));
-- memcpy(hw_cache_extra_regs, tnt_hw_cache_extra_regs,
-- sizeof(hw_cache_extra_regs));
-- hw_cache_event_ids[C(ITLB)][C(OP_READ)][C(RESULT_ACCESS)] = -1;
--
-- x86_pmu.event_constraints = intel_slm_event_constraints;
-- x86_pmu.pebs_constraints = intel_grt_pebs_event_constraints;
-- x86_pmu.extra_regs = intel_grt_extra_regs;
--
-- x86_pmu.pebs_aliases = NULL;
-- x86_pmu.pebs_prec_dist = true;
-- x86_pmu.pebs_block = true;
-- x86_pmu.lbr_pt_coexist = true;
-- x86_pmu.flags |= PMU_FL_HAS_RSP_1;
-- x86_pmu.flags |= PMU_FL_INSTR_LATENCY;
--
-- intel_pmu_pebs_data_source_grt();
-- x86_pmu.pebs_latency_data = adl_latency_data_small;
-- x86_pmu.get_event_constraints = tnt_get_event_constraints;
-- x86_pmu.limit_period = spr_limit_period;
-- td_attr = tnt_events_attrs;
-- mem_attr = grt_mem_attrs;
-- extra_attr = nhm_format_attr;
-- pr_cont("Gracemont events, ");
-- name = "gracemont";
-- break;
--
- case INTEL_FAM6_WESTMERE:
- case INTEL_FAM6_WESTMERE_EP:
- case INTEL_FAM6_WESTMERE_EX:
-@@ -6380,6 +6341,7 @@ __init int intel_pmu_init(void)
-
- case INTEL_FAM6_ALDERLAKE:
- case INTEL_FAM6_ALDERLAKE_L:
-+ case INTEL_FAM6_ALDERLAKE_N:
- case INTEL_FAM6_RAPTORLAKE:
- case INTEL_FAM6_RAPTORLAKE_P:
- case INTEL_FAM6_RAPTORLAKE_S:
-diff --git a/arch/x86/events/intel/ds.c b/arch/x86/events/intel/ds.c
-index 7839507b3844..1380ae13ad2b 100644
---- a/arch/x86/events/intel/ds.c
-+++ b/arch/x86/events/intel/ds.c
-@@ -110,18 +110,13 @@ void __init intel_pmu_pebs_data_source_skl(bool pmem)
- __intel_pmu_pebs_data_source_skl(pmem, pebs_data_source);
- }
-
--static void __init __intel_pmu_pebs_data_source_grt(u64 *data_source)
-+static void __init intel_pmu_pebs_data_source_grt(u64 *data_source)
- {
- data_source[0x05] = OP_LH | P(LVL, L3) | LEVEL(L3) | P(SNOOP, HIT);
- data_source[0x06] = OP_LH | P(LVL, L3) | LEVEL(L3) | P(SNOOP, HITM);
- data_source[0x08] = OP_LH | P(LVL, L3) | LEVEL(L3) | P(SNOOPX, FWD);
- }
-
--void __init intel_pmu_pebs_data_source_grt(void)
--{
-- __intel_pmu_pebs_data_source_grt(pebs_data_source);
--}
--
- void __init intel_pmu_pebs_data_source_adl(void)
- {
- u64 *data_source;
-@@ -132,7 +127,7 @@ void __init intel_pmu_pebs_data_source_adl(void)
-
- data_source = x86_pmu.hybrid_pmu[X86_HYBRID_PMU_ATOM_IDX].pebs_data_source;
- memcpy(data_source, pebs_data_source, sizeof(pebs_data_source));
-- __intel_pmu_pebs_data_source_grt(data_source);
-+ intel_pmu_pebs_data_source_grt(data_source);
- }
-
- static u64 precise_store_data(u64 status)
-diff --git a/arch/x86/events/perf_event.h b/arch/x86/events/perf_event.h
-index 332d2e6d8ae4..371967054871 100644
---- a/arch/x86/events/perf_event.h
-+++ b/arch/x86/events/perf_event.h
-@@ -1598,8 +1598,6 @@ void intel_pmu_pebs_data_source_skl(bool pmem);
-
- void intel_pmu_pebs_data_source_adl(void);
-
--void intel_pmu_pebs_data_source_grt(void);
--
- int intel_pmu_setup_lbr_filter(struct perf_event *event);
-
- void intel_pt_interrupt(void);
---
-2.37.3
-
diff --git a/0001-constgran-v2.patch b/0001-constgran-v2.patch
new file mode 100644
index 000000000000..2c5ded27ba70
--- /dev/null
+++ b/0001-constgran-v2.patch
@@ -0,0 +1,86 @@
+From 823fb7f07b91a3c7b7d1a4d6a3532a4e4c337e70 Mon Sep 17 00:00:00 2001
+From: Masahito S <firelzrd@gmail.com>
+Date: Fri, 7 Apr 2023 00:57:07 +0900
+Subject: [PATCH] constgran v2 sched: Make latency / granularity constant
+ tunable_scaling = 1 (logarithmic) -> 0 (constant) latency_ns = variable
+ 6-24ms -> constant 12.8ms min_granularity_ns = variable 0.75-3ms -> constant
+ 1.6ms wakeup_granularity_ns = variable 1-4ms -> constant 9.6ms
+
+---
+ kernel/sched/fair.c | 31 +++++++++++++++++++++++++++----
+ 1 file changed, 27 insertions(+), 4 deletions(-)
+
+diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c
+index 44de1349c..3ad82e1ab 100644
+--- a/kernel/sched/fair.c
++++ b/kernel/sched/fair.c
+@@ -36,10 +36,16 @@
+ * (to see the precise effective timeslice length of your workload,
+ * run vmstat and monitor the context-switches (cs) field)
+ *
+- * (default: 6ms * (1 + ilog(ncpus)), units: nanoseconds)
++ * (BORE default: 12.8ms constant, units: nanoseconds)
++ * (CFS default: 6ms * (1 + ilog(ncpus)), units: nanoseconds)
+ */
++#ifdef CONFIG_SCHED_BORE
++unsigned int sysctl_sched_latency = 12800000ULL;
++static unsigned int normalized_sysctl_sched_latency = 12800000ULL;
++#else // CONFIG_SCHED_BORE
+ unsigned int sysctl_sched_latency = 6000000ULL;
+ static unsigned int normalized_sysctl_sched_latency = 6000000ULL;
++#endif // CONFIG_SCHED_BORE
+
+ /*
+ * The initial- and re-scaling of tunables is configurable
+@@ -50,17 +56,28 @@ static unsigned int normalized_sysctl_sched_latency = 6000000ULL;
+ * SCHED_TUNABLESCALING_LOG - scaled logarithmical, *1+ilog(ncpus)
+ * SCHED_TUNABLESCALING_LINEAR - scaled linear, *ncpus
+ *
+- * (default SCHED_TUNABLESCALING_LOG = *(1+ilog(ncpus))
++ * (BORE default SCHED_TUNABLESCALING_NONE = *1 constant)
++ * (CFS default SCHED_TUNABLESCALING_LOG = *(1+ilog(ncpus))
+ */
++#ifdef CONFIG_SCHED_BORE
++unsigned int sysctl_sched_tunable_scaling = SCHED_TUNABLESCALING_NONE;
++#else // CONFIG_SCHED_BORE
+ unsigned int sysctl_sched_tunable_scaling = SCHED_TUNABLESCALING_LOG;
++#endif // CONFIG_SCHED_BORE
+
+ /*
+ * Minimal preemption granularity for CPU-bound tasks:
+ *
+- * (default: 0.75 msec * (1 + ilog(ncpus)), units: nanoseconds)
++ * (BORE default: 1.6 msec constant, units: nanoseconds)
++ * (CFS default: 0.75 msec * (1 + ilog(ncpus)), units: nanoseconds)
+ */
++#ifdef CONFIG_SCHED_BORE
++unsigned int sysctl_sched_min_granularity = 1600000ULL;
++static unsigned int normalized_sysctl_sched_min_granularity = 1600000ULL;
++#else // CONFIG_SCHED_BORE
+ unsigned int sysctl_sched_min_granularity = 750000ULL;
+ static unsigned int normalized_sysctl_sched_min_granularity = 750000ULL;
++#endif // CONFIG_SCHED_BORE
+
+ /*
+ * This value is kept at sysctl_sched_latency/sysctl_sched_min_granularity
+@@ -80,10 +97,16 @@ unsigned int sysctl_sched_child_runs_first __read_mostly;
+ * and reduces their over-scheduling. Synchronous workloads will still
+ * have immediate wakeup/sleep latencies.
+ *
+- * (default: 1 msec * (1 + ilog(ncpus)), units: nanoseconds)
++ * (BORE default: 9.6 msec constant, units: nanoseconds)
++ * (CFS default: 1 msec * (1 + ilog(ncpus)), units: nanoseconds)
+ */
++#ifdef CONFIG_SCHED_BORE
++unsigned int sysctl_sched_wakeup_granularity = 9600000UL;
++static unsigned int normalized_sysctl_sched_wakeup_granularity = 9600000UL;
++#else // CONFIG_SCHED_BORE
+ unsigned int sysctl_sched_wakeup_granularity = 1000000UL;
+ static unsigned int normalized_sysctl_sched_wakeup_granularity = 1000000UL;
++#endif // CONFIG_SCHED_BORE
+
+ const_debug unsigned int sysctl_sched_migration_cost = 500000UL;
+
+--
+2.25.1
+
diff --git a/0001-linux6.1.y-bore2.2.1.patch b/0001-linux6.1.y-bore2.2.1.patch
new file mode 100644
index 000000000000..f289c757077f
--- /dev/null
+++ b/0001-linux6.1.y-bore2.2.1.patch
@@ -0,0 +1,458 @@
+From 5127542ded4aef45015886a6a3f27687553288ee Mon Sep 17 00:00:00 2001
+From: Masahito S <firelzrd@gmail.com>
+Date: Thu, 20 Apr 2023 09:14:29 +0900
+Subject: [PATCH] linux6.1.y-bore2.2.1
+
+---
+ include/linux/sched.h | 10 +++
+ init/Kconfig | 20 +++++
+ kernel/sched/core.c | 45 ++++++++++++
+ kernel/sched/debug.c | 3 +
+ kernel/sched/fair.c | 157 +++++++++++++++++++++++++++++++++++++++-
+ kernel/sched/features.h | 8 ++
+ 6 files changed, 240 insertions(+), 3 deletions(-)
+
+diff --git a/include/linux/sched.h b/include/linux/sched.h
+index ffb6eb55c..160343f67 100644
+--- a/include/linux/sched.h
++++ b/include/linux/sched.h
+@@ -555,6 +555,12 @@ struct sched_entity {
+ u64 sum_exec_runtime;
+ u64 vruntime;
+ u64 prev_sum_exec_runtime;
++#ifdef CONFIG_SCHED_BORE
++ u64 prev_burst_time;
++ u64 burst_time;
++ u64 max_burst_time;
++ u8 penalty_score;
++#endif // CONFIG_SCHED_BORE
+
+ u64 nr_migrations;
+
+@@ -989,6 +995,10 @@ struct task_struct {
+ struct list_head children;
+ struct list_head sibling;
+ struct task_struct *group_leader;
++#ifdef CONFIG_SCHED_BORE
++ u64 child_burst_cache;
++ u64 child_burst_last_cached;
++#endif // CONFIG_SCHED_BORE
+
+ /*
+ * 'ptraced' is the list of tasks this task is using ptrace() on.
+diff --git a/init/Kconfig b/init/Kconfig
+index 0c214af99..43f67c63e 100644
+--- a/init/Kconfig
++++ b/init/Kconfig
+@@ -1283,6 +1283,26 @@ config CHECKPOINT_RESTORE
+
+ If unsure, say N here.
+
++config SCHED_BORE
++ bool "Burst-Oriented Response Enhancer"
++ default y
++ help
++ In Desktop and Mobile computing, one might prefer interactive
++ tasks to keep responsive no matter what they run in the background.
++
++ Enabling this kernel feature modifies the scheduler to discriminate
++ tasks by their burst time (runtime since it last went sleeping or
++ yielding state) and prioritize those that run less bursty.
++ Such tasks usually include window compositor, widgets backend,
++ terminal emulator, video playback, games and so on.
++ With a little impact to scheduling fairness, it may improve
++ responsiveness especially under heavy background workload.
++
++ You can turn it off by setting the sysctl kernel.sched_bore = 0.
++ Enabling this feature implies NO_GENTLE_FAIR_SLEEPERS by default.
++
++ If unsure say Y here.
++
+ config SCHED_AUTOGROUP
+ bool "Automatic process group scheduling"
+ select CGROUPS
+diff --git a/kernel/sched/core.c b/kernel/sched/core.c
+index 9ebfd4841..28d3c1d23 100644
+--- a/kernel/sched/core.c
++++ b/kernel/sched/core.c
+@@ -4364,6 +4364,37 @@ int wake_up_state(struct task_struct *p, unsigned int state)
+ return try_to_wake_up(p, state, 0);
+ }
+
++#ifdef CONFIG_SCHED_BORE
++extern unsigned int sched_burst_cache_lifetime;
++
++static inline void update_burst_cache(struct task_struct *p) {
++ u32 cnt = 0;
++ u64 sum = 0, avg = 0;
++ struct task_struct *child;
++ list_for_each_entry(child, &p->children, sibling) {
++ cnt++;
++ sum += child->se.max_burst_time >> 8;
++ }
++ if (cnt) avg = div_u64(sum, cnt) << 8;
++ p->child_burst_cache = max(avg, p->se.max_burst_time);
++}
++
++static void adjust_prev_burst(struct task_struct *p) {
++ struct task_struct *parent = p->parent;
++ u64 ktime = ktime_to_ns(ktime_get());
++
++ if (likely(parent)) {
++ if (parent->child_burst_last_cached + sched_burst_cache_lifetime < ktime) {
++ parent->child_burst_last_cached = ktime;
++ update_burst_cache(parent);
++ }
++ if (p->se.prev_burst_time < parent->child_burst_cache)
++ p->se.prev_burst_time = parent->child_burst_cache;
++ }
++ p->se.max_burst_time = p->se.prev_burst_time;
++}
++#endif // CONFIG_SCHED_BORE
++
+ /*
+ * Perform scheduler related setup for a newly forked process p.
+ * p is forked by current.
+@@ -4380,6 +4411,9 @@ static void __sched_fork(unsigned long clone_flags, struct task_struct *p)
+ p->se.prev_sum_exec_runtime = 0;
+ p->se.nr_migrations = 0;
+ p->se.vruntime = 0;
++#ifdef CONFIG_SCHED_BORE
++ p->se.burst_time = 0;
++#endif // CONFIG_SCHED_BORE
+ INIT_LIST_HEAD(&p->se.group_node);
+
+ #ifdef CONFIG_FAIR_GROUP_SCHED
+@@ -4594,6 +4628,9 @@ late_initcall(sched_core_sysctl_init);
+ int sched_fork(unsigned long clone_flags, struct task_struct *p)
+ {
+ __sched_fork(clone_flags, p);
++#ifdef CONFIG_SCHED_BORE
++ adjust_prev_burst(p);
++#endif // CONFIG_SCHED_BORE
+ /*
+ * We mark the process as NEW here. This guarantees that
+ * nobody will actually run it, and a signal or other external
+@@ -9007,6 +9044,10 @@ void __init init_idle(struct task_struct *idle, int cpu)
+
+ idle->__state = TASK_RUNNING;
+ idle->se.exec_start = sched_clock();
++#ifdef CONFIG_SCHED_BORE
++ idle->se.prev_burst_time = 0;
++ idle->se.max_burst_time = 0;
++#endif //CONFIG_SCHED_BORE
+ /*
+ * PF_KTHREAD should already be set at this point; regardless, make it
+ * look like a proper per-CPU kthread.
+@@ -9674,6 +9715,10 @@ void __init sched_init(void)
+ BUG_ON(&dl_sched_class != &stop_sched_class + 1);
+ #endif
+
++#ifdef CONFIG_SCHED_BORE
++ printk(KERN_INFO "BORE (Burst-Oriented Response Enhancer) CPU Scheduler modification 2.2.1 by Masahito Suzuki");
++#endif // CONFIG_SCHED_BORE
++
+ wait_bit_init();
+
+ #ifdef CONFIG_FAIR_GROUP_SCHED
+diff --git a/kernel/sched/debug.c b/kernel/sched/debug.c
+index 1637b65ba..752c43a9f 100644
+--- a/kernel/sched/debug.c
++++ b/kernel/sched/debug.c
+@@ -547,6 +547,9 @@ print_task(struct seq_file *m, struct rq *rq, struct task_struct *p)
+ SPLIT_NS(schedstat_val_or_zero(p->stats.sum_sleep_runtime)),
+ SPLIT_NS(schedstat_val_or_zero(p->stats.sum_block_runtime)));
+
++#ifdef CONFIG_SCHED_BORE
++ SEQ_printf(m, " %2d", p->se.penalty_score);
++#endif
+ #ifdef CONFIG_NUMA_BALANCING
+ SEQ_printf(m, " %d %d", task_node(p), task_numa_group_id(p));
+ #endif
+diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c
+index 88821ab00..7d46d0eed 100644
+--- a/kernel/sched/fair.c
++++ b/kernel/sched/fair.c
+@@ -19,6 +19,9 @@
+ *
+ * Adaptive scheduling granularity, math enhancements by Peter Zijlstra
+ * Copyright (C) 2007 Red Hat, Inc., Peter Zijlstra
++ *
++ * Burst-Oriented Response Enhancer (BORE) CPU Scheduler
++ * Copyright (C) 2021-2023 Masahito Suzuki <firelzrd@gmail.com>
+ */
+ #include <linux/energy_model.h>
+ #include <linux/mmap_lock.h>
+@@ -126,6 +129,17 @@ static unsigned int normalized_sysctl_sched_wakeup_granularity = 1000000UL;
+
+ const_debug unsigned int sysctl_sched_migration_cost = 500000UL;
+
++#ifdef CONFIG_SCHED_BORE
++unsigned int __read_mostly sched_bore = 3;
++unsigned int __read_mostly sched_burst_cache_lifetime = 50000000;
++unsigned int __read_mostly sched_burst_penalty_offset = 12;
++unsigned int __read_mostly sched_burst_penalty_scale = 1292;
++unsigned int __read_mostly sched_burst_smoothness = 1;
++static int three = 3;
++static int sixty_four = 64;
++static int maxval_12_bits = 4095;
++#endif // CONFIG_SCHED_BORE
++
+ int sched_thermal_decay_shift;
+ static int __init setup_sched_thermal_decay_shift(char *str)
+ {
+@@ -180,6 +194,51 @@ static unsigned int sysctl_sched_cfs_bandwidth_slice = 5000UL;
+
+ #ifdef CONFIG_SYSCTL
+ static struct ctl_table sched_fair_sysctls[] = {
++#ifdef CONFIG_SCHED_BORE
++ {
++ .procname = "sched_bore",
++ .data = &sched_bore,
++ .maxlen = sizeof(unsigned int),
++ .mode = 0644,
++ .proc_handler = &proc_dointvec_minmax,
++ .extra1 = SYSCTL_ZERO,
++ .extra2 = &three,
++ },
++ {
++ .procname = "sched_burst_cache_lifetime",
++ .data = &sched_burst_cache_lifetime,
++ .maxlen = sizeof(unsigned int),
++ .mode = 0644,
++ .proc_handler = proc_dointvec,
++ },
++ {
++ .procname = "sched_burst_penalty_offset",
++ .data = &sched_burst_penalty_offset,
++ .maxlen = sizeof(unsigned int),
++ .mode = 0644,
++ .proc_handler = &proc_dointvec_minmax,
++ .extra1 = SYSCTL_ZERO,
++ .extra2 = &sixty_four,
++ },
++ {
++ .procname = "sched_burst_penalty_scale",
++ .data = &sched_burst_penalty_scale,
++ .maxlen = sizeof(unsigned int),
++ .mode = 0644,
++ .proc_handler = &proc_dointvec_minmax,
++ .extra1 = SYSCTL_ZERO,
++ .extra2 = &maxval_12_bits,
++ },
++ {
++ .procname = "sched_burst_smoothness",
++ .data = &sched_burst_smoothness,
++ .maxlen = sizeof(unsigned int),
++ .mode = 0644,
++ .proc_handler = &proc_dointvec_minmax,
++ .extra1 = SYSCTL_ZERO,
++ .extra2 = &three,
++ },
++#endif // CONFIG_SCHED_BORE
+ {
+ .procname = "sched_child_runs_first",
+ .data = &sysctl_sched_child_runs_first,
+@@ -876,6 +935,47 @@ static void update_tg_load_avg(struct cfs_rq *cfs_rq)
+ }
+ #endif /* CONFIG_SMP */
+
++#ifdef CONFIG_SCHED_BORE
++static inline u32 __calc_bits10(u64 burst_time) {
++ u32 bits = fls64(burst_time);
++ u32 fdigs = likely(bits) ? bits - 1 : 0;
++ return (bits << 10) | (burst_time << (64 - fdigs) >> 54);
++}
++
++static inline u32 __calc_burst_score(u32 bits10, u32 offset) {
++ u32 val10 = max((s32)0, (s32)bits10 - (s32)(offset << 10));
++ return min((u32)39, val10 * sched_burst_penalty_scale >> 20);
++}
++
++static void update_burst_score(struct sched_entity *se) {
++ u32 bits10 = __calc_bits10(se->max_burst_time);
++ se->penalty_score = __calc_burst_score(bits10, sched_burst_penalty_offset);
++}
++
++static inline u64 penalty_scale(u64 delta, struct sched_entity *se) {
++ return mul_u64_u32_shr(delta, sched_prio_to_wmult[se->penalty_score], 22);
++}
++
++static inline u64 preempt_scale(
++ u64 delta, struct sched_entity *curr, struct sched_entity *se) {
++
++ u32 score = max(0, (s32)se->penalty_score - (s32)curr->penalty_score) >> 1;
++ return mul_u64_u32_shr(delta, sched_prio_to_wmult[min(39, 20 + score)], 22);
++}
++
++static inline u64 binary_smooth(u64 old, u64 new, unsigned int smoothness) {
++ return (new + old * ((1 << smoothness) - 1)) >> smoothness;
++}
++
++static void reset_burst(struct sched_entity *se) {
++ se->prev_burst_time = binary_smooth(
++ se->prev_burst_time, se->burst_time, sched_burst_smoothness);
++ se->burst_time = 0;
++
++ se->max_burst_time = se->prev_burst_time;
++}
++#endif // CONFIG_SCHED_BORE
++
+ /*
+ * Update the current task's runtime statistics.
+ */
+@@ -905,6 +1005,14 @@ static void update_curr(struct cfs_rq *cfs_rq)
+ curr->sum_exec_runtime += delta_exec;
+ schedstat_add(cfs_rq->exec_clock, delta_exec);
+
++#ifdef CONFIG_SCHED_BORE
++ curr->burst_time += delta_exec;
++ curr->max_burst_time = max(curr->max_burst_time, curr->burst_time);
++ update_burst_score(curr);
++ if (sched_bore & 1)
++ curr->vruntime += penalty_scale(calc_delta_fair(delta_exec, curr), curr);
++ else
++#endif // CONFIG_SCHED_BORE
+ curr->vruntime += calc_delta_fair(delta_exec, curr);
+ update_min_vruntime(cfs_rq);
+
+@@ -4995,8 +5103,14 @@ set_next_entity(struct cfs_rq *cfs_rq, struct sched_entity *se)
+ se->prev_sum_exec_runtime = se->sum_exec_runtime;
+ }
+
++#ifdef CONFIG_SCHED_BORE
++static int
++wakeup_preempt_entity_bscale(struct sched_entity *curr,
++ struct sched_entity *se, bool do_scale);
++#else // CONFIG_SCHED_BORE
+ static int
+ wakeup_preempt_entity(struct sched_entity *curr, struct sched_entity *se);
++#endif // CONFIG_SCHED_BORE
+
+ /*
+ * Pick the next process, keeping these things in mind, in this order:
+@@ -5035,16 +5149,34 @@ pick_next_entity(struct cfs_rq *cfs_rq, struct sched_entity *curr)
+ second = curr;
+ }
+
++#ifdef CONFIG_SCHED_BORE
++ if (second && wakeup_preempt_entity_bscale(
++ second, left, sched_bore & 2) < 1)
++#else // CONFIG_SCHED_BORE
+ if (second && wakeup_preempt_entity(second, left) < 1)
++#endif // CONFIG_SCHED_BORE
+ se = second;
+ }
+
+- if (cfs_rq->next && wakeup_preempt_entity(cfs_rq->next, left) < 1) {
++#ifdef CONFIG_SCHED_BORE
++ if (cfs_rq->next && wakeup_preempt_entity_bscale(
++ cfs_rq->next, left, sched_bore & 2) < 1)
++#else // CONFIG_SCHED_BORE
++ if (cfs_rq->next && wakeup_preempt_entity(cfs_rq->next, left) < 1)
++#endif // CONFIG_SCHED_BORE
++ {
+ /*
+ * Someone really wants this to run. If it's not unfair, run it.
+ */
+ se = cfs_rq->next;
+- } else if (cfs_rq->last && wakeup_preempt_entity(cfs_rq->last, left) < 1) {
++ }
++#ifdef CONFIG_SCHED_BORE
++ else if (cfs_rq->last && wakeup_preempt_entity_bscale(
++ cfs_rq->last, left, sched_bore & 2) < 1)
++#else // CONFIG_SCHED_BORE
++ else if (cfs_rq->last && wakeup_preempt_entity(cfs_rq->last, left) < 1)
++#endif // CONFIG_SCHED_BORE
++ {
+ /*
+ * Prefer last buddy, try to return the CPU to a preempted task.
+ */
+@@ -6188,6 +6320,9 @@ static void dequeue_task_fair(struct rq *rq, struct task_struct *p, int flags)
+ util_est_dequeue(&rq->cfs, p);
+
+ for_each_sched_entity(se) {
++#ifdef CONFIG_SCHED_BORE
++ if (task_sleep) reset_burst(se);
++#endif // CONFIG_SCHED_BORE
+ cfs_rq = cfs_rq_of(se);
+ dequeue_entity(cfs_rq, se, flags);
+
+@@ -7549,7 +7684,12 @@ static unsigned long wakeup_gran(struct sched_entity *se)
+ *
+ */
+ static int
++#ifdef CONFIG_SCHED_BORE
++wakeup_preempt_entity_bscale(struct sched_entity *curr,
++ struct sched_entity *se, bool do_scale)
++#else // CONFIG_SCHED_BORE
+ wakeup_preempt_entity(struct sched_entity *curr, struct sched_entity *se)
++#endif // CONFIG_SCHED_BORE
+ {
+ s64 gran, vdiff = curr->vruntime - se->vruntime;
+
+@@ -7557,6 +7697,9 @@ wakeup_preempt_entity(struct sched_entity *curr, struct sched_entity *se)
+ return -1;
+
+ gran = wakeup_gran(se);
++#ifdef CONFIG_SCHED_BORE
++ if (do_scale) gran = preempt_scale(gran, curr, se);
++#endif // CONFIG_SCHED_BORE
+ if (vdiff > gran)
+ return 1;
+
+@@ -7661,7 +7804,12 @@ static void check_preempt_wakeup(struct rq *rq, struct task_struct *p, int wake_
+ return;
+
+ update_curr(cfs_rq_of(se));
+- if (wakeup_preempt_entity(se, pse) == 1) {
++#ifdef CONFIG_SCHED_BORE
++ if (wakeup_preempt_entity_bscale(se, pse, sched_bore & 2) == 1)
++#else // CONFIG_SCHED_BORE
++ if (wakeup_preempt_entity(se, pse) == 1)
++#endif // CONFIG_SCHED_BORE
++ {
+ /*
+ * Bias pick_next to pick the sched entity that is
+ * triggering this preemption.
+@@ -7897,6 +8045,9 @@ static void yield_task_fair(struct rq *rq)
+ struct task_struct *curr = rq->curr;
+ struct cfs_rq *cfs_rq = task_cfs_rq(curr);
+ struct sched_entity *se = &curr->se;
++#ifdef CONFIG_SCHED_BORE
++ reset_burst(se);
++#endif // CONFIG_SCHED_BORE
+
+ /*
+ * Are we the only task in the tree?
+diff --git a/kernel/sched/features.h b/kernel/sched/features.h
+index ee7f23c76..3115bde98 100644
+--- a/kernel/sched/features.h
++++ b/kernel/sched/features.h
+@@ -4,7 +4,11 @@
+ * them to run sooner, but does not allow tons of sleepers to
+ * rip the spread apart.
+ */
++#ifdef CONFIG_SCHED_BORE
++SCHED_FEAT(GENTLE_FAIR_SLEEPERS, false)
++#else // CONFIG_SCHED_BORE
+ SCHED_FEAT(GENTLE_FAIR_SLEEPERS, true)
++#endif // CONFIG_SCHED_BORE
+
+ /*
+ * Place new tasks ahead so that they do not starve already running
+@@ -17,7 +21,11 @@ SCHED_FEAT(START_DEBIT, true)
+ * wakeup-preemption), since its likely going to consume data we
+ * touched, increases cache locality.
+ */
++#ifdef CONFIG_SCHED_BORE
++SCHED_FEAT(NEXT_BUDDY, true)
++#else // CONFIG_SCHED_BORE
+ SCHED_FEAT(NEXT_BUDDY, false)
++#endif // CONFIG_SCHED_BORE
+
+ /*
+ * Prefer to schedule the task that ran last (when we did
+--
+2.25.1
+
diff --git a/0002-HID-asus-add-keycodes-for-0x6a-0x4b-and-0xc7.patch b/0002-HID-asus-add-keycodes-for-0x6a-0x4b-and-0xc7.patch
new file mode 100644
index 000000000000..a6bba47de7b2
--- /dev/null
+++ b/0002-HID-asus-add-keycodes-for-0x6a-0x4b-and-0xc7.patch
@@ -0,0 +1,48 @@
+From 2aaecf9313acfb848ab3fbed6b7f8801e3ebac20 Mon Sep 17 00:00:00 2001
+From: "Luke D. Jones" <luke@ljones.dev>
+Date: Mon, 24 Apr 2023 16:26:33 +1200
+Subject: [PATCH 2/7] HID: asus: add keycodes for 0x6a, 0x4b, and 0xc7
+
+These two keys are found on some models with dual display.
+- 0x6a is intended for controlling the secondary screen brightness.
+- 0x4b is intended for toggling the arrow keys between arrows and
+ page up / page down.
+This key is found on a slightly modified keyboard layout.
+- 0xc7 is intended to cycle through keybvoard brightnesses (upwards) but
+ there is not suitable existing code for this behaviour. Using
+ `KEY_KBDILLUMTOGGLE` is different behaviour to Windows but at least
+ is picked up by many desktops already.
+
+Signed-off-by: Luke D. Jones <luke@ljones.dev>
+---
+ drivers/hid/hid-asus.c | 7 +++++++
+ 1 file changed, 7 insertions(+)
+
+diff --git a/drivers/hid/hid-asus.c b/drivers/hid/hid-asus.c
+index ac93f987d822..918d0d05ca88 100644
+--- a/drivers/hid/hid-asus.c
++++ b/drivers/hid/hid-asus.c
+@@ -883,6 +883,7 @@ static int asus_input_mapping(struct hid_device *hdev,
+ case 0xb5: asus_map_key_clear(KEY_CALC); break;
+ case 0xc4: asus_map_key_clear(KEY_KBDILLUMUP); break;
+ case 0xc5: asus_map_key_clear(KEY_KBDILLUMDOWN); break;
++ case 0xc7: asus_map_key_clear(KEY_KBDILLUMTOGGLE); break;
+
+ /* ASUS touchpad toggle */
+ case 0x6b: asus_map_key_clear(KEY_F21); break;
+@@ -911,6 +912,12 @@ static int asus_input_mapping(struct hid_device *hdev,
+ /* Fn+Right Aura mode next on N-Key keyboard */
+ case 0xb3: asus_map_key_clear(KEY_PROG3); break;
+
++ /* Screenpad toggle on N-Key keyboard */
++ case 0x6a: asus_map_key_clear(KEY_F13); break;
++
++ /* Arrows/Page-up/Down toggle on N-Key keyboard */
++ case 0x4b: asus_map_key_clear(KEY_F14); break;
++
+ default:
+ /* ASUS lazily declares 256 usages, ignore the rest,
+ * as some make the keyboard appear as a pointer device. */
+--
+2.40.0
+
diff --git a/0002-mm-add-vma_has_recency.patch b/0002-mm-add-vma_has_recency.patch
deleted file mode 100644
index a89e9dbfd430..000000000000
--- a/0002-mm-add-vma_has_recency.patch
+++ /dev/null
@@ -1,272 +0,0 @@
-From mboxrd@z Thu Jan 1 00:00:00 1970
-Return-Path: <mm-commits-owner@vger.kernel.org>
-X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on
- aws-us-west-2-korg-lkml-1.web.codeaurora.org
-Received: from vger.kernel.org (vger.kernel.org [23.128.96.18])
- by smtp.lore.kernel.org (Postfix) with ESMTP id CC018C4708D
- for <mm-commits@archiver.kernel.org>; Fri, 6 Jan 2023 04:01:50 +0000 (UTC)
-Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand
- id S230391AbjAFEBs (ORCPT <rfc822;mm-commits@archiver.kernel.org>);
- Thu, 5 Jan 2023 23:01:48 -0500
-Received: from lindbergh.monkeyblade.net ([23.128.96.19]:51158 "EHLO
- lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org
- with ESMTP id S229451AbjAFEBr (ORCPT
- <rfc822;mm-commits@vger.kernel.org>); Thu, 5 Jan 2023 23:01:47 -0500
-Received: from ams.source.kernel.org (ams.source.kernel.org [145.40.68.75])
- by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C4B3F58823
- for <mm-commits@vger.kernel.org>; Thu, 5 Jan 2023 20:01:45 -0800 (PST)
-Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140])
- (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
- (No client certificate requested)
- by ams.source.kernel.org (Postfix) with ESMTPS id 140BEB81BF2
- for <mm-commits@vger.kernel.org>; Fri, 6 Jan 2023 04:01:44 +0000 (UTC)
-Received: by smtp.kernel.org (Postfix) with ESMTPSA id B0003C433EF;
- Fri, 6 Jan 2023 04:01:42 +0000 (UTC)
-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linux-foundation.org;
- s=korg; t=1672977702;
- bh=7zSic2DGIWJrj3nEVeQolG37z5vgL/uWIN4VclkJKxs=;
- h=Date:To:From:Subject:From;
- b=sPtfupKVP7QuLG4IuLVrxCUgZYbLdgcREwcG3M29EV9ZD4LAJfXZAhFrvOzFvgE+j
- Hw8zQCw8HdEK8WmVvXea4T4iJiNvfUfTI1nEDG+ja8BG28GBP+NQ0o18zQ/dJdWNQN
- iOpXS1Sl970AE/6EmQ2xcu62Yk/BVTpgm5z1gexI=
-Date: Thu, 05 Jan 2023 20:01:41 -0800
-To: mm-commits@vger.kernel.org, viro@zeniv.linux.org.uk,
- Michael@MichaelLarabel.com, hannes@cmpxchg.org,
- andrea.righi@canonical.com, yuzhao@google.com,
- akpm@linux-foundation.org
-From: Andrew Morton <akpm@linux-foundation.org>
-Subject: + mm-add-vma_has_recency.patch added to mm-unstable branch
-Message-Id: <20230106040142.B0003C433EF@smtp.kernel.org>
-Precedence: bulk
-Reply-To: linux-kernel@vger.kernel.org
-List-ID: <mm-commits.vger.kernel.org>
-X-Mailing-List: mm-commits@vger.kernel.org
-
-
-The patch titled
- Subject: mm: add vma_has_recency()
-has been added to the -mm mm-unstable branch. Its filename is
- mm-add-vma_has_recency.patch
-
-This patch will shortly appear at
- https://git.kernel.org/pub/scm/linux/kernel/git/akpm/25-new.git/tree/patches/mm-add-vma_has_recency.patch
-
-This patch will later appear in the mm-unstable branch at
- git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm
-
-Before you just go and hit "reply", please:
- a) Consider who else should be cc'ed
- b) Prefer to cc a suitable mailing list as well
- c) Ideally: find the original patch on the mailing list and do a
- reply-to-all to that, adding suitable additional cc's
-
-*** Remember to use Documentation/process/submit-checklist.rst when testing your code ***
-
-The -mm tree is included into linux-next via the mm-everything
-branch at git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm
-and is updated there every 2-3 working days
-
-------------------------------------------------------
-From: Yu Zhao <yuzhao@google.com>
-Subject: mm: add vma_has_recency()
-Date: Fri, 30 Dec 2022 14:52:51 -0700
-
-Add vma_has_recency() to indicate whether a VMA may exhibit temporal
-locality that the LRU algorithm relies on.
-
-This function returns false for VMAs marked by VM_SEQ_READ or
-VM_RAND_READ. While the former flag indicates linear access, i.e., a
-special case of spatial locality, both flags indicate a lack of temporal
-locality, i.e., the reuse of an area within a relatively small duration.
-
-"Recency" is chosen over "locality" to avoid confusion between temporal
-and spatial localities.
-
-Before this patch, the active/inactive LRU only ignored the accessed bit
-from VMAs marked by VM_SEQ_READ. After this patch, the active/inactive
-LRU and MGLRU share the same logic: they both ignore the accessed bit if
-vma_has_recency() returns false.
-
-For the active/inactive LRU, the following fio test showed a [6, 8]%
-increase in IOPS when randomly accessing mapped files under memory
-pressure.
-
- kb=$(awk '/MemTotal/ { print $2 }' /proc/meminfo)
- kb=$((kb - 8*1024*1024))
-
- modprobe brd rd_nr=1 rd_size=$kb
- dd if=/dev/zero of=/dev/ram0 bs=1M
-
- mkfs.ext4 /dev/ram0
- mount /dev/ram0 /mnt/
- swapoff -a
-
- fio --name=test --directory=/mnt/ --ioengine=mmap --numjobs=8 \
- --size=8G --rw=randrw --time_based --runtime=10m \
- --group_reporting
-
-The discussion that led to this patch is here [1]. Additional test
-results are available in that thread.
-
-[1] https://lore.kernel.org/r/Y31s%2FK8T85jh05wH@google.com/
-
-Link: https://lkml.kernel.org/r/20221230215252.2628425-1-yuzhao@google.com
-Signed-off-by: Yu Zhao <yuzhao@google.com>
-Cc: Alexander Viro <viro@zeniv.linux.org.uk>
-Cc: Andrea Righi <andrea.righi@canonical.com>
-Cc: Johannes Weiner <hannes@cmpxchg.org>
-Cc: Michael Larabel <Michael@MichaelLarabel.com>
-Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
----
-
- include/linux/mm_inline.h | 8 ++++++
- mm/memory.c | 7 ++----
- mm/rmap.c | 42 +++++++++++++++---------------------
- mm/vmscan.c | 5 +++-
- 4 files changed, 33 insertions(+), 29 deletions(-)
-
---- a/include/linux/mm_inline.h~mm-add-vma_has_recency
-+++ a/include/linux/mm_inline.h
-@@ -594,4 +594,12 @@ pte_install_uffd_wp_if_needed(struct vm_
- #endif
- }
-
-+static inline bool vma_has_recency(struct vm_area_struct *vma)
-+{
-+ if (vma->vm_flags & (VM_SEQ_READ | VM_RAND_READ))
-+ return false;
-+
-+ return true;
-+}
-+
- #endif
---- a/mm/memory.c~mm-add-vma_has_recency
-+++ a/mm/memory.c
-@@ -1402,8 +1402,7 @@ again:
- force_flush = 1;
- }
- }
-- if (pte_young(ptent) &&
-- likely(!(vma->vm_flags & VM_SEQ_READ)))
-+ if (pte_young(ptent) && likely(vma_has_recency(vma)))
- mark_page_accessed(page);
- }
- rss[mm_counter(page)]--;
-@@ -5118,8 +5117,8 @@ static inline void mm_account_fault(stru
- #ifdef CONFIG_LRU_GEN
- static void lru_gen_enter_fault(struct vm_area_struct *vma)
- {
-- /* the LRU algorithm doesn't apply to sequential or random reads */
-- current->in_lru_fault = !(vma->vm_flags & (VM_SEQ_READ | VM_RAND_READ));
-+ /* the LRU algorithm only applies to accesses with recency */
-+ current->in_lru_fault = vma_has_recency(vma);
- }
-
- static void lru_gen_exit_fault(void)
---- a/mm/rmap.c~mm-add-vma_has_recency
-+++ a/mm/rmap.c
-@@ -824,25 +824,14 @@ static bool folio_referenced_one(struct
- }
-
- if (pvmw.pte) {
-- if (lru_gen_enabled() && pte_young(*pvmw.pte) &&
-- !(vma->vm_flags & (VM_SEQ_READ | VM_RAND_READ))) {
-+ if (lru_gen_enabled() && pte_young(*pvmw.pte)) {
- lru_gen_look_around(&pvmw);
- referenced++;
- }
-
- if (ptep_clear_flush_young_notify(vma, address,
-- pvmw.pte)) {
-- /*
-- * Don't treat a reference through
-- * a sequentially read mapping as such.
-- * If the folio has been used in another mapping,
-- * we will catch it; if this other mapping is
-- * already gone, the unmap path will have set
-- * the referenced flag or activated the folio.
-- */
-- if (likely(!(vma->vm_flags & VM_SEQ_READ)))
-- referenced++;
-- }
-+ pvmw.pte))
-+ referenced++;
- } else if (IS_ENABLED(CONFIG_TRANSPARENT_HUGEPAGE)) {
- if (pmdp_clear_flush_young_notify(vma, address,
- pvmw.pmd))
-@@ -876,7 +865,20 @@ static bool invalid_folio_referenced_vma
- struct folio_referenced_arg *pra = arg;
- struct mem_cgroup *memcg = pra->memcg;
-
-- if (!mm_match_cgroup(vma->vm_mm, memcg))
-+ /*
-+ * Ignore references from this mapping if it has no recency. If the
-+ * folio has been used in another mapping, we will catch it; if this
-+ * other mapping is already gone, the unmap path will have set the
-+ * referenced flag or activated the folio in zap_pte_range().
-+ */
-+ if (!vma_has_recency(vma))
-+ return true;
-+
-+ /*
-+ * If we are reclaiming on behalf of a cgroup, skip counting on behalf
-+ * of references from different cgroups.
-+ */
-+ if (memcg && !mm_match_cgroup(vma->vm_mm, memcg))
- return true;
-
- return false;
-@@ -907,6 +909,7 @@ int folio_referenced(struct folio *folio
- .arg = (void *)&pra,
- .anon_lock = folio_lock_anon_vma_read,
- .try_lock = true,
-+ .invalid_vma = invalid_folio_referenced_vma,
- };
-
- *vm_flags = 0;
-@@ -922,15 +925,6 @@ int folio_referenced(struct folio *folio
- return 1;
- }
-
-- /*
-- * If we are reclaiming on behalf of a cgroup, skip
-- * counting on behalf of references from different
-- * cgroups
-- */
-- if (memcg) {
-- rwc.invalid_vma = invalid_folio_referenced_vma;
-- }
--
- rmap_walk(folio, &rwc);
- *vm_flags = pra.vm_flags;
-
---- a/mm/vmscan.c~mm-add-vma_has_recency
-+++ a/mm/vmscan.c
-@@ -3794,7 +3794,10 @@ static int should_skip_vma(unsigned long
- if (is_vm_hugetlb_page(vma))
- return true;
-
-- if (vma->vm_flags & (VM_LOCKED | VM_SPECIAL | VM_SEQ_READ | VM_RAND_READ))
-+ if (!vma_has_recency(vma))
-+ return true;
-+
-+ if (vma->vm_flags & (VM_LOCKED | VM_SPECIAL))
- return true;
-
- if (vma == get_gate_vma(vma->vm_mm))
-_
-
-Patches currently in -mm which might be from yuzhao@google.com are
-
-mm-multi-gen-lru-rename-lru_gen_struct-to-lru_gen_folio.patch
-mm-multi-gen-lru-rename-lrugen-lists-to-lrugen-folios.patch
-mm-multi-gen-lru-remove-eviction-fairness-safeguard.patch
-mm-multi-gen-lru-remove-aging-fairness-safeguard.patch
-mm-multi-gen-lru-shuffle-should_run_aging.patch
-mm-multi-gen-lru-per-node-lru_gen_folio-lists.patch
-mm-multi-gen-lru-clarify-scan_control-flags.patch
-mm-multi-gen-lru-simplify-arch_has_hw_pte_young-check.patch
-mm-add-vma_has_recency.patch
-mm-support-posix_fadv_noreuse.patch
-
-
diff --git a/0003-HID-asus-reformat-the-hotkey-mapping-block.patch b/0003-HID-asus-reformat-the-hotkey-mapping-block.patch
new file mode 100644
index 000000000000..f65625cb765b
--- /dev/null
+++ b/0003-HID-asus-reformat-the-hotkey-mapping-block.patch
@@ -0,0 +1,78 @@
+From 14ee963e3c58cccf21e3e9eb7b9b89e13f41009b Mon Sep 17 00:00:00 2001
+From: "Luke D. Jones" <luke@ljones.dev>
+Date: Tue, 2 May 2023 11:20:27 +1200
+Subject: [PATCH 3/7] HID: asus: reformat the hotkey mapping block
+
+Older formatting of this block was beginning to get somewhat cluttered.
+Condensing the block and putting comments to the side makes it easier
+to read and scan the scancodes plus keycodes.
+
+Signed-off-by: Luke D. Jones <luke@ljones.dev>
+---
+ drivers/hid/hid-asus.c | 44 ++++++++++++------------------------------
+ 1 file changed, 12 insertions(+), 32 deletions(-)
+
+diff --git a/drivers/hid/hid-asus.c b/drivers/hid/hid-asus.c
+index 918d0d05ca88..2bc14e076739 100644
+--- a/drivers/hid/hid-asus.c
++++ b/drivers/hid/hid-asus.c
+@@ -885,38 +885,18 @@ static int asus_input_mapping(struct hid_device *hdev,
+ case 0xc5: asus_map_key_clear(KEY_KBDILLUMDOWN); break;
+ case 0xc7: asus_map_key_clear(KEY_KBDILLUMTOGGLE); break;
+
+- /* ASUS touchpad toggle */
+- case 0x6b: asus_map_key_clear(KEY_F21); break;
++ case 0x6b: asus_map_key_clear(KEY_F21); break; /* ASUS touchpad toggle */
++ case 0x38: asus_map_key_clear(KEY_PROG1); break; /* ROG key */
++ case 0xba: asus_map_key_clear(KEY_PROG2); break; /* Fn+C ASUS Splendid */
++ case 0x5c: asus_map_key_clear(KEY_PROG3); break; /* Fn+Space Power4Gear */
++ case 0x99: asus_map_key_clear(KEY_PROG4); break; /* Fn+F5 "fan" symbol */
++ case 0xae: asus_map_key_clear(KEY_PROG4); break; /* Fn+F5 "fan" symbol */
++ case 0x92: asus_map_key_clear(KEY_CALC); break; /* Fn+Ret "Calc" symbol */
++ case 0xb2: asus_map_key_clear(KEY_PROG2); break; /* Fn+Left previous aura */
++ case 0xb3: asus_map_key_clear(KEY_PROG3); break; /* Fn+Left next aura */
++ case 0x6a: asus_map_key_clear(KEY_F13); break; /* Screenpad toggle */
++ case 0x4b: asus_map_key_clear(KEY_F14); break; /* Arrows/Pg-Up/Dn toggle */
+
+- /* ROG key */
+- case 0x38: asus_map_key_clear(KEY_PROG1); break;
+-
+- /* Fn+C ASUS Splendid */
+- case 0xba: asus_map_key_clear(KEY_PROG2); break;
+-
+- /* Fn+Space Power4Gear Hybrid */
+- case 0x5c: asus_map_key_clear(KEY_PROG3); break;
+-
+- /* Fn+F5 "fan" symbol on FX503VD */
+- case 0x99: asus_map_key_clear(KEY_PROG4); break;
+-
+- /* Fn+F5 "fan" symbol on N-Key keyboard */
+- case 0xae: asus_map_key_clear(KEY_PROG4); break;
+-
+- /* Fn+Ret "Calc" symbol on N-Key keyboard */
+- case 0x92: asus_map_key_clear(KEY_CALC); break;
+-
+- /* Fn+Left Aura mode previous on N-Key keyboard */
+- case 0xb2: asus_map_key_clear(KEY_PROG2); break;
+-
+- /* Fn+Right Aura mode next on N-Key keyboard */
+- case 0xb3: asus_map_key_clear(KEY_PROG3); break;
+-
+- /* Screenpad toggle on N-Key keyboard */
+- case 0x6a: asus_map_key_clear(KEY_F13); break;
+-
+- /* Arrows/Page-up/Down toggle on N-Key keyboard */
+- case 0x4b: asus_map_key_clear(KEY_F14); break;
+
+ default:
+ /* ASUS lazily declares 256 usages, ignore the rest,
+@@ -1319,4 +1299,4 @@ static struct hid_driver asus_driver = {
+ };
+ module_hid_driver(asus_driver);
+
+-MODULE_LICENSE("GPL");
++MODULE_LICENSE("GPL");
+\ No newline at end of file
+--
+2.40.0
+
diff --git a/0004-ALSA-hda-realtek-Add-quirk-for-2nd-ASUS-GU603.patch b/0004-ALSA-hda-realtek-Add-quirk-for-2nd-ASUS-GU603.patch
new file mode 100644
index 000000000000..79ab0da9dd08
--- /dev/null
+++ b/0004-ALSA-hda-realtek-Add-quirk-for-2nd-ASUS-GU603.patch
@@ -0,0 +1,27 @@
+From 3c40d470339e5a8cdabcc52169dfc11404c6182d Mon Sep 17 00:00:00 2001
+From: "Luke D. Jones" <luke@ljones.dev>
+Date: Mon, 24 Apr 2023 18:39:51 +1200
+Subject: [PATCH 4/7] ALSA: hda/realtek: Add quirk for 2nd ASUS GU603
+
+Add quirk for GU603 with 0x1c62 variant of codec.
+
+Signed-off-by: Luke D. Jones <luke@ljones.dev>
+---
+ sound/pci/hda/patch_realtek.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
+index 3b9f077a227f..87839bf77b5a 100644
+--- a/sound/pci/hda/patch_realtek.c
++++ b/sound/pci/hda/patch_realtek.c
+@@ -9519,6 +9519,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = {
+ SND_PCI_QUIRK(0x1043, 0x1b13, "Asus U41SV", ALC269_FIXUP_INV_DMIC),
+ SND_PCI_QUIRK(0x1043, 0x1bbd, "ASUS Z550MA", ALC255_FIXUP_ASUS_MIC_NO_PRESENCE),
+ SND_PCI_QUIRK(0x1043, 0x1c23, "Asus X55U", ALC269_FIXUP_LIMIT_INT_MIC_BOOST),
++ SND_PCI_QUIRK(0x1043, 0x1c62, "ASUS GU603", ALC289_FIXUP_ASUS_GA401),
+ SND_PCI_QUIRK(0x1043, 0x1c92, "ASUS ROG Strix G15", ALC285_FIXUP_ASUS_G533Z_PINS),
+ SND_PCI_QUIRK(0x1043, 0x1ccd, "ASUS X555UB", ALC256_FIXUP_ASUS_MIC),
+ SND_PCI_QUIRK(0x1043, 0x1d42, "ASUS Zephyrus G14 2022", ALC289_FIXUP_ASUS_GA401),
+--
+2.40.0
+
diff --git a/0005-ACPI-resource-Skip-IRQ-override-on-ASUS-TUF-Gaming-A.patch b/0005-ACPI-resource-Skip-IRQ-override-on-ASUS-TUF-Gaming-A.patch
new file mode 100644
index 000000000000..337a7362ee5d
--- /dev/null
+++ b/0005-ACPI-resource-Skip-IRQ-override-on-ASUS-TUF-Gaming-A.patch
@@ -0,0 +1,45 @@
+From 816e2a658a7714a7870b00923318fa064b466194 Mon Sep 17 00:00:00 2001
+From: hqp1203 <hqp1203hqp@163.com>
+Date: Tue, 14 Mar 2023 22:30:57 +0800
+Subject: [PATCH 5/7] ACPI: resource: Skip IRQ override on ASUS TUF Gaming A15
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+On that Linux kernel, my laptop's built-in keyboard isn't working. It is
+suspected that the architecture of higher vresion of AMD's chip(the spec
+ific CPU model is 7735h)conflicts with IRQ of the current Linux Kernel.
+The solution is to add my laptop model number under drivers/acpi/resourc-
+e.c to skip IRQ overrides. After modification, it was found that the key-
+board worked properly.
+My laptop model is the ASUS TUF Gaming A15, specifically FA507NV.
+
+Signed-off-by: hqp1203 <hqp1203hqp@163.com>
+
+要提交的变更:
+ 修改: drivers/acpi/resource.c
+---
+ drivers/acpi/resource.c | 7 +++++++
+ 1 file changed, 7 insertions(+)
+
+diff --git a/drivers/acpi/resource.c b/drivers/acpi/resource.c
+index e8492b3a393a..77b638974273 100644
+--- a/drivers/acpi/resource.c
++++ b/drivers/acpi/resource.c
+@@ -467,6 +467,13 @@ static const struct dmi_system_id asus_laptop[] = {
+ DMI_MATCH(DMI_BOARD_NAME, "B2502CBA"),
+ },
+ },
++ {
++ .ident = "Asus TUF Gaming A15 FA507NV",
++ .matches = {
++ DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."),
++ DMI_MATCH(DMI_BOARD_NAME, "FA507NV"),
++ },
++ },
+ { }
+ };
+
+--
+2.40.0
+
diff --git a/0006-ACPI-resource-Skip-IRQ-override-on-ASUS-TUF-Gaming-A.patch b/0006-ACPI-resource-Skip-IRQ-override-on-ASUS-TUF-Gaming-A.patch
new file mode 100644
index 000000000000..77ce2c56619f
--- /dev/null
+++ b/0006-ACPI-resource-Skip-IRQ-override-on-ASUS-TUF-Gaming-A.patch
@@ -0,0 +1,34 @@
+From d3d4883ebc340388933d829a53fd61c834dadcb1 Mon Sep 17 00:00:00 2001
+From: "Luke D. Jones" <luke@ljones.dev>
+Date: Sun, 30 Apr 2023 10:56:34 +1200
+Subject: [PATCH 6/7] ACPI: resource: Skip IRQ override on ASUS TUF Gaming A16
+
+The TUF Gaming A16 FA617NS requires an irq override for full keyboard
+functionality.
+
+Signed-off-by: Luke D. Jones <luke@ljones.dev>
+---
+ drivers/acpi/resource.c | 7 +++++++
+ 1 file changed, 7 insertions(+)
+
+diff --git a/drivers/acpi/resource.c b/drivers/acpi/resource.c
+index 77b638974273..01a7befe9625 100644
+--- a/drivers/acpi/resource.c
++++ b/drivers/acpi/resource.c
+@@ -474,6 +474,13 @@ static const struct dmi_system_id asus_laptop[] = {
+ DMI_MATCH(DMI_BOARD_NAME, "FA507NV"),
+ },
+ },
++ {
++ .ident = "ASUS TUF Gaming A16 FA617NS",
++ .matches = {
++ DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."),
++ DMI_MATCH(DMI_BOARD_NAME, "FA617NS"),
++ },
++ },
+ { }
+ };
+
+--
+2.40.0
+
diff --git a/0007-platform-x86-asus-wmi-add-support-for-ASUS-screenpad.patch b/0007-platform-x86-asus-wmi-add-support-for-ASUS-screenpad.patch
new file mode 100644
index 000000000000..c0ea5d262470
--- /dev/null
+++ b/0007-platform-x86-asus-wmi-add-support-for-ASUS-screenpad.patch
@@ -0,0 +1,219 @@
+From 6f144cb34020fd81006680c6221f0ae5e44237ab Mon Sep 17 00:00:00 2001
+From: "Luke D. Jones" <luke@ljones.dev>
+Date: Sun, 30 Apr 2023 10:56:34 +1200
+Subject: [PATCH 7/7] platform/x86: asus-wmi: add support for ASUS screenpad
+
+Add support for the WMI methods used to turn off and adjust the
+brightness of the secondary "screenpad" device found on some high-end
+ASUS laptops like the GX650P series and others.
+
+These methods are utilised in a new backlight device named:
+- asus_screenpad
+
+Signed-off-by: Luke D. Jones <luke@ljones.dev>
+---
+ drivers/platform/x86/asus-wmi.c | 131 +++++++++++++++++++++
+ drivers/platform/x86/asus-wmi.h | 1 +
+ include/linux/platform_data/x86/asus-wmi.h | 4 +
+ 3 files changed, 136 insertions(+)
+
+diff --git a/drivers/platform/x86/asus-wmi.c b/drivers/platform/x86/asus-wmi.c
+index 1038dfdcdd32..14a32e08f900 100644
+--- a/drivers/platform/x86/asus-wmi.c
++++ b/drivers/platform/x86/asus-wmi.c
+@@ -25,6 +25,7 @@
+ #include <linux/input/sparse-keymap.h>
+ #include <linux/kernel.h>
+ #include <linux/leds.h>
++#include <linux/minmax.h>
+ #include <linux/module.h>
+ #include <linux/pci.h>
+ #include <linux/pci_hotplug.h>
+@@ -200,6 +201,7 @@ struct asus_wmi {
+
+ struct input_dev *inputdev;
+ struct backlight_device *backlight_device;
++ struct backlight_device *screenpad_backlight_device;
+ struct platform_device *platform_device;
+
+ struct led_classdev wlan_led;
+@@ -3208,6 +3210,127 @@ static int is_display_toggle(int code)
+ return 0;
+ }
+
++/* Screenpad backlight *******************************************************/
++
++static int read_screenpad_backlight_power(struct asus_wmi *asus)
++{
++ int ret = asus_wmi_get_devstate_simple(asus, ASUS_WMI_DEVID_SCREENPAD_POWER);
++
++ if (ret < 0)
++ return ret;
++ /* 1 == powered */
++ return ret ? FB_BLANK_UNBLANK : FB_BLANK_POWERDOWN;
++}
++
++static int read_screenpad_brightness(struct backlight_device *bd)
++{
++ struct asus_wmi *asus = bl_get_data(bd);
++ u32 retval;
++ int err;
++
++ err = read_screenpad_backlight_power(asus);
++ if (err < 0)
++ return err;
++ /* The device brightness can only be read if powered, so return stored */
++ if (err == FB_BLANK_POWERDOWN)
++ return asus->driver->screenpad_brightness;
++
++ err = asus_wmi_get_devstate(asus, ASUS_WMI_DEVID_SCREENPAD_LIGHT, &retval);
++ if (err < 0)
++ return err;
++
++ return retval & ASUS_WMI_DSTS_BRIGHTNESS_MASK;
++}
++
++static int update_screenpad_bl_status(struct backlight_device *bd)
++{
++ struct asus_wmi *asus = bl_get_data(bd);
++ int power, err = 0;
++ u32 ctrl_param;
++
++ power = read_screenpad_backlight_power(asus);
++ if (power == -ENODEV)
++ return err;
++ else if (power < 0)
++ return power;
++
++ if (bd->props.power != power) {
++ if (power != FB_BLANK_UNBLANK) {
++ /* Only brightness > 0 can power it back on */
++ ctrl_param = max(1, asus->driver->screenpad_brightness);
++ err = asus_wmi_set_devstate(ASUS_WMI_DEVID_SCREENPAD_LIGHT,
++ ctrl_param, NULL);
++ } else {
++ err = asus_wmi_set_devstate(ASUS_WMI_DEVID_SCREENPAD_POWER, 0, NULL);
++ }
++ } else if (power == FB_BLANK_UNBLANK) {
++ /* Only set brightness if powered on or we get invalid/unsync state */
++ ctrl_param = bd->props.brightness;
++ err = asus_wmi_set_devstate(ASUS_WMI_DEVID_SCREENPAD_LIGHT, ctrl_param, NULL);
++ }
++
++ /* Ensure brightness is stored to turn back on with */
++ asus->driver->screenpad_brightness = bd->props.brightness;
++
++ return err;
++}
++
++static const struct backlight_ops asus_screenpad_bl_ops = {
++ .get_brightness = read_screenpad_brightness,
++ .update_status = update_screenpad_bl_status,
++ .options = BL_CORE_SUSPENDRESUME,
++};
++
++static int asus_screenpad_init(struct asus_wmi *asus)
++{
++ struct backlight_device *bd;
++ struct backlight_properties props;
++ int power, brightness;
++
++ power = read_screenpad_backlight_power(asus);
++ if (power == -ENODEV)
++ power = FB_BLANK_UNBLANK;
++ else if (power < 0)
++ return power;
++
++ memset(&props, 0, sizeof(struct backlight_properties));
++ props.type = BACKLIGHT_RAW; /* ensure this bd is last to be picked */
++ props.max_brightness = 255;
++ bd = backlight_device_register("asus_screenpad",
++ &asus->platform_device->dev, asus,
++ &asus_screenpad_bl_ops, &props);
++ if (IS_ERR(bd)) {
++ pr_err("Could not register backlight device\n");
++ return PTR_ERR(bd);
++ }
++
++ asus->screenpad_backlight_device = bd;
++
++ brightness = read_screenpad_brightness(bd);
++ if (brightness < 0)
++ return brightness;
++ /*
++ * Counter an odd behaviour where default is set to < 13 if it was 0 on boot.
++ * 60 is subjective, but accepted as a good compromise to retain visibility.
++ */
++ if (brightness < 60)
++ brightness = 60;
++
++ asus->driver->screenpad_brightness = brightness;
++ bd->props.brightness = brightness;
++ bd->props.power = power;
++ backlight_update_status(bd);
++
++ return 0;
++}
++
++static void asus_screenpad_exit(struct asus_wmi *asus)
++{
++ backlight_device_unregister(asus->screenpad_backlight_device);
++
++ asus->screenpad_backlight_device = NULL;
++}
++
+ /* Fn-lock ********************************************************************/
+
+ static bool asus_wmi_has_fnlock_key(struct asus_wmi *asus)
+@@ -3823,6 +3946,13 @@ static int asus_wmi_add(struct platform_device *pdev)
+ } else if (asus->driver->quirks->wmi_backlight_set_devstate)
+ err = asus_wmi_set_devstate(ASUS_WMI_DEVID_BACKLIGHT, 2, NULL);
+
++ if (asus_wmi_dev_is_present(asus, ASUS_WMI_DEVID_SCREENPAD_LIGHT)) {
++ pr_warn("Begin asus_screenpad_init");
++ err = asus_screenpad_init(asus);
++ if (err && err != -ENODEV)
++ goto fail_backlight;
++ }
++
+ if (asus_wmi_has_fnlock_key(asus)) {
+ asus->fnlock_locked = fnlock_default;
+ asus_wmi_fnlock_update(asus);
+@@ -3844,6 +3974,7 @@ static int asus_wmi_add(struct platform_device *pdev)
+
+ fail_wmi_handler:
+ asus_wmi_backlight_exit(asus);
++ asus_screenpad_exit(asus);
+ fail_backlight:
+ asus_wmi_rfkill_exit(asus);
+ fail_rfkill:
+diff --git a/drivers/platform/x86/asus-wmi.h b/drivers/platform/x86/asus-wmi.h
+index a478ebfd34df..5fbdd0eafa02 100644
+--- a/drivers/platform/x86/asus-wmi.h
++++ b/drivers/platform/x86/asus-wmi.h
+@@ -57,6 +57,7 @@ struct quirk_entry {
+ struct asus_wmi_driver {
+ int brightness;
+ int panel_power;
++ int screenpad_brightness;
+ int wlan_ctrl_by_user;
+
+ const char *name;
+diff --git a/include/linux/platform_data/x86/asus-wmi.h b/include/linux/platform_data/x86/asus-wmi.h
+index 28234dc9fa6a..a2d94adb5c80 100644
+--- a/include/linux/platform_data/x86/asus-wmi.h
++++ b/include/linux/platform_data/x86/asus-wmi.h
+@@ -58,6 +58,10 @@
+ #define ASUS_WMI_DEVID_KBD_BACKLIGHT 0x00050021
+ #define ASUS_WMI_DEVID_LIGHT_SENSOR 0x00050022 /* ?? */
+ #define ASUS_WMI_DEVID_LIGHTBAR 0x00050025
++/* This can only be used to disable the screen, not re-enable */
++#define ASUS_WMI_DEVID_SCREENPAD_POWER 0x00050031
++/* Writing a brightness re-enables the screen if disabled */
++#define ASUS_WMI_DEVID_SCREENPAD_LIGHT 0x00050032
+ #define ASUS_WMI_DEVID_FAN_BOOST_MODE 0x00110018
+ #define ASUS_WMI_DEVID_THROTTLE_THERMAL_POLICY 0x00120075
+
+--
+2.40.0
+
diff --git a/0024-V8-0-4-PCI-vmd-Enable-PCIe-ASPM-and-LTR-on-select-hardware.patch b/0024-V8-0-4-PCI-vmd-Enable-PCIe-ASPM-and-LTR-on-select-hardware.patch
deleted file mode 100644
index b71f08daabeb..000000000000
--- a/0024-V8-0-4-PCI-vmd-Enable-PCIe-ASPM-and-LTR-on-select-hardware.patch
+++ /dev/null
@@ -1,1420 +0,0 @@
-From mboxrd@z Thu Jan 1 00:00:00 1970
-Return-Path: <linux-pci-owner@kernel.org>
-X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on
- aws-us-west-2-korg-lkml-1.web.codeaurora.org
-Received: from vger.kernel.org (vger.kernel.org [23.128.96.18])
- by smtp.lore.kernel.org (Postfix) with ESMTP id AC0A9C4332F
- for <linux-pci@archiver.kernel.org>; Thu, 3 Nov 2022 02:18:26 +0000 (UTC)
-Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand
- id S229954AbiKCCSZ (ORCPT <rfc822;linux-pci@archiver.kernel.org>);
- Wed, 2 Nov 2022 22:18:25 -0400
-Received: from lindbergh.monkeyblade.net ([23.128.96.19]:56134 "EHLO
- lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org
- with ESMTP id S229436AbiKCCSY (ORCPT
- <rfc822;linux-pci@vger.kernel.org>); Wed, 2 Nov 2022 22:18:24 -0400
-Received: from mga05.intel.com (mga05.intel.com [192.55.52.43])
- by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 20F35E81;
- Wed, 2 Nov 2022 19:18:23 -0700 (PDT)
-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple;
- d=intel.com; i=@intel.com; q=dns/txt; s=Intel;
- t=1667441903; x=1698977903;
- h=from:to:cc:subject:date:message-id:mime-version:
- content-transfer-encoding;
- bh=dRTGogFr6yFQWzAu44s2Shz3Tuu+kZ6YaOpo+8VRwtE=;
- b=DMcLu2BjDmudMN0UTyyA6FzOfZelhaQ8aXzibcjvThwM3TFZjGWBNUKD
- wD87ecQD9wgkVeT9M0zQMQHf/V4yToaol98pmgAsEtm240ZjfYRyDfQly
- +NXTn3/83rPUqYemS0WbI7mo8eLfSBqFbrU+1UlW3xI6xLFAjkgRLVzcD
- lmBHge6U5cuhjmdnCeRUWNDjVAsqPDdObXWhbzy9XAVtP9ErHwqBTLJIf
- 36fdHDJUNSglpacZiiJMinGpULwMqK6jKiWcXilzqmkjsqPfVl2BYXgG5
- oPLGYSWzARxBuTWWDlcWEmjHb9o7CLwNLG1Z8LkoRGkou1I6HEtWgummX
- A==;
-X-IronPort-AV: E=McAfee;i="6500,9779,10519"; a="395875409"
-X-IronPort-AV: E=Sophos;i="5.95,235,1661842800";
- d="scan'208";a="395875409"
-Received: from orsmga004.jf.intel.com ([10.7.209.38])
- by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 Nov 2022 19:18:22 -0700
-X-ExtLoop1: 1
-X-IronPort-AV: E=McAfee;i="6500,9779,10519"; a="759771646"
-X-IronPort-AV: E=Sophos;i="5.95,235,1661842800";
- d="scan'208";a="759771646"
-Received: from linux.intel.com ([10.54.29.200])
- by orsmga004.jf.intel.com with ESMTP; 02 Nov 2022 19:18:22 -0700
-Received: from debox1-desk4.intel.com (unknown [10.212.195.54])
- by linux.intel.com (Postfix) with ESMTP id 38146580D42;
- Wed, 2 Nov 2022 19:18:22 -0700 (PDT)
-From: "David E. Box" <david.e.box@linux.intel.com>
-To: nirmal.patel@linux.intel.com, jonathan.derrick@linux.dev,
- lorenzo.pieralisi@arm.com, hch@infradead.org, kw@linux.com,
- robh@kernel.org, bhelgaas@google.com, david.e.box@linux.intel.com,
- michael.a.bottini@intel.com, rafael@kernel.org, me@adhityamohan.in
-Cc: linux-pci@vger.kernel.org, linux-kernel@vger.kernel.org
-Subject: [PATCH V8 0/4] PCI: vmd: Enable PCIe ASPM and LTR on select hardware
-Date: Wed, 2 Nov 2022 19:18:18 -0700
-Message-Id: <20221103021822.308586-1-david.e.box@linux.intel.com>
-X-Mailer: git-send-email 2.25.1
-MIME-Version: 1.0
-Content-Transfer-Encoding: 8bit
-Precedence: bulk
-List-ID: <linux-pci.vger.kernel.org>
-X-Mailing-List: linux-pci@vger.kernel.org
-
-This series adds a work around for enabling PCIe ASPM and for setting PCIe
-LTR values on VMD reserved root ports on select platforms. While
-configuration of these capabilities is usually done by BIOS, on these
-platforms these capabilities will not be configured because the ports are
-not visible to BIOS. This was part of an initial design that expected the
-driver to completely handle the ports, including power management. However
-on Linux those ports are still managed by the PCIe core, which has the
-expectation that they adhere to device standards including BIOS
-configuration, leading to this problem.
-
-The target platforms are Tiger Lake, Alder Lake, and Raptor Lake though the
-latter has already implemented support for configuring the LTR values.
-Meteor Lake is expected add BIOS ASPM support, eliminating the future need
-for this work around.
-
-Note, the driver programs the LTRs because BIOS would also normally do this
-for devices that do not set them by default. Without this, SoC power
-management would be blocked on those platform. This SoC specific value is
-the maximum latency required to allow the SoC to enter the deepest power
-state.
-
-This patch addresses the following open bugzillas on VMD enabled laptops
-that cannot enter low power states.
-
-Link: https://bugzilla.kernel.org/show_bug.cgi?id=212355
-Link: https://bugzilla.kernel.org/show_bug.cgi?id=215063
-Link: https://bugzilla.kernel.org/show_bug.cgi?id=213717
-
-David E. Box (3):
- PCI: vmd: Use PCI_VDEVICE in device list
- PCI: vmd: Create feature grouping for client products
- PCI: vmd: Add quirk to configure PCIe ASPM and LTR
-
-Michael Bottini (1):
- PCI/ASPM: Add pci_enable_link_state()
-
- drivers/pci/controller/vmd.c | 96 ++++++++++++++++++++++++++----------
- drivers/pci/pcie/aspm.c | 54 ++++++++++++++++++++
- include/linux/pci.h | 7 +++
- 3 files changed, 131 insertions(+), 26 deletions(-)
-
-
-base-commit: 247f34f7b80357943234f93f247a1ae6b6c3a740
---
-2.25.1
-
-
-From mboxrd@z Thu Jan 1 00:00:00 1970
-Return-Path: <linux-pci-owner@kernel.org>
-X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on
- aws-us-west-2-korg-lkml-1.web.codeaurora.org
-Received: from vger.kernel.org (vger.kernel.org [23.128.96.18])
- by smtp.lore.kernel.org (Postfix) with ESMTP id E6F34C433FE
- for <linux-pci@archiver.kernel.org>; Thu, 3 Nov 2022 02:18:29 +0000 (UTC)
-Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand
- id S230314AbiKCCS2 (ORCPT <rfc822;linux-pci@archiver.kernel.org>);
- Wed, 2 Nov 2022 22:18:28 -0400
-Received: from lindbergh.monkeyblade.net ([23.128.96.19]:56158 "EHLO
- lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org
- with ESMTP id S230207AbiKCCS1 (ORCPT
- <rfc822;linux-pci@vger.kernel.org>); Wed, 2 Nov 2022 22:18:27 -0400
-Received: from mga07.intel.com (mga07.intel.com [134.134.136.100])
- by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 721852618;
- Wed, 2 Nov 2022 19:18:24 -0700 (PDT)
-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple;
- d=intel.com; i=@intel.com; q=dns/txt; s=Intel;
- t=1667441905; x=1698977905;
- h=from:to:cc:subject:date:message-id:in-reply-to:
- references:mime-version:content-transfer-encoding;
- bh=vzUI8zH+fYLJwczHSdbiw1/5l9LlQMI1ESll22EfjJI=;
- b=QmTz1hTHIb+yN2slhY+HSOi6ZVrWLgup6gAHG1HZEUvZ8Opy1vOjOIY2
- gKpgQkAc1uo1WaKGsdQYFX+Yy/iq1MHzJgiiW2Jex5v4yW0QJd7VqrONf
- 8WIQLCNduJnojVdWvt6nau5D9/c48X3KgTE2Tp3/CQ8eiUR6VxqFm9S8g
- RViAPgyzk+++taagSjfQuZ6NJ9/alBW7e4FIvJanRsseUdzyK5MsPFI9P
- WSXMt650HNIjiK9WB8UDB0+bWM3tu7AV7nCkB5ljpWDBfnrbOtITGyNW/
- Zj8+rbcuN44uwYh6KV/09XY9xIq02Q+HNVKjB4OUEKNJWuTZBbEl/43bd
- g==;
-X-IronPort-AV: E=McAfee;i="6500,9779,10519"; a="373794791"
-X-IronPort-AV: E=Sophos;i="5.95,235,1661842800";
- d="scan'208";a="373794791"
-Received: from orsmga008.jf.intel.com ([10.7.209.65])
- by orsmga105.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 Nov 2022 19:18:23 -0700
-X-ExtLoop1: 1
-X-IronPort-AV: E=McAfee;i="6500,9779,10519"; a="665784357"
-X-IronPort-AV: E=Sophos;i="5.95,235,1661842800";
- d="scan'208";a="665784357"
-Received: from linux.intel.com ([10.54.29.200])
- by orsmga008.jf.intel.com with ESMTP; 02 Nov 2022 19:18:22 -0700
-Received: from debox1-desk4.intel.com (unknown [10.212.195.54])
- by linux.intel.com (Postfix) with ESMTP id 94B3B580B9E;
- Wed, 2 Nov 2022 19:18:22 -0700 (PDT)
-From: "David E. Box" <david.e.box@linux.intel.com>
-To: nirmal.patel@linux.intel.com, jonathan.derrick@linux.dev,
- lorenzo.pieralisi@arm.com, hch@infradead.org, kw@linux.com,
- robh@kernel.org, bhelgaas@google.com, david.e.box@linux.intel.com,
- michael.a.bottini@intel.com, rafael@kernel.org, me@adhityamohan.in
-Cc: linux-pci@vger.kernel.org, linux-kernel@vger.kernel.org
-Subject: [PATCH V8 1/4] PCI/ASPM: Add pci_enable_link_state()
-Date: Wed, 2 Nov 2022 19:18:19 -0700
-Message-Id: <20221103021822.308586-2-david.e.box@linux.intel.com>
-X-Mailer: git-send-email 2.25.1
-In-Reply-To: <20221103021822.308586-1-david.e.box@linux.intel.com>
-References: <20221103021822.308586-1-david.e.box@linux.intel.com>
-MIME-Version: 1.0
-Content-Transfer-Encoding: 8bit
-Precedence: bulk
-List-ID: <linux-pci.vger.kernel.org>
-X-Mailing-List: linux-pci@vger.kernel.org
-
-From: Michael Bottini <michael.a.bottini@linux.intel.com>
-
-Add pci_enable_link_state() to allow devices to change the default BIOS
-configured states. Clears the BIOS default settings then sets the new
-states and reconfigures the link under the semaphore. Also add
-PCIE_LINK_STATE_ALL macro for convenience for callers that want to enable
-all link states.
-
-Signed-off-by: Michael Bottini <michael.a.bottini@linux.intel.com>
-Signed-off-by: David E. Box <david.e.box@linux.intel.com>
-Acked-by: Bjorn Helgaas <bhelgaas@google.com>
----
- V8
- - No change
-
- V7
- - Fix description as suggested by Bjorn
- - Rename function to pci_enable_link_state
-
- V6
- - No change
- V5
- - Rename to pci_enable_default_link_state and model after
- pci_disable_link_state() as suggested by Bjorn.
- - Add helper PCIE_LINK_STATE_ALL which sets bits for all links states and
- clock pm.
- - Clarify commit language to indicate the function changes the default
- link states (not ASPM policy).
- V4
- - Refactor vmd_enable_apsm() to exit early, making the lines shorter
- and more readable. Suggested by Christoph.
- V3
- - No changes
- V2
- - Use return status to print pci_info message if ASPM cannot be enabled.
- - Add missing static declaration, caught by lkp@intel.com
-
- drivers/pci/pcie/aspm.c | 54 +++++++++++++++++++++++++++++++++++++++++
- include/linux/pci.h | 7 ++++++
- 2 files changed, 61 insertions(+)
-
-diff --git a/drivers/pci/pcie/aspm.c b/drivers/pci/pcie/aspm.c
-index 53a1fa306e1e..339c686a5094 100644
---- a/drivers/pci/pcie/aspm.c
-+++ b/drivers/pci/pcie/aspm.c
-@@ -1181,6 +1181,60 @@ int pci_disable_link_state(struct pci_dev *pdev, int state)
- }
- EXPORT_SYMBOL(pci_disable_link_state);
-
-+/**
-+ * pci_enable_link_state - Clear and set the default device link state so that
-+ * the link may be allowed to enter the specified states. Note that if the
-+ * BIOS didn't grant ASPM control to the OS, this does nothing because we can't
-+ * touch the LNKCTL register. Also note that this does not enable states
-+ * disabled by pci_disable_link_state(). Return 0 or a negative errno.
-+ *
-+ * @pdev: PCI device
-+ * @state: Mask of ASPM link states to enable
-+ */
-+int pci_enable_link_state(struct pci_dev *pdev, int state)
-+{
-+ struct pcie_link_state *link = pcie_aspm_get_link(pdev);
-+
-+ if (!link)
-+ return -EINVAL;
-+ /*
-+ * A driver requested that ASPM be enabled on this device, but
-+ * if we don't have permission to manage ASPM (e.g., on ACPI
-+ * systems we have to observe the FADT ACPI_FADT_NO_ASPM bit and
-+ * the _OSC method), we can't honor that request.
-+ */
-+ if (aspm_disabled) {
-+ pci_warn(pdev, "can't override BIOS ASPM; OS doesn't have ASPM control\n");
-+ return -EPERM;
-+ }
-+
-+ down_read(&pci_bus_sem);
-+ mutex_lock(&aspm_lock);
-+ link->aspm_default = 0;
-+ if (state & PCIE_LINK_STATE_L0S)
-+ link->aspm_default |= ASPM_STATE_L0S;
-+ if (state & PCIE_LINK_STATE_L1)
-+ /* L1 PM substates require L1 */
-+ link->aspm_default |= ASPM_STATE_L1 | ASPM_STATE_L1SS;
-+ if (state & PCIE_LINK_STATE_L1_1)
-+ link->aspm_default |= ASPM_STATE_L1_1;
-+ if (state & PCIE_LINK_STATE_L1_2)
-+ link->aspm_default |= ASPM_STATE_L1_2;
-+ if (state & PCIE_LINK_STATE_L1_1_PCIPM)
-+ link->aspm_default |= ASPM_STATE_L1_1_PCIPM;
-+ if (state & PCIE_LINK_STATE_L1_2_PCIPM)
-+ link->aspm_default |= ASPM_STATE_L1_2_PCIPM;
-+ pcie_config_aspm_link(link, policy_to_aspm_state(link));
-+
-+ link->clkpm_default = (state & PCIE_LINK_STATE_CLKPM) ? 1 : 0;
-+ pcie_set_clkpm(link, policy_to_clkpm_state(link));
-+ mutex_unlock(&aspm_lock);
-+ up_read(&pci_bus_sem);
-+
-+ return 0;
-+}
-+EXPORT_SYMBOL(pci_enable_link_state);
-+
- static int pcie_aspm_set_policy(const char *val,
- const struct kernel_param *kp)
- {
-diff --git a/include/linux/pci.h b/include/linux/pci.h
-index 2bda4a4e47e8..8c35f15e6012 100644
---- a/include/linux/pci.h
-+++ b/include/linux/pci.h
-@@ -1651,10 +1651,15 @@ extern bool pcie_ports_native;
- #define PCIE_LINK_STATE_L1_2 BIT(4)
- #define PCIE_LINK_STATE_L1_1_PCIPM BIT(5)
- #define PCIE_LINK_STATE_L1_2_PCIPM BIT(6)
-+#define PCIE_LINK_STATE_ALL (PCIE_LINK_STATE_L0S | PCIE_LINK_STATE_L1 |\
-+ PCIE_LINK_STATE_CLKPM | PCIE_LINK_STATE_L1_1 |\
-+ PCIE_LINK_STATE_L1_2 | PCIE_LINK_STATE_L1_1_PCIPM |\
-+ PCIE_LINK_STATE_L1_2_PCIPM)
-
- #ifdef CONFIG_PCIEASPM
- int pci_disable_link_state(struct pci_dev *pdev, int state);
- int pci_disable_link_state_locked(struct pci_dev *pdev, int state);
-+int pci_enable_link_state(struct pci_dev *pdev, int state);
- void pcie_no_aspm(void);
- bool pcie_aspm_support_enabled(void);
- bool pcie_aspm_enabled(struct pci_dev *pdev);
-@@ -1663,6 +1668,8 @@ static inline int pci_disable_link_state(struct pci_dev *pdev, int state)
- { return 0; }
- static inline int pci_disable_link_state_locked(struct pci_dev *pdev, int state)
- { return 0; }
-+static inline int pci_enable_link_state(struct pci_dev *pdev, int state)
-+{ return 0; }
- static inline void pcie_no_aspm(void) { }
- static inline bool pcie_aspm_support_enabled(void) { return false; }
- static inline bool pcie_aspm_enabled(struct pci_dev *pdev) { return false; }
---
-2.25.1
-
-
-From mboxrd@z Thu Jan 1 00:00:00 1970
-Return-Path: <linux-pci-owner@kernel.org>
-X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on
- aws-us-west-2-korg-lkml-1.web.codeaurora.org
-Received: from vger.kernel.org (vger.kernel.org [23.128.96.18])
- by smtp.lore.kernel.org (Postfix) with ESMTP id 62CFCC43219
- for <linux-pci@archiver.kernel.org>; Thu, 3 Nov 2022 02:18:31 +0000 (UTC)
-Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand
- id S230384AbiKCCS3 (ORCPT <rfc822;linux-pci@archiver.kernel.org>);
- Wed, 2 Nov 2022 22:18:29 -0400
-Received: from lindbergh.monkeyblade.net ([23.128.96.19]:56162 "EHLO
- lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org
- with ESMTP id S230274AbiKCCS1 (ORCPT
- <rfc822;linux-pci@vger.kernel.org>); Wed, 2 Nov 2022 22:18:27 -0400
-Received: from mga05.intel.com (mga05.intel.com [192.55.52.43])
- by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 561802619;
- Wed, 2 Nov 2022 19:18:24 -0700 (PDT)
-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple;
- d=intel.com; i=@intel.com; q=dns/txt; s=Intel;
- t=1667441905; x=1698977905;
- h=from:to:cc:subject:date:message-id:in-reply-to:
- references:mime-version:content-transfer-encoding;
- bh=lryJqhW0QO99aVIBqjyXzXFrtjj3i89vRFLmrilFP90=;
- b=Df8sKKhA92/hom2M6lfSMoLfzheO17ovcECn6UnhcRkljtkYM5G8Bwti
- 4imwXXERTkouM4GDl5zIi7807l2h0WaF1hhK7FnrEfbnnslMLN7fo/GOx
- tJX3o2Rmi4D1MijqjZ8OCNbIyfbjpnnrsXK87bp9Yh8yDXM5SM9qYFCtW
- znugRhwhEZSBAnZJwHjonuaSm+FRxtMHCRCiKW9wVvcnsyJ4QV8npONQR
- sWm5W8mWbM0jX677X3OLQWQjTVdpav3LYiTQ/yoIniJvhM3A6eGA2dI7W
- epYMuCTrGWAZh4qY1C0+5X59xMO5LdSbZSUkFc1uPJsshsWZahmc7sb/f
- w==;
-X-IronPort-AV: E=McAfee;i="6500,9779,10519"; a="395875415"
-X-IronPort-AV: E=Sophos;i="5.95,235,1661842800";
- d="scan'208";a="395875415"
-Received: from orsmga004.jf.intel.com ([10.7.209.38])
- by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 Nov 2022 19:18:23 -0700
-X-ExtLoop1: 1
-X-IronPort-AV: E=McAfee;i="6500,9779,10519"; a="759771651"
-X-IronPort-AV: E=Sophos;i="5.95,235,1661842800";
- d="scan'208";a="759771651"
-Received: from linux.intel.com ([10.54.29.200])
- by orsmga004.jf.intel.com with ESMTP; 02 Nov 2022 19:18:23 -0700
-Received: from debox1-desk4.intel.com (unknown [10.212.195.54])
- by linux.intel.com (Postfix) with ESMTP id F23D7580DBD;
- Wed, 2 Nov 2022 19:18:22 -0700 (PDT)
-From: "David E. Box" <david.e.box@linux.intel.com>
-To: nirmal.patel@linux.intel.com, jonathan.derrick@linux.dev,
- lorenzo.pieralisi@arm.com, hch@infradead.org, kw@linux.com,
- robh@kernel.org, bhelgaas@google.com, david.e.box@linux.intel.com,
- michael.a.bottini@intel.com, rafael@kernel.org, me@adhityamohan.in
-Cc: linux-pci@vger.kernel.org, linux-kernel@vger.kernel.org
-Subject: [PATCH V8 2/4] PCI: vmd: Use PCI_VDEVICE in device list
-Date: Wed, 2 Nov 2022 19:18:20 -0700
-Message-Id: <20221103021822.308586-3-david.e.box@linux.intel.com>
-X-Mailer: git-send-email 2.25.1
-In-Reply-To: <20221103021822.308586-1-david.e.box@linux.intel.com>
-References: <20221103021822.308586-1-david.e.box@linux.intel.com>
-MIME-Version: 1.0
-Content-Transfer-Encoding: 8bit
-Precedence: bulk
-List-ID: <linux-pci.vger.kernel.org>
-X-Mailing-List: linux-pci@vger.kernel.org
-
-Refactor the PCI ID list to use PCI_VDEVICE.
-
-Signed-off-by: David E. Box <david.e.box@linux.intel.com>
-Reviewed-by: Jon Derrick <jonathan.derrick@linux.dev>
-Reviewed-by: Nirmal Patel <nirmal.patel@linux.intel.com>
----
- V8 - No change
-
- V7 - New Patch. Separate patch suggested by Lorenzo
-
- drivers/pci/controller/vmd.c | 16 ++++++++--------
- 1 file changed, 8 insertions(+), 8 deletions(-)
-
-diff --git a/drivers/pci/controller/vmd.c b/drivers/pci/controller/vmd.c
-index e06e9f4fc50f..9dedca714c18 100644
---- a/drivers/pci/controller/vmd.c
-+++ b/drivers/pci/controller/vmd.c
-@@ -994,33 +994,33 @@ static int vmd_resume(struct device *dev)
- static SIMPLE_DEV_PM_OPS(vmd_dev_pm_ops, vmd_suspend, vmd_resume);
-
- static const struct pci_device_id vmd_ids[] = {
-- {PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_VMD_201D),
-+ {PCI_VDEVICE(INTEL, PCI_DEVICE_ID_INTEL_VMD_201D),
- .driver_data = VMD_FEAT_HAS_MEMBAR_SHADOW_VSCAP,},
-- {PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_VMD_28C0),
-+ {PCI_VDEVICE(INTEL, PCI_DEVICE_ID_INTEL_VMD_28C0),
- .driver_data = VMD_FEAT_HAS_MEMBAR_SHADOW |
- VMD_FEAT_HAS_BUS_RESTRICTIONS |
- VMD_FEAT_CAN_BYPASS_MSI_REMAP,},
-- {PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0x467f),
-+ {PCI_VDEVICE(INTEL, 0x467f),
- .driver_data = VMD_FEAT_HAS_MEMBAR_SHADOW_VSCAP |
- VMD_FEAT_HAS_BUS_RESTRICTIONS |
- VMD_FEAT_OFFSET_FIRST_VECTOR,},
-- {PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0x4c3d),
-+ {PCI_VDEVICE(INTEL, 0x4c3d),
- .driver_data = VMD_FEAT_HAS_MEMBAR_SHADOW_VSCAP |
- VMD_FEAT_HAS_BUS_RESTRICTIONS |
- VMD_FEAT_OFFSET_FIRST_VECTOR,},
-- {PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0xa77f),
-+ {PCI_VDEVICE(INTEL, 0xa77f),
- .driver_data = VMD_FEAT_HAS_MEMBAR_SHADOW_VSCAP |
- VMD_FEAT_HAS_BUS_RESTRICTIONS |
- VMD_FEAT_OFFSET_FIRST_VECTOR,},
-- {PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0x7d0b),
-+ {PCI_VDEVICE(INTEL, 0x7d0b),
- .driver_data = VMD_FEAT_HAS_MEMBAR_SHADOW_VSCAP |
- VMD_FEAT_HAS_BUS_RESTRICTIONS |
- VMD_FEAT_OFFSET_FIRST_VECTOR,},
-- {PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0xad0b),
-+ {PCI_VDEVICE(INTEL, 0xad0b),
- .driver_data = VMD_FEAT_HAS_MEMBAR_SHADOW_VSCAP |
- VMD_FEAT_HAS_BUS_RESTRICTIONS |
- VMD_FEAT_OFFSET_FIRST_VECTOR,},
-- {PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_VMD_9A0B),
-+ {PCI_VDEVICE(INTEL, PCI_DEVICE_ID_INTEL_VMD_9A0B),
- .driver_data = VMD_FEAT_HAS_MEMBAR_SHADOW_VSCAP |
- VMD_FEAT_HAS_BUS_RESTRICTIONS |
- VMD_FEAT_OFFSET_FIRST_VECTOR,},
---
-2.25.1
-
-
-From mboxrd@z Thu Jan 1 00:00:00 1970
-Return-Path: <linux-pci-owner@kernel.org>
-X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on
- aws-us-west-2-korg-lkml-1.web.codeaurora.org
-Received: from vger.kernel.org (vger.kernel.org [23.128.96.18])
- by smtp.lore.kernel.org (Postfix) with ESMTP id 2C015C4332F
- for <linux-pci@archiver.kernel.org>; Thu, 3 Nov 2022 02:18:35 +0000 (UTC)
-Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand
- id S230353AbiKCCSa (ORCPT <rfc822;linux-pci@archiver.kernel.org>);
- Wed, 2 Nov 2022 22:18:30 -0400
-Received: from lindbergh.monkeyblade.net ([23.128.96.19]:56160 "EHLO
- lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org
- with ESMTP id S230266AbiKCCS1 (ORCPT
- <rfc822;linux-pci@vger.kernel.org>); Wed, 2 Nov 2022 22:18:27 -0400
-Received: from mga18.intel.com (mga18.intel.com [134.134.136.126])
- by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 555FCE81;
- Wed, 2 Nov 2022 19:18:24 -0700 (PDT)
-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple;
- d=intel.com; i=@intel.com; q=dns/txt; s=Intel;
- t=1667441905; x=1698977905;
- h=from:to:cc:subject:date:message-id:in-reply-to:
- references:mime-version:content-transfer-encoding;
- bh=HPzcsAi/d9ZZUHE0bfR05SfFvSoDaIB+WYmjKiFqpy4=;
- b=V33lj/7ygFrkVPShV+DmuCKKknUkX0Q7z9HbHDxn3ShOrOfFS2Rx4nM3
- xjl0IwcP/rEPGdhppTqNFW5NIerdyqTnmdg7YyQGxPyRTucNImawYYZRW
- w/yiahAjImxpdSl7IS2lptgcDAGf47ICAq5JErYk1rvNLF39QLspv62DR
- CC1HN6W1abC4BX/aRlEjSpdFE1vBYY6p1K5XihseccLQ3scRbxNXZHfce
- ultbE/3pOXffkDVu0W9FauUZg7J2fpEAkxtc27cyKbQ9k99h8Bfhg/3cM
- +CYz+uMa0lzXX/m6KXst/qVnsCsoPJb2lYrXIcHu+Q46hgUJKrph3wKRX
- g==;
-X-IronPort-AV: E=McAfee;i="6500,9779,10519"; a="292886416"
-X-IronPort-AV: E=Sophos;i="5.95,235,1661842800";
- d="scan'208";a="292886416"
-Received: from orsmga007.jf.intel.com ([10.7.209.58])
- by orsmga106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 Nov 2022 19:18:23 -0700
-X-ExtLoop1: 1
-X-IronPort-AV: E=McAfee;i="6500,9779,10519"; a="629175111"
-X-IronPort-AV: E=Sophos;i="5.95,235,1661842800";
- d="scan'208";a="629175111"
-Received: from linux.intel.com ([10.54.29.200])
- by orsmga007.jf.intel.com with ESMTP; 02 Nov 2022 19:18:23 -0700
-Received: from debox1-desk4.intel.com (unknown [10.212.195.54])
- by linux.intel.com (Postfix) with ESMTP id 56E3E580B9E;
- Wed, 2 Nov 2022 19:18:23 -0700 (PDT)
-From: "David E. Box" <david.e.box@linux.intel.com>
-To: nirmal.patel@linux.intel.com, jonathan.derrick@linux.dev,
- lorenzo.pieralisi@arm.com, hch@infradead.org, kw@linux.com,
- robh@kernel.org, bhelgaas@google.com, david.e.box@linux.intel.com,
- michael.a.bottini@intel.com, rafael@kernel.org, me@adhityamohan.in
-Cc: linux-pci@vger.kernel.org, linux-kernel@vger.kernel.org
-Subject: [PATCH V8 3/4] PCI: vmd: Create feature grouping for client products
-Date: Wed, 2 Nov 2022 19:18:21 -0700
-Message-Id: <20221103021822.308586-4-david.e.box@linux.intel.com>
-X-Mailer: git-send-email 2.25.1
-In-Reply-To: <20221103021822.308586-1-david.e.box@linux.intel.com>
-References: <20221103021822.308586-1-david.e.box@linux.intel.com>
-MIME-Version: 1.0
-Content-Transfer-Encoding: 8bit
-Precedence: bulk
-List-ID: <linux-pci.vger.kernel.org>
-X-Mailing-List: linux-pci@vger.kernel.org
-
-Simplify the device ID list by creating a grouping of features shared by
-client products.
-
-Suggested-by: Jon Derrick <jonathan.derrick@linux.dev>
-Signed-off-by: David E. Box <david.e.box@linux.intel.com>
----
-
- V8 - New patch.
-
- drivers/pci/controller/vmd.c | 28 ++++++++++------------------
- 1 file changed, 10 insertions(+), 18 deletions(-)
-
-diff --git a/drivers/pci/controller/vmd.c b/drivers/pci/controller/vmd.c
-index 9dedca714c18..86f3085db014 100644
---- a/drivers/pci/controller/vmd.c
-+++ b/drivers/pci/controller/vmd.c
-@@ -68,6 +68,10 @@ enum vmd_features {
- VMD_FEAT_CAN_BYPASS_MSI_REMAP = (1 << 4),
- };
-
-+#define VMD_FEATS_CLIENT (VMD_FEAT_HAS_MEMBAR_SHADOW_VSCAP | \
-+ VMD_FEAT_HAS_BUS_RESTRICTIONS | \
-+ VMD_FEAT_OFFSET_FIRST_VECTOR)
-+
- static DEFINE_IDA(vmd_instance_ida);
-
- /*
-@@ -1001,29 +1005,17 @@ static const struct pci_device_id vmd_ids[] = {
- VMD_FEAT_HAS_BUS_RESTRICTIONS |
- VMD_FEAT_CAN_BYPASS_MSI_REMAP,},
- {PCI_VDEVICE(INTEL, 0x467f),
-- .driver_data = VMD_FEAT_HAS_MEMBAR_SHADOW_VSCAP |
-- VMD_FEAT_HAS_BUS_RESTRICTIONS |
-- VMD_FEAT_OFFSET_FIRST_VECTOR,},
-+ .driver_data = VMD_FEATS_CLIENT,},
- {PCI_VDEVICE(INTEL, 0x4c3d),
-- .driver_data = VMD_FEAT_HAS_MEMBAR_SHADOW_VSCAP |
-- VMD_FEAT_HAS_BUS_RESTRICTIONS |
-- VMD_FEAT_OFFSET_FIRST_VECTOR,},
-+ .driver_data = VMD_FEATS_CLIENT,},
- {PCI_VDEVICE(INTEL, 0xa77f),
-- .driver_data = VMD_FEAT_HAS_MEMBAR_SHADOW_VSCAP |
-- VMD_FEAT_HAS_BUS_RESTRICTIONS |
-- VMD_FEAT_OFFSET_FIRST_VECTOR,},
-+ .driver_data = VMD_FEATS_CLIENT,},
- {PCI_VDEVICE(INTEL, 0x7d0b),
-- .driver_data = VMD_FEAT_HAS_MEMBAR_SHADOW_VSCAP |
-- VMD_FEAT_HAS_BUS_RESTRICTIONS |
-- VMD_FEAT_OFFSET_FIRST_VECTOR,},
-+ .driver_data = VMD_FEATS_CLIENT,},
- {PCI_VDEVICE(INTEL, 0xad0b),
-- .driver_data = VMD_FEAT_HAS_MEMBAR_SHADOW_VSCAP |
-- VMD_FEAT_HAS_BUS_RESTRICTIONS |
-- VMD_FEAT_OFFSET_FIRST_VECTOR,},
-+ .driver_data = VMD_FEATS_CLIENT,},
- {PCI_VDEVICE(INTEL, PCI_DEVICE_ID_INTEL_VMD_9A0B),
-- .driver_data = VMD_FEAT_HAS_MEMBAR_SHADOW_VSCAP |
-- VMD_FEAT_HAS_BUS_RESTRICTIONS |
-- VMD_FEAT_OFFSET_FIRST_VECTOR,},
-+ .driver_data = VMD_FEATS_CLIENT,},
- {0,}
- };
- MODULE_DEVICE_TABLE(pci, vmd_ids);
---
-2.25.1
-
-
-From mboxrd@z Thu Jan 1 00:00:00 1970
-Return-Path: <linux-pci-owner@kernel.org>
-X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on
- aws-us-west-2-korg-lkml-1.web.codeaurora.org
-Received: from vger.kernel.org (vger.kernel.org [23.128.96.18])
- by smtp.lore.kernel.org (Postfix) with ESMTP id 35523C43217
- for <linux-pci@archiver.kernel.org>; Thu, 3 Nov 2022 02:18:36 +0000 (UTC)
-Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand
- id S230466AbiKCCSd (ORCPT <rfc822;linux-pci@archiver.kernel.org>);
- Wed, 2 Nov 2022 22:18:33 -0400
-Received: from lindbergh.monkeyblade.net ([23.128.96.19]:56188 "EHLO
- lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org
- with ESMTP id S229436AbiKCCS2 (ORCPT
- <rfc822;linux-pci@vger.kernel.org>); Wed, 2 Nov 2022 22:18:28 -0400
-Received: from mga18.intel.com (mga18.intel.com [134.134.136.126])
- by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 119BE13D48;
- Wed, 2 Nov 2022 19:18:27 -0700 (PDT)
-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple;
- d=intel.com; i=@intel.com; q=dns/txt; s=Intel;
- t=1667441907; x=1698977907;
- h=from:to:cc:subject:date:message-id:in-reply-to:
- references:mime-version:content-transfer-encoding;
- bh=aEiHMG/t7yyno42B1YTG/JN48w91eX/H9maLsZ24Sp0=;
- b=mMsfE7DPPMYcfi/Ii0kcUlolsfkUNNfdpDmA7EcRKiHEqsMbCdeVtIRk
- Qs5CyXpnBkA+g4c0G+x9fNEu1vWUsI+KTzOrr8z1OZz/DMq0WfHO+gKcz
- mdEZ75Y2AE4aUxEYeyqsGTU6FpnZ+WdR3jBbPoVBp1AcyA58dVZwMkSjs
- UB3PQfdysXnrfSdgMTzZMlsBsSmohnLAtn1BeKgdZtH2AHPxO6wsv9TPY
- NhcRZKWd2tVPfq77Qol0XDRGQZUdWXPFZfJHQ2b2GXkeCJ75rrHeEHVvU
- Rfh+HEb7GDuHamdtXYPnlkaA183sJycUDR+Vv8rYICq0j7o7a6krxEExc
- A==;
-X-IronPort-AV: E=McAfee;i="6500,9779,10519"; a="292886417"
-X-IronPort-AV: E=Sophos;i="5.95,235,1661842800";
- d="scan'208";a="292886417"
-Received: from orsmga003.jf.intel.com ([10.7.209.27])
- by orsmga106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 Nov 2022 19:18:24 -0700
-X-ExtLoop1: 1
-X-IronPort-AV: E=McAfee;i="6500,9779,10519"; a="585619408"
-X-IronPort-AV: E=Sophos;i="5.95,235,1661842800";
- d="scan'208";a="585619408"
-Received: from linux.intel.com ([10.54.29.200])
- by orsmga003.jf.intel.com with ESMTP; 02 Nov 2022 19:18:24 -0700
-Received: from debox1-desk4.intel.com (unknown [10.212.195.54])
- by linux.intel.com (Postfix) with ESMTP id B46F4580DBD;
- Wed, 2 Nov 2022 19:18:23 -0700 (PDT)
-From: "David E. Box" <david.e.box@linux.intel.com>
-To: nirmal.patel@linux.intel.com, jonathan.derrick@linux.dev,
- lorenzo.pieralisi@arm.com, hch@infradead.org, kw@linux.com,
- robh@kernel.org, bhelgaas@google.com, david.e.box@linux.intel.com,
- michael.a.bottini@intel.com, rafael@kernel.org, me@adhityamohan.in
-Cc: linux-pci@vger.kernel.org, linux-kernel@vger.kernel.org
-Subject: [PATCH V8 4/4] PCI: vmd: Add quirk to configure PCIe ASPM and LTR
-Date: Wed, 2 Nov 2022 19:18:22 -0700
-Message-Id: <20221103021822.308586-5-david.e.box@linux.intel.com>
-X-Mailer: git-send-email 2.25.1
-In-Reply-To: <20221103021822.308586-1-david.e.box@linux.intel.com>
-References: <20221103021822.308586-1-david.e.box@linux.intel.com>
-MIME-Version: 1.0
-Content-Transfer-Encoding: 8bit
-Precedence: bulk
-List-ID: <linux-pci.vger.kernel.org>
-X-Mailing-List: linux-pci@vger.kernel.org
-
-PCIe ports reserved for VMD use are not visible to BIOS and therefore not
-configured to enable PCIe ASPM or LTR values (which BIOS will configure if
-they are not set). Lack of this programming results in high power
-consumption on laptops as reported in bugzilla. For affected products use
-pci_enable_link_state to set the allowed link states for devices on the
-root ports. Also set the LTR value to the maximum value needed for the SoC.
-
-This is a workaround for products from Rocket Lake through Alder Lake.
-Raptor Lake, the latest product at this time, has already implemented LTR
-configuring in BIOS. Future products will move ASPM configuration back to
-BIOS as well. As this solution is intended for laptops, support is not
-added for hotplug or for devices downstream of a switch on the root port.
-
-Link: https://bugzilla.kernel.org/show_bug.cgi?id=212355
-Link: https://bugzilla.kernel.org/show_bug.cgi?id=215063
-Link: https://bugzilla.kernel.org/show_bug.cgi?id=213717
-
-Signed-off-by: Michael Bottini <michael.a.bottini@linux.intel.com>
-Signed-off-by: David E. Box <david.e.box@linux.intel.com>
-Reviewed-by: Jon Derrick <jonathan.derrick@linux.dev>
-Reviewed-by: Nirmal Patel <nirmal.patel@linux.intel.com>
----
- V8
- - Removed struct vmd_device_data patch. Instead use #define for the LTR
- value which is the same across all products needing the quirk.
- V7
- - No change
- V6
- - Set ASPM first before setting LTR. This is needed because some
- devices may only have LTR set by BIOS and not ASPM
- - Skip setting the LTR if the current LTR in non-zero.
- V5
- - Provide the LTR value as driver data.
- - Use DWORD for the config space write to avoid PCI WORD access bug.
- - Set ASPM links firsts, enabling all link states, before setting a
- default LTR if the capability is present
- - Add kernel message that VMD is setting the device LTR.
- V4
- - Refactor vmd_enable_apsm() to exit early, making the lines shorter
- and more readable. Suggested by Christoph.
- V3
- - No changes
- V2
- - Use return status to print pci_info message if ASPM cannot be enabled.
- - Add missing static declaration, caught by lkp@intel.com
- drivers/pci/controller/vmd.c | 64 ++++++++++++++++++++++++++++++++----
- 1 file changed, 58 insertions(+), 6 deletions(-)
-
-diff --git a/drivers/pci/controller/vmd.c b/drivers/pci/controller/vmd.c
-index 86f3085db014..cba57e3091f6 100644
---- a/drivers/pci/controller/vmd.c
-+++ b/drivers/pci/controller/vmd.c
-@@ -66,12 +66,22 @@ enum vmd_features {
- * interrupt handling.
- */
- VMD_FEAT_CAN_BYPASS_MSI_REMAP = (1 << 4),
-+
-+ /*
-+ * Enable ASPM on the PCIE root ports and set the default LTR of the
-+ * storage devices on platforms where these values are not configured by
-+ * BIOS. This is needed for laptops, which require these settings for
-+ * proper power management of the SoC.
-+ */
-+ VMD_FEAT_BIOS_PM_QUIRK = (1 << 5),
- };
-
- #define VMD_FEATS_CLIENT (VMD_FEAT_HAS_MEMBAR_SHADOW_VSCAP | \
- VMD_FEAT_HAS_BUS_RESTRICTIONS | \
- VMD_FEAT_OFFSET_FIRST_VECTOR)
-
-+#define VMD_BIOS_PM_QUIRK_LTR 0x1003 /* 3145728 ns */
-+
- static DEFINE_IDA(vmd_instance_ida);
-
- /*
-@@ -713,6 +723,46 @@ static void vmd_copy_host_bridge_flags(struct pci_host_bridge *root_bridge,
- vmd_bridge->native_dpc = root_bridge->native_dpc;
- }
-
-+/*
-+ * Enable ASPM and LTR settings on devices that aren't configured by BIOS.
-+ */
-+static int vmd_pm_enable_quirk(struct pci_dev *pdev, void *userdata)
-+{
-+ unsigned long features = *(unsigned long *)userdata;
-+ u16 ltr = VMD_BIOS_PM_QUIRK_LTR;
-+ u32 ltr_reg;
-+ int pos;
-+
-+ if (!(features & VMD_FEAT_BIOS_PM_QUIRK))
-+ return 0;
-+
-+ pci_enable_link_state(pdev, PCIE_LINK_STATE_ALL);
-+
-+ pos = pci_find_ext_capability(pdev, PCI_EXT_CAP_ID_LTR);
-+ if (!pos)
-+ return 0;
-+
-+ /*
-+ * Skip if the max snoop LTR is non-zero, indicating BIOS has set it
-+ * so the LTR quirk is not needed.
-+ */
-+ pci_read_config_dword(pdev, pos + PCI_LTR_MAX_SNOOP_LAT, &ltr_reg);
-+ if (!!(ltr_reg & (PCI_LTR_VALUE_MASK | PCI_LTR_SCALE_MASK)))
-+ return 0;
-+
-+ /*
-+ * Set the default values to the maximum required by the platform to
-+ * allow the deepest power management savings. Write as a DWORD where
-+ * the lower word is the max snoop latency and the upper word is the
-+ * max non-snoop latency.
-+ */
-+ ltr_reg = (ltr << 16) | ltr;
-+ pci_write_config_dword(pdev, pos + PCI_LTR_MAX_SNOOP_LAT, ltr_reg);
-+ pci_info(pdev, "VMD: Default LTR value set by driver\n");
-+
-+ return 0;
-+}
-+
- static int vmd_enable_domain(struct vmd_dev *vmd, unsigned long features)
- {
- struct pci_sysdata *sd = &vmd->sysdata;
-@@ -867,6 +917,8 @@ static int vmd_enable_domain(struct vmd_dev *vmd, unsigned long features)
- pci_reset_bus(child->self);
- pci_assign_unassigned_bus_resources(vmd->bus);
-
-+ pci_walk_bus(vmd->bus, vmd_pm_enable_quirk, &features);
-+
- /*
- * VMD root buses are virtual and don't return true on pci_is_pcie()
- * and will fail pcie_bus_configure_settings() early. It can instead be
-@@ -1005,17 +1057,17 @@ static const struct pci_device_id vmd_ids[] = {
- VMD_FEAT_HAS_BUS_RESTRICTIONS |
- VMD_FEAT_CAN_BYPASS_MSI_REMAP,},
- {PCI_VDEVICE(INTEL, 0x467f),
-- .driver_data = VMD_FEATS_CLIENT,},
-+ .driver_data = VMD_FEATS_CLIENT | VMD_FEAT_BIOS_PM_QUIRK,},
- {PCI_VDEVICE(INTEL, 0x4c3d),
-- .driver_data = VMD_FEATS_CLIENT,},
-+ .driver_data = VMD_FEATS_CLIENT | VMD_FEAT_BIOS_PM_QUIRK,},
- {PCI_VDEVICE(INTEL, 0xa77f),
-- .driver_data = VMD_FEATS_CLIENT,},
-+ .driver_data = VMD_FEATS_CLIENT | VMD_FEAT_BIOS_PM_QUIRK,},
- {PCI_VDEVICE(INTEL, 0x7d0b),
-- .driver_data = VMD_FEATS_CLIENT,},
-+ .driver_data = VMD_FEATS_CLIENT | VMD_FEAT_BIOS_PM_QUIRK,},
- {PCI_VDEVICE(INTEL, 0xad0b),
-- .driver_data = VMD_FEATS_CLIENT,},
-+ .driver_data = VMD_FEATS_CLIENT | VMD_FEAT_BIOS_PM_QUIRK,},
- {PCI_VDEVICE(INTEL, PCI_DEVICE_ID_INTEL_VMD_9A0B),
-- .driver_data = VMD_FEATS_CLIENT,},
-+ .driver_data = VMD_FEATS_CLIENT | VMD_FEAT_BIOS_PM_QUIRK,},
- {0,}
- };
- MODULE_DEVICE_TABLE(pci, vmd_ids);
---
-2.25.1
-
-
-From mboxrd@z Thu Jan 1 00:00:00 1970
-Return-Path: <linux-pci-owner@kernel.org>
-X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on
- aws-us-west-2-korg-lkml-1.web.codeaurora.org
-Received: from vger.kernel.org (vger.kernel.org [23.128.96.18])
- by smtp.lore.kernel.org (Postfix) with ESMTP id 9BE9DC43219
- for <linux-pci@archiver.kernel.org>; Wed, 23 Nov 2022 10:43:16 +0000 (UTC)
-Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand
- id S236342AbiKWKnN (ORCPT <rfc822;linux-pci@archiver.kernel.org>);
- Wed, 23 Nov 2022 05:43:13 -0500
-Received: from lindbergh.monkeyblade.net ([23.128.96.19]:44260 "EHLO
- lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org
- with ESMTP id S237953AbiKWKmY (ORCPT
- <rfc822;linux-pci@vger.kernel.org>); Wed, 23 Nov 2022 05:42:24 -0500
-Received: from mail-pj1-f53.google.com (mail-pj1-f53.google.com [209.85.216.53])
- by lindbergh.monkeyblade.net (Postfix) with ESMTPS id A0F3D769FC;
- Wed, 23 Nov 2022 02:27:25 -0800 (PST)
-Received: by mail-pj1-f53.google.com with SMTP id o5-20020a17090a678500b00218cd5a21c9so1425739pjj.4;
- Wed, 23 Nov 2022 02:27:25 -0800 (PST)
-X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
- d=1e100.net; s=20210112;
- h=content-transfer-encoding:in-reply-to:from:references:cc:to
- :content-language:subject:user-agent:mime-version:date:message-id
- :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
- bh=pwpkG9G3xkjOyzikzQ4T/gV3SMpUqELfzhIlK43yLpY=;
- b=jQXLGvDVVqf0LTqxfMq535ZmBr0TkT6RB8p0K8w8T4X78ujUSLrRE1BiKXSaqWNkmw
- cAkayP69927XFP5BW+z1irjuWY5mWxL4XQ507eTgf2AzwJhLDBEP2gNyowTAh+MWX5YJ
- DvlEpF45NCRkz+8Gm7+Cz4tyS2l9/XAiVpA7UMj0ODEclCcxmeXJwkN1+Z/oqKyAeSbw
- 3+W9WGzmfnnF16NWn5dQpa3a8WYifXYRCN4bydwZ326GLbvuH8Zdo11ZhikVrjDkZ9vA
- UHat2k1hFjfe0oXg7Vvg1dokDaesqRyGFwEHZSuiPBVZN3X5ZtEvPC9ueBWj3baE/vNn
- vDVg==
-X-Gm-Message-State: ANoB5pmNpoOo2LNpR3OgzqqEeSYg/jELrMBlhcX2HhIdcA9xj7wx9aA2
- v2LitFYUz66ji4yIFNDP7sk=
-X-Google-Smtp-Source: AA0mqf79gqmDL9stZaRGjrZHLamllSmaeTB+6NNa9TcOtJrVW/NC2LzyXTItQ7A2l8c6qcAq/OLfbA==
-X-Received: by 2002:a17:90b:484:b0:218:9d3d:71f4 with SMTP id bh4-20020a17090b048400b002189d3d71f4mr19624100pjb.148.1669199244920;
- Wed, 23 Nov 2022 02:27:24 -0800 (PST)
-Received: from [192.168.0.247] (61-227-110-150.dynamic-ip.hinet.net. [61.227.110.150])
- by smtp.gmail.com with ESMTPSA id i8-20020a170902c94800b00172fad607b3sm13969212pla.207.2022.11.23.02.27.20
- (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
- Wed, 23 Nov 2022 02:27:24 -0800 (PST)
-Message-ID: <5c766840-e092-45ea-0664-7bbdb78b933a@canonical.com>
-Date: Wed, 23 Nov 2022 18:27:18 +0800
-MIME-Version: 1.0
-User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101
- Thunderbird/102.5.0
-Subject: Re: [PATCH V8 0/4] PCI: vmd: Enable PCIe ASPM and LTR on select
- hardware
-Content-Language: en-US
-To: "David E. Box" <david.e.box@linux.intel.com>
-Cc: michael.a.bottini@intel.com, linux-pci@vger.kernel.org,
- linux-kernel@vger.kernel.org, me@adhityamohan.in,
- rafael@kernel.org, hch@infradead.org, robh@kernel.org,
- bhelgaas@google.com, kw@linux.com, lorenzo.pieralisi@arm.com,
- nirmal.patel@linux.intel.com, jonathan.derrick@linux.dev
-References: <20221103021822.308586-1-david.e.box@linux.intel.com>
-From: You-Sheng Yang <vicamo.yang@canonical.com>
-In-Reply-To: <20221103021822.308586-1-david.e.box@linux.intel.com>
-Content-Type: text/plain; charset=UTF-8; format=flowed
-Content-Transfer-Encoding: 8bit
-Precedence: bulk
-List-ID: <linux-pci.vger.kernel.org>
-X-Mailing-List: linux-pci@vger.kernel.org
-
-Hi David,
-
-On 11/3/22 10:18, David E. Box wrote:
-> This series adds a work around for enabling PCIe ASPM and for setting PCIe
-> LTR values on VMD reserved root ports on select platforms. While
-> configuration of these capabilities is usually done by BIOS, on these
-> platforms these capabilities will not be configured because the ports are
-> not visible to BIOS. This was part of an initial design that expected the
-> driver to completely handle the ports, including power management. However
-> on Linux those ports are still managed by the PCIe core, which has the
-> expectation that they adhere to device standards including BIOS
-> configuration, leading to this problem.
->
-> The target platforms are Tiger Lake, Alder Lake, and Raptor Lake though the
-> latter has already implemented support for configuring the LTR values.
-> Meteor Lake is expected add BIOS ASPM support, eliminating the future need
-> for this work around.
-
-
-It appears to me that this patch series works only on Tiger Lake. We
-have tried to revert our current work-arounds in Ubuntu kernels
-generic-5.15/oem-5.17/oem-6.0/unstable-6.1 and apply this series, the
-prebuilt kernels can be found in:
-
-   https://launchpad.net/~vicamo/+archive/ubuntu/ppa-1996620
-
-However, only TGL can still enter PC10 as before.
-
-
-ADL-M, RPL platforms will stay in PC3 with vmd LTR set, but ASPM
-disabled. i915 RC6 blocked, too:
-
-$ sudo cat /sys/kernel/debug/dri/
-
-0/i915_dmc_info
-...
-DC3CO count: 0
-DC3 -> DC5 count: 100
-DC5 -> DC6 count: 0
-
-
-> Note, the driver programs the LTRs because BIOS would also normally do this
-> for devices that do not set them by default. Without this, SoC power
-> management would be blocked on those platform. This SoC specific value is
-> the maximum latency required to allow the SoC to enter the deepest power
-> state.
->
-> This patch addresses the following open bugzillas on VMD enabled laptops
-> that cannot enter low power states.
->
-> Link: https://bugzilla.kernel.org/show_bug.cgi?id=212355
-> Link: https://bugzilla.kernel.org/show_bug.cgi?id=215063
-> Link: https://bugzilla.kernel.org/show_bug.cgi?id=213717
->
-> David E. Box (3):
-> PCI: vmd: Use PCI_VDEVICE in device list
-> PCI: vmd: Create feature grouping for client products
-> PCI: vmd: Add quirk to configure PCIe ASPM and LTR
->
-> Michael Bottini (1):
-> PCI/ASPM: Add pci_enable_link_state()
->
-> drivers/pci/controller/vmd.c | 96 ++++++++++++++++++++++++++----------
-> drivers/pci/pcie/aspm.c | 54 ++++++++++++++++++++
-> include/linux/pci.h | 7 +++
-> 3 files changed, 131 insertions(+), 26 deletions(-)
->
->
-> base-commit: 247f34f7b80357943234f93f247a1ae6b6c3a740
-
-
-Regards,
-You-Sheng Yang
-
-
-From mboxrd@z Thu Jan 1 00:00:00 1970
-Return-Path: <linux-pci-owner@kernel.org>
-X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on
- aws-us-west-2-korg-lkml-1.web.codeaurora.org
-Received: from vger.kernel.org (vger.kernel.org [23.128.96.18])
- by smtp.lore.kernel.org (Postfix) with ESMTP id 6B305C4332F
- for <linux-pci@archiver.kernel.org>; Wed, 23 Nov 2022 16:10:05 +0000 (UTC)
-Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand
- id S238934AbiKWQKD (ORCPT <rfc822;linux-pci@archiver.kernel.org>);
- Wed, 23 Nov 2022 11:10:03 -0500
-Received: from lindbergh.monkeyblade.net ([23.128.96.19]:37158 "EHLO
- lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org
- with ESMTP id S238863AbiKWQKA (ORCPT
- <rfc822;linux-pci@vger.kernel.org>); Wed, 23 Nov 2022 11:10:00 -0500
-Received: from mga11.intel.com (mga11.intel.com [192.55.52.93])
- by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 75D25C76BB;
- Wed, 23 Nov 2022 08:09:56 -0800 (PST)
-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple;
- d=intel.com; i=@intel.com; q=dns/txt; s=Intel;
- t=1669219796; x=1700755796;
- h=message-id:subject:from:reply-to:to:cc:date:in-reply-to:
- references:content-transfer-encoding:mime-version;
- bh=41Amlkh3nNXXy8dAcUXdlKhcq7idpet7xOPClTf5RII=;
- b=ioLNdzHN/4vRJQKS4hup4Bg24QU8kYQktqJU0/6SW3Y036oCQFdX/bS2
- OV6UHWmdGkS5jwdz+8Avou8tpNLdcs6uqaMFo2eM58+meR9kDDy5pBx6k
- 5VxsFkNA+Qpjl70pJaMXqp/bK3oehRmeS5Y6JOUCr20yqF6UP1HDv6quc
- ZSviqMMlMyDW7SIZU2JmboOjAZBUIWR6z8vwVacpSs0+vMDUPWZSo5+NM
- rB5mc00bAq2vtFk2JINllWS/ant/9lPeAoAEbZDXyMStqDj67O453j0es
- jKhxMgnwYtDUD599Kz36cWZoCOarzMTeNUAVcwpv1q2G6NZH3bbB8awqy
- Q==;
-X-IronPort-AV: E=McAfee;i="6500,9779,10540"; a="311729547"
-X-IronPort-AV: E=Sophos;i="5.96,187,1665471600";
- d="scan'208";a="311729547"
-Received: from fmsmga001.fm.intel.com ([10.253.24.23])
- by fmsmga102.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 23 Nov 2022 08:09:49 -0800
-X-ExtLoop1: 1
-X-IronPort-AV: E=McAfee;i="6500,9779,10540"; a="784293582"
-X-IronPort-AV: E=Sophos;i="5.96,187,1665471600";
- d="scan'208";a="784293582"
-Received: from linux.intel.com ([10.54.29.200])
- by fmsmga001.fm.intel.com with ESMTP; 23 Nov 2022 08:09:48 -0800
-Received: from brpivitt-mobl1.amr.corp.intel.com (unknown [10.252.128.124])
- by linux.intel.com (Postfix) with ESMTP id 61E4E580AFF;
- Wed, 23 Nov 2022 08:09:48 -0800 (PST)
-Message-ID: <17b05a72d2db1074cef9d5e9f85b347850f171d5.camel@linux.intel.com>
-Subject: Re: [PATCH V8 0/4] PCI: vmd: Enable PCIe ASPM and LTR on select
- hardware
-From: "David E. Box" <david.e.box@linux.intel.com>
-Reply-To: david.e.box@linux.intel.com
-To: You-Sheng Yang <vicamo.yang@canonical.com>
-Cc: michael.a.bottini@intel.com, linux-pci@vger.kernel.org,
- linux-kernel@vger.kernel.org, me@adhityamohan.in,
- rafael@kernel.org, hch@infradead.org, robh@kernel.org,
- bhelgaas@google.com, kw@linux.com, lorenzo.pieralisi@arm.com,
- nirmal.patel@linux.intel.com, jonathan.derrick@linux.dev
-Date: Wed, 23 Nov 2022 08:09:48 -0800
-In-Reply-To: <5c766840-e092-45ea-0664-7bbdb78b933a@canonical.com>
-References: <20221103021822.308586-1-david.e.box@linux.intel.com>
- <5c766840-e092-45ea-0664-7bbdb78b933a@canonical.com>
-Organization: David E. Box
-Content-Type: text/plain; charset="UTF-8"
-Content-Transfer-Encoding: quoted-printable
-User-Agent: Evolution 3.44.4-0ubuntu1
-MIME-Version: 1.0
-Precedence: bulk
-List-ID: <linux-pci.vger.kernel.org>
-X-Mailing-List: linux-pci@vger.kernel.org
-
-Hi You-Sheng,
-
-On Wed, 2022-11-23 at 18:27 +0800, You-Sheng Yang wrote:
-> Hi David,
->=20
-> On 11/3/22 10:18, David E. Box wrote:
-> > This series adds a work around for enabling PCIe ASPM and for setting P=
-CIe
-> > LTR values on VMD reserved root ports on select platforms. While
-> > configuration of these capabilities is usually done by BIOS, on these
-> > platforms these capabilities will not be configured because the ports a=
-re
-> > not visible to BIOS. This was part of an initial design that expected t=
-he
-> > driver to completely handle the ports, including power management. Howe=
-ver
-> > on Linux those ports are still managed by the PCIe core, which has the
-> > expectation that they adhere to device standards including BIOS
-> > configuration, leading to this problem.
-> >=20
-> > The target platforms are Tiger Lake, Alder Lake, and Raptor Lake though=
- the
-> > latter has already implemented support for configuring the LTR values.
-> > Meteor Lake is expected add BIOS ASPM support, eliminating the future n=
-eed
-> > for this work around.
->=20
->=20
-> It appears to me that this patch series works only on Tiger Lake. We=20
-> have tried to revert our current work-arounds in Ubuntu kernels=20
-> generic-5.15/oem-5.17/oem-6.0/unstable-6.1 and apply this series, the=20
-> prebuilt kernels can be found in:
->=20
-> =C2=A0=C2=A0 https://launchpad.net/~vicamo/+archive/ubuntu/ppa-1996620
->=20
-> However, only TGL can still enter PC10 as before.
->=20
->=20
-> ADL-M, RPL platforms will stay in PC3 with vmd LTR set, but ASPM=20
-> disabled.
-
-For the patch to work BIOS must allow the OS to control ASPM. If this is no=
-t the
-case then you will see the message "ACPI FADT declares the system doesn't
-support PCIe ASPM, so disable it". Please check for this on the systems tha=
-t
-don't work. If so the only option is a BIOS change to enable it.
-
-David
-
-> i915 RC6 blocked, too:
->=20
-> $ sudo cat /sys/kernel/debug/dri/
->=20
-> 0/i915_dmc_info
-> ...
-> DC3CO count: 0
-> DC3 -> DC5 count: 100
-> DC5 -> DC6 count: 0
->=20
->=20
-> > Note, the driver programs the LTRs because BIOS would also normally do =
-this
-> > for devices that do not set them by default. Without this, SoC power
-> > management would be blocked on those platform. This SoC specific value =
-is
-> > the maximum latency required to allow the SoC to enter the deepest powe=
-r
-> > state.
-> >=20
-> > This patch addresses the following open bugzillas on VMD enabled laptop=
-s
-> > that cannot enter low power states.
-> >=20
-> > Link: https://bugzilla.kernel.org/show_bug.cgi?id=3D212355
-> > Link: https://bugzilla.kernel.org/show_bug.cgi?id=3D215063
-> > Link: https://bugzilla.kernel.org/show_bug.cgi?id=3D213717
-> >=20
-> > David E. Box (3):
-> > =C2=A0=C2=A0 PCI: vmd: Use PCI_VDEVICE in device list
-> > =C2=A0=C2=A0 PCI: vmd: Create feature grouping for client products
-> > =C2=A0=C2=A0 PCI: vmd: Add quirk to configure PCIe ASPM and LTR
-> >=20
-> > Michael Bottini (1):
-> > =C2=A0=C2=A0 PCI/ASPM: Add pci_enable_link_state()
-> >=20
-> > =C2=A0 drivers/pci/controller/vmd.c | 96 ++++++++++++++++++++++++++----=
-------
-> > =C2=A0 drivers/pci/pcie/aspm.c=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 | 54 +++++=
-+++++++++++++++
-> > =C2=A0 include/linux/pci.h=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
-=A0=C2=A0 |=C2=A0 7 +++
-> > =C2=A0 3 files changed, 131 insertions(+), 26 deletions(-)
-> >=20
-> >=20
-> > base-commit: 247f34f7b80357943234f93f247a1ae6b6c3a740
->=20
->=20
-> Regards,
-> You-Sheng Yang
->=20
-
-
-From mboxrd@z Thu Jan 1 00:00:00 1970
-Return-Path: <linux-pci-owner@kernel.org>
-X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on
- aws-us-west-2-korg-lkml-1.web.codeaurora.org
-Received: from vger.kernel.org (vger.kernel.org [23.128.96.18])
- by smtp.lore.kernel.org (Postfix) with ESMTP id ABA40C433FE
- for <linux-pci@archiver.kernel.org>; Thu, 24 Nov 2022 16:40:17 +0000 (UTC)
-Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand
- id S229477AbiKXQkQ (ORCPT <rfc822;linux-pci@archiver.kernel.org>);
- Thu, 24 Nov 2022 11:40:16 -0500
-Received: from lindbergh.monkeyblade.net ([23.128.96.19]:38952 "EHLO
- lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org
- with ESMTP id S229379AbiKXQkO (ORCPT
- <rfc822;linux-pci@vger.kernel.org>); Thu, 24 Nov 2022 11:40:14 -0500
-Received: from smtp-relay-internal-1.canonical.com (smtp-relay-internal-1.canonical.com [185.125.188.123])
- by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 3A39410CE82
- for <linux-pci@vger.kernel.org>; Thu, 24 Nov 2022 08:40:13 -0800 (PST)
-Received: from mail-il1-f200.google.com (mail-il1-f200.google.com [209.85.166.200])
- (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
- key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256)
- (No client certificate requested)
- by smtp-relay-internal-1.canonical.com (Postfix) with ESMTPS id 192763F46A
- for <linux-pci@vger.kernel.org>; Thu, 24 Nov 2022 16:40:11 +0000 (UTC)
-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=canonical.com;
- s=20210705; t=1669308011;
- bh=rFBx8o9ACr2aE3UXlk16oilIXDTZ3TK8L+Ksy/y90RU=;
- h=MIME-Version:References:In-Reply-To:From:Date:Message-ID:Subject:
- To:Cc:Content-Type;
- b=b2hIghAdfhN+u1QlWRhqvH49RiP3lpueoPPYUViLjmuWE0Al+czHFB3IQnWqgH1e4
- 3Kuj+RqM3hAxbjlThDt2atBTSGcqINNsRKiAaRXT7Et9kUbUABoTWyHX9tgxqqyJ4h
- zLF/C6XbBalqzA3L42ogy5LI20gK/qjDliYBeLrWUTGSz8NRGZQaejSlnpEX2r0YJf
- 3uR9Rl+Erbvjs9Gh9NvVEhDHdTtQ8Cp5HQzMgGK7j80ySnkOTt+ww+3fMCJbrpgjIM
- abtRqx8Q2fglJuPIeKb0oG20qd0fizYjUtSSJu17I81ShF+yWduw1O4a/R+5x1dWQW
- tSVXNiAB8JUmQ==
-Received: by mail-il1-f200.google.com with SMTP id k3-20020a92c243000000b0030201475a6bso1433616ilo.9
- for <linux-pci@vger.kernel.org>; Thu, 24 Nov 2022 08:40:11 -0800 (PST)
-X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
- d=1e100.net; s=20210112;
- h=cc:to:subject:message-id:date:from:in-reply-to:references
- :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id
- :reply-to;
- bh=rFBx8o9ACr2aE3UXlk16oilIXDTZ3TK8L+Ksy/y90RU=;
- b=5oO1UTG5GWs75QvhfQkgfvfcUjBX8FroWSSYuf6XiLkeBDzXmnkddKhGbLtAZgEKU2
- WDoBxaC831l2zBywqZV3hSEHn9rWwzYYplHdfZ4ruPBzLpE35N1ypD0Y2rarZWHmW/9r
- g/okR9U9zTo/U6pyO6ZRjnLIhe8jXO5axTNcXkdzjC9806gGXh8h9EJd0hjlJaBOqktQ
- 7ZZVlm6lpQNmlwnvCm7n4mRwDiE9HOj9UdWJdunbxDOantGvVz23KY4pkEV7aLBrbnlJ
- F+NwHlGvubESgbJuNLnuYtcSmLOld7xNO8SuyVFQHLEFQ9faNHdUaIlF8+IqqImhHk/B
- gHfw==
-X-Gm-Message-State: ANoB5pkWthOW13SXoGsLHkDt4M0NKp6SAgiC2OROjsVUmsuLZmxU/K6R
- QCRvV6XJmvtST+Jr6diNvUhD40VH216VUvStymK9NpQA2A1hlf+Qrccxaqy71zDldaGgK/GrTMz
- o+LViVPjFvV036Dt83rks/0i2Gn21kVsURFitSWGSySt9ZgaNynGHVQ==
-X-Received: by 2002:a6b:5904:0:b0:6af:ed54:1c81 with SMTP id n4-20020a6b5904000000b006afed541c81mr8426730iob.106.1669308009796;
- Thu, 24 Nov 2022 08:40:09 -0800 (PST)
-X-Google-Smtp-Source: AA0mqf6aovE2/ZA6S/DsuJGYDElLduwKMbC8q/hMU3FEu6WeD0yAmkdGpz22Y9xg5ahZfk76UnYd5HasZD8Lb1aFD9U=
-X-Received: by 2002:a6b:5904:0:b0:6af:ed54:1c81 with SMTP id
- n4-20020a6b5904000000b006afed541c81mr8426709iob.106.1669308009474; Thu, 24
- Nov 2022 08:40:09 -0800 (PST)
-MIME-Version: 1.0
-References: <20221103021822.308586-1-david.e.box@linux.intel.com>
- <5c766840-e092-45ea-0664-7bbdb78b933a@canonical.com> <17b05a72d2db1074cef9d5e9f85b347850f171d5.camel@linux.intel.com>
-In-Reply-To: <17b05a72d2db1074cef9d5e9f85b347850f171d5.camel@linux.intel.com>
-From: You-Sheng Yang <vicamo.yang@canonical.com>
-Date: Fri, 25 Nov 2022 00:39:58 +0800
-Message-ID: <CA+rHWA+7KudasAMnO=dCUSQWb76Eu=DALA=1eLd_jjLw0dEMkA@mail.gmail.com>
-Subject: Re: [PATCH V8 0/4] PCI: vmd: Enable PCIe ASPM and LTR on select hardware
-To: david.e.box@linux.intel.com
-Cc: michael.a.bottini@intel.com, linux-pci@vger.kernel.org,
- linux-kernel@vger.kernel.org, me@adhityamohan.in,
- rafael@kernel.org, hch@infradead.org, robh@kernel.org,
- bhelgaas@google.com, kw@linux.com, lorenzo.pieralisi@arm.com,
- nirmal.patel@linux.intel.com, jonathan.derrick@linux.dev
-Content-Type: text/plain; charset="UTF-8"
-Precedence: bulk
-List-ID: <linux-pci.vger.kernel.org>
-X-Mailing-List: linux-pci@vger.kernel.org
-
-On Thu, Nov 24, 2022 at 12:09 AM David E. Box
-<david.e.box@linux.intel.com> wrote:
->
-> Hi You-Sheng,
->
-> On Wed, 2022-11-23 at 18:27 +0800, You-Sheng Yang wrote:
-> > Hi David,
-> >
-> > On 11/3/22 10:18, David E. Box wrote:
-> > > This series adds a work around for enabling PCIe ASPM and for setting PCIe
-> > > LTR values on VMD reserved root ports on select platforms. While
-> > > configuration of these capabilities is usually done by BIOS, on these
-> > > platforms these capabilities will not be configured because the ports are
-> > > not visible to BIOS. This was part of an initial design that expected the
-> > > driver to completely handle the ports, including power management. However
-> > > on Linux those ports are still managed by the PCIe core, which has the
-> > > expectation that they adhere to device standards including BIOS
-> > > configuration, leading to this problem.
-> > >
-> > > The target platforms are Tiger Lake, Alder Lake, and Raptor Lake though the
-> > > latter has already implemented support for configuring the LTR values.
-> > > Meteor Lake is expected add BIOS ASPM support, eliminating the future need
-> > > for this work around.
-> >
-> >
-> > It appears to me that this patch series works only on Tiger Lake. We
-> > have tried to revert our current work-arounds in Ubuntu kernels
-> > generic-5.15/oem-5.17/oem-6.0/unstable-6.1 and apply this series, the
-> > prebuilt kernels can be found in:
-> >
-> > https://launchpad.net/~vicamo/+archive/ubuntu/ppa-1996620
-> >
-> > However, only TGL can still enter PC10 as before.
-> >
-> >
-> > ADL-M, RPL platforms will stay in PC3 with vmd LTR set, but ASPM
-> > disabled.
->
-> For the patch to work BIOS must allow the OS to control ASPM. If this is not the
-> case then you will see the message "ACPI FADT declares the system doesn't
-> support PCIe ASPM, so disable it". Please check for this on the systems that
-> don't work. If so the only option is a BIOS change to enable it.
-
-Thank you. It's exactly what you said. The ADL-M/RPL platforms I have
-do not support OS PCIe ASPM.
-
-> David
->
-> > i915 RC6 blocked, too:
-> >
-> > $ sudo cat /sys/kernel/debug/dri/
-> >
-> > 0/i915_dmc_info
-> > ...
-> > DC3CO count: 0
-> > DC3 -> DC5 count: 100
-> > DC5 -> DC6 count: 0
-> >
-> >
-> > > Note, the driver programs the LTRs because BIOS would also normally do this
-> > > for devices that do not set them by default. Without this, SoC power
-> > > management would be blocked on those platform. This SoC specific value is
-> > > the maximum latency required to allow the SoC to enter the deepest power
-> > > state.
-> > >
-> > > This patch addresses the following open bugzillas on VMD enabled laptops
-> > > that cannot enter low power states.
-> > >
-> > > Link: https://bugzilla.kernel.org/show_bug.cgi?id=212355
-> > > Link: https://bugzilla.kernel.org/show_bug.cgi?id=215063
-> > > Link: https://bugzilla.kernel.org/show_bug.cgi?id=213717
-> > >
-> > > David E. Box (3):
-> > > PCI: vmd: Use PCI_VDEVICE in device list
-> > > PCI: vmd: Create feature grouping for client products
-> > > PCI: vmd: Add quirk to configure PCIe ASPM and LTR
-> > >
-> > > Michael Bottini (1):
-> > > PCI/ASPM: Add pci_enable_link_state()
-> > >
-> > > drivers/pci/controller/vmd.c | 96 ++++++++++++++++++++++++++----------
-> > > drivers/pci/pcie/aspm.c | 54 ++++++++++++++++++++
-> > > include/linux/pci.h | 7 +++
-> > > 3 files changed, 131 insertions(+), 26 deletions(-)
-> > >
-> > >
-> > > base-commit: 247f34f7b80357943234f93f247a1ae6b6c3a740
-> >
-> >
-> > Regards,
-> > You-Sheng Yang
-> >
->
-
-
---
-Regards,
-You-Sheng Yang
-
-From mboxrd@z Thu Jan 1 00:00:00 1970
-Return-Path: <linux-pci-owner@kernel.org>
-X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on
- aws-us-west-2-korg-lkml-1.web.codeaurora.org
-Received: from vger.kernel.org (vger.kernel.org [23.128.96.18])
- by smtp.lore.kernel.org (Postfix) with ESMTP id 8481CC352A1
- for <linux-pci@archiver.kernel.org>; Wed, 7 Dec 2022 09:05:47 +0000 (UTC)
-Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand
- id S229777AbiLGJFq (ORCPT <rfc822;linux-pci@archiver.kernel.org>);
- Wed, 7 Dec 2022 04:05:46 -0500
-Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54240 "EHLO
- lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org
- with ESMTP id S229515AbiLGJFp (ORCPT
- <rfc822;linux-pci@vger.kernel.org>); Wed, 7 Dec 2022 04:05:45 -0500
-Received: from wout3-smtp.messagingengine.com (wout3-smtp.messagingengine.com [64.147.123.19])
- by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 5DB6526AC2;
- Wed, 7 Dec 2022 01:05:44 -0800 (PST)
-Received: from compute3.internal (compute3.nyi.internal [10.202.2.43])
- by mailout.west.internal (Postfix) with ESMTP id B2C0F32009E1;
- Wed, 7 Dec 2022 04:05:42 -0500 (EST)
-Received: from mailfrontend1 ([10.202.2.162])
- by compute3.internal (MEProxy); Wed, 07 Dec 2022 04:05:43 -0500
-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ljones.dev; h=cc
- :cc:content-transfer-encoding:content-type:date:date:from:from
- :in-reply-to:in-reply-to:message-id:mime-version:references
- :reply-to:sender:subject:subject:to:to; s=fm3; t=1670403942; x=
- 1670490342; bh=JFoXxMClww2l4RygoD+XW2GsjAAbe5uznYYD7nEj5+A=; b=A
- m+3Xd9pOm+9ctEko/ry4U6uTcBmcKTxoSXhrOYjFkNzs/UPFQ3eYMIW6MPgw2H6r
- W71NHDCfNlVOyxGK6QEtxyF8rdWdUjylzGuvSzy+iI1cTIyDvUZOhVgBzXAR4pdP
- zDSd0d9YPMphKkyku5QEjEG38WA26pdIxpRsHBm55ScFgaM4uCv5/xQ+rjaYprZL
- A+fvdT8D23+KOupjIeylZk5InsaqGNrVUifuJpVIM5mUkn0HoOyyvrRmtFXSq5Yl
- X1CHYaDxQcHEXMHnut+AsYWLGLPjewjytElsnMWmy1+yzdHdszmkfkCF+BE8Ba8Z
- d1Ny7AxdMcZGwGVoyRnaA==
-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
- messagingengine.com; h=cc:cc:content-transfer-encoding
- :content-type:date:date:feedback-id:feedback-id:from:from
- :in-reply-to:in-reply-to:message-id:mime-version:references
- :reply-to:sender:subject:subject:to:to:x-me-proxy:x-me-proxy
- :x-me-sender:x-me-sender:x-sasl-enc; s=fm1; t=1670403942; x=
- 1670490342; bh=JFoXxMClww2l4RygoD+XW2GsjAAbe5uznYYD7nEj5+A=; b=o
- u/WWNWj8Jc92d/UtZbf4Nr+ZIPhRQ0768ZQ/Sf+INAMi26NBhtJLUu9aNRQpIK9I
- Dam5k6gOJvt4nfYzC9GRZMJosLhHrmL/Pm/8dRS05pKgo6R9gGptihDfIDu9dNYb
- HJvCMcVklYC9LtlK36zKlfetDEM/mF5y2GF8AGbWq1D7lUzoNiZJRbGbSlQDH9p5
- ACR3p5CiE0mnOoBA0RkzabymijwuKJmhCobq8TlPRt9je7WUgCesGxbKkEguZVG+
- l1xHMxvwWGFnyNSwJOpnHQtIhs6OMDxTKMQ74pAabh6fLRKqrS/w9WScvW5DyFCy
- 4gxPK3Ki3pdCGhXaZWGPw==
-X-ME-Sender: <xms:ZVeQY6JcmBl9r8UaSgPQlsL6kBpyH4upmsXGoJ4JZ0S4Apf8Uzw2tQ>
- <xme:ZVeQYyIZZ_J4e1TTTEmsSwTW5tyJbARUJ4hEG-TJP_Lki94M9bKzSpCOlPByJH2t7
- pMAV4LFMsEEUlVV95U>
-X-ME-Received: <xmr:ZVeQY6uXMnU1qz7wIIZC_5ZP-dESYU4i7Aar3YknT1ZO2v4AkA5mOobw-mndir-YpJ-2wA>
-X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvhedrudejgdduvdelucetufdoteggodetrfdotf
- fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen
- uceurghilhhouhhtmecufedttdenucenucfjughrpefkuffhvfevffgjfhgtgfgfggesth
- hqredttderjeenucfhrhhomhepnfhukhgvucflohhnvghsuceolhhukhgvsehljhhonhgv
- shdruggvvheqnecuggftrfgrthhtvghrnhepteegteefhefhteegleejudfffffghfekle
- eijeeugfffteeiudefvdetteeuuedvnecuffhomhgrihhnpehkvghrnhgvlhdrohhrghen
- ucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehluhhkvg
- eslhhjohhnvghsrdguvghv
-X-ME-Proxy: <xmx:ZVeQY_ahVbtfiYjhg_k2eYSq-uPXq1xkiFLHac3vmlI3yXJqdoKeog>
- <xmx:ZVeQYxa-BJIz-lhlN77iSktQ8_NETM1TjQY8KXMwVRQe91NiGV1Q5w>
- <xmx:ZVeQY7BP-z-UuGNNFk8YZcB2ihklL1TIm-yrdTrk8nj3ewRVuCLcJA>
- <xmx:ZleQY-QBDw9ZgrfCGBIIbxE3z6H9QizXgV3ZnQTGdJ6RWbka1UWQVQ>
-Feedback-ID: i5ec1447f:Fastmail
-Received: by mail.messagingengine.com (Postfix) with ESMTPA; Wed,
- 7 Dec 2022 04:05:35 -0500 (EST)
-Message-ID: <8b8c7ae512291532ea227b8a1c3f87c460e11e2f.camel@ljones.dev>
-Subject: Re: [PATCH V8 0/4] PCI: vmd: Enable PCIe ASPM and LTR on select
- hardware
-From: Luke Jones <luke@ljones.dev>
-To: "David E. Box" <david.e.box@linux.intel.com>,
- nirmal.patel@linux.intel.com, jonathan.derrick@linux.dev,
- lorenzo.pieralisi@arm.com, hch@infradead.org, kw@linux.com,
- robh@kernel.org, bhelgaas@google.com, michael.a.bottini@intel.com,
- rafael@kernel.org, me@adhityamohan.in
-Cc: linux-pci@vger.kernel.org, linux-kernel@vger.kernel.org
-Date: Wed, 07 Dec 2022 22:05:28 +1300
-In-Reply-To: <20221103021822.308586-1-david.e.box@linux.intel.com>
-References: <20221103021822.308586-1-david.e.box@linux.intel.com>
-Content-Type: text/plain; charset="UTF-8"
-Content-Transfer-Encoding: quoted-printable
-User-Agent: Evolution 3.46.2 (by Flathub.org)
-MIME-Version: 1.0
-Precedence: bulk
-List-ID: <linux-pci.vger.kernel.org>
-X-Mailing-List: linux-pci@vger.kernel.org
-
-On Wed, 2022-11-02 at 19:18 -0700, David E. Box wrote:
-> This series adds a work around for enabling PCIe ASPM and for setting
-> PCIe
-> LTR values on VMD reserved root ports on select platforms. While
-> configuration of these capabilities is usually done by BIOS, on these
-> platforms these capabilities will not be configured because the ports
-> are
-> not visible to BIOS. This was part of an initial design that expected
-> the
-> driver to completely handle the ports, including power management.
-> However
-> on Linux those ports are still managed by the PCIe core, which has
-> the
-> expectation that they adhere to device standards including BIOS
-> configuration, leading to this problem.
->=20
-> The target platforms are Tiger Lake, Alder Lake, and Raptor Lake
-> though the
-> latter has already implemented support for configuring the LTR
-> values.
-> Meteor Lake is expected add BIOS ASPM support, eliminating the future
-> need
-> for this work around.
->=20
-> Note, the driver programs the LTRs because BIOS would also normally
-> do this
-> for devices that do not set them by default. Without this, SoC power
-> management would be blocked on those platform. This SoC specific
-> value is
-> the maximum latency required to allow the SoC to enter the deepest
-> power
-> state.
->=20
-> This patch addresses the following open bugzillas on VMD enabled
-> laptops
-> that cannot enter low power states.
->=20
-> Link: https://bugzilla.kernel.org/show_bug.cgi?id=3D212355
-> Link: https://bugzilla.kernel.org/show_bug.cgi?id=3D215063
-> Link: https://bugzilla.kernel.org/show_bug.cgi?id=3D213717
->=20
-> David E. Box (3):
-> =C2=A0 PCI: vmd: Use PCI_VDEVICE in device list
-> =C2=A0 PCI: vmd: Create feature grouping for client products
-> =C2=A0 PCI: vmd: Add quirk to configure PCIe ASPM and LTR
->=20
-> Michael Bottini (1):
-> =C2=A0 PCI/ASPM: Add pci_enable_link_state()
->=20
-> =C2=A0drivers/pci/controller/vmd.c | 96 ++++++++++++++++++++++++++-------=
--
-> --
-> =C2=A0drivers/pci/pcie/aspm.c=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 | 54 ++++++++=
-++++++++++++
-> =C2=A0include/linux/pci.h=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
-=C2=A0 |=C2=A0 7 +++
-> =C2=A03 files changed, 131 insertions(+), 26 deletions(-)
->=20
->=20
-> base-commit: 247f34f7b80357943234f93f247a1ae6b6c3a740
-
-I'd like to confirm that this patch series solves the VMD power issues
-present on the ASUS ROG M16 (GU603) laptop range (PCI dev ID =3D 467f).
-
-The difference is quite drastic.
-
-
diff --git a/0028-patch01_gu604_alc285_fixes.patch b/0028-patch01_gu604_alc285_fixes.patch
index f0443ffc2f02..e511e03b2a80 100644
--- a/0028-patch01_gu604_alc285_fixes.patch
+++ b/0028-patch01_gu604_alc285_fixes.patch
@@ -1,6 +1,6 @@
---- a/sound/pci/hda/patch_realtek.c 2023-04-20 20:40:17.786527496 +0300
-+++ b/sound/pci/hda/patch_realtek.c 2023-04-20 20:25:02.524458831 +0300
-@@ -7061,6 +7061,8 @@
+--- a/sound/pci/hda/patch_realtek.c 2023-05-07 14:52:12.296284206 +0300
++++ b/sound/pci/hda/patch_realtek.c 2023-05-07 14:53:10.013967423 +0300
+@@ -7063,6 +7063,8 @@
ALC225_FIXUP_DELL1_MIC_NO_PRESENCE,
ALC295_FIXUP_DISABLE_DAC3,
ALC285_FIXUP_SPEAKER2_TO_DAC1,
@@ -9,7 +9,7 @@
ALC280_FIXUP_HP_HEADSET_MIC,
ALC221_FIXUP_HP_FRONT_MIC,
ALC292_FIXUP_TPT460,
-@@ -8008,6 +8010,22 @@
+@@ -8033,6 +8035,22 @@
.chained = true,
.chain_id = ALC269_FIXUP_THINKPAD_ACPI
},
@@ -32,11 +32,12 @@
[ALC256_FIXUP_DELL_INSPIRON_7559_SUBWOOFER] = {
.type = HDA_FIXUP_PINS,
.v.pins = (const struct hda_pintbl[]) {
-@@ -9512,6 +9530,7 @@
+@@ -9539,6 +9557,8 @@
SND_PCI_QUIRK(0x1043, 0x8398, "ASUS P1005", ALC269_FIXUP_STEREO_DMIC),
SND_PCI_QUIRK(0x1043, 0x83ce, "ASUS P1005", ALC269_FIXUP_STEREO_DMIC),
SND_PCI_QUIRK(0x1043, 0x8516, "ASUS X101CH", ALC269_FIXUP_ASUS_X101),
+ SND_PCI_QUIRK(0x1043, 0x1473, "ASUS GU604V", ALC285_FIXUP_ASUS_SPEAKER2_TO_DAC1),
++ SND_PCI_QUIRK(0x1043, 0x1483, "ASUS GU603V", ALC285_FIXUP_ASUS_SPEAKER2_TO_DAC1),
SND_PCI_QUIRK(0x104d, 0x9073, "Sony VAIO", ALC275_FIXUP_SONY_VAIO_GPIO2),
SND_PCI_QUIRK(0x104d, 0x907b, "Sony VAIO", ALC275_FIXUP_SONY_HWEQ),
- SND_PCI_QUIRK(0x104d, 0x9084, "Sony VAIO", ALC275_FIXUP_SONY_HWEQ),
+ SND_PCI_QUIRK(0x104d, 0x9084, "Sony VAIO", ALC275_FIXUP_SONY_HWEQ), \ No newline at end of file
diff --git a/0029-patch02_gu604v_wmi_keys.patch b/0029-patch02_gu604v_wmi_keys.patch
new file mode 100644
index 000000000000..1975c473406a
--- /dev/null
+++ b/0029-patch02_gu604v_wmi_keys.patch
@@ -0,0 +1,18 @@
+--- a/drivers/platform/x86/asus-nb-wmi.c 2023-04-26 21:54:26.327382038 +0300
++++ b/drivers/platform/x86/asus-nb-wmi.c 2023-04-26 21:51:54.438703534 +0300
+@@ -585,6 +585,7 @@
+ { KE_KEY, 0x71, { KEY_F13 } }, /* General-purpose button */
+ { KE_IGNORE, 0x79, }, /* Charger type dectection notification */
+ { KE_KEY, 0x7a, { KEY_ALS_TOGGLE } }, /* Ambient Light Sensor Toggle */
++ { KE_IGNORE, 0x7B, }, /* Charger connect/disconnect notification */
+ { KE_KEY, 0x7c, { KEY_MICMUTE } },
+ { KE_KEY, 0x7D, { KEY_BLUETOOTH } }, /* Bluetooth Enable */
+ { KE_KEY, 0x7E, { KEY_BLUETOOTH } }, /* Bluetooth Disable */
+@@ -614,6 +615,7 @@
+ { KE_KEY, 0xAE, { KEY_FN_F5 } }, /* Fn+F5 fan mode on 2020+ */
+ { KE_KEY, 0xB3, { KEY_PROG4 } }, /* AURA */
+ { KE_KEY, 0xB5, { KEY_CALC } },
++ { KE_IGNORE, 0xC0, }, /* Not sure, happens when usb-c display connects/disconnects */
+ { KE_KEY, 0xC4, { KEY_KBDILLUMUP } },
+ { KE_KEY, 0xC5, { KEY_KBDILLUMDOWN } },
+ { KE_IGNORE, 0xC6, }, /* Ambient Light Sensor notification */
diff --git a/0030-HID-asus-Add-support-for-ASUS-ROG-Z13-ACRNM-keyboard.patch b/0030-HID-asus-Add-support-for-ASUS-ROG-Z13-ACRNM-keyboard.patch
deleted file mode 100644
index fd08fdf49f79..000000000000
--- a/0030-HID-asus-Add-support-for-ASUS-ROG-Z13-ACRNM-keyboard.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From 2f6412a2916ae214f4da8e1a3c7e93046ff12a7c Mon Sep 17 00:00:00 2001
-From: "Luke D. Jones" <luke@ljones.dev>
-Date: Mon, 24 Apr 2023 11:16:24 +1200
-Subject: [PATCH 2/2] HID: asus: Add support for ASUS ROG Z13 ACRNM keyboard
-
-Add support for a second variant of the ROG Z13 keyboard, this one
-is a custom one-off part for the ACRNM variant of the Z13.
-
-Signed-off-by: Luke D. Jones <luke@ljones.dev>
----
- drivers/hid/hid-asus.c | 3 +++
- drivers/hid/hid-ids.h | 1 +
- 2 files changed, 4 insertions(+)
-
-diff --git a/drivers/hid/hid-asus.c b/drivers/hid/hid-asus.c
-index ac93f987d822..13e9bbc925e7 100644
---- a/drivers/hid/hid-asus.c
-+++ b/drivers/hid/hid-asus.c
-@@ -1270,6 +1270,9 @@ static const struct hid_device_id asus_devices[] = {
- { HID_USB_DEVICE(USB_VENDOR_ID_ASUSTEK,
- USB_DEVICE_ID_ASUSTEK_ROG_NKEY_KEYBOARD3),
- QUIRK_USE_KBD_BACKLIGHT | QUIRK_ROG_NKEY_KEYBOARD },
-+ { HID_USB_DEVICE(USB_VENDOR_ID_ASUSTEK,
-+ USB_DEVICE_ID_ASUSTEK_ROG_NKEY_KEYBOARD4),
-+ QUIRK_USE_KBD_BACKLIGHT | QUIRK_ROG_NKEY_KEYBOARD },
- { HID_USB_DEVICE(USB_VENDOR_ID_ASUSTEK,
- USB_DEVICE_ID_ASUSTEK_ROG_CLAYMORE_II_KEYBOARD),
- QUIRK_ROG_CLAYMORE_II_KEYBOARD },
-diff --git a/drivers/hid/hid-ids.h b/drivers/hid/hid-ids.h
-index a2d78d0cf425..d1234bc2ec60 100644
---- a/drivers/hid/hid-ids.h
-+++ b/drivers/hid/hid-ids.h
-@@ -208,6 +208,7 @@
- #define USB_DEVICE_ID_ASUSTEK_ROG_NKEY_KEYBOARD 0x1866
- #define USB_DEVICE_ID_ASUSTEK_ROG_NKEY_KEYBOARD2 0x19b6
- #define USB_DEVICE_ID_ASUSTEK_ROG_NKEY_KEYBOARD3 0x18c6
-+#define USB_DEVICE_ID_ASUSTEK_ROG_NKEY_KEYBOARD4 0x1a30
- #define USB_DEVICE_ID_ASUSTEK_ROG_CLAYMORE_II_KEYBOARD 0x196b
- #define USB_DEVICE_ID_ASUSTEK_FX503VD_KEYBOARD 0x1869
-
---
-2.40.0
-
diff --git a/0031-FX516PE-rgb-mode.patch b/0031-FX516PE-rgb-mode.patch
new file mode 100644
index 000000000000..c025fcbea3f6
--- /dev/null
+++ b/0031-FX516PE-rgb-mode.patch
@@ -0,0 +1,68 @@
+diff --git a/drivers/platform/x86/asus-wmi.c b/drivers/platform/x86/asus-wmi.c
+index 1038dfdcdd32..7180d425a28f 100644
+--- a/drivers/platform/x86/asus-wmi.c
++++ b/drivers/platform/x86/asus-wmi.c
+@@ -241,7 +241,7 @@ struct asus_wmi {
+ bool dgpu_disable_available;
+ bool gpu_mux_mode_available;
+
+- bool kbd_rgb_mode_available;
++ u32 kbd_rgb_mode_available;
+ bool kbd_rgb_state_available;
+
+ bool throttle_thermal_policy_available;
+@@ -738,6 +738,7 @@ static ssize_t kbd_rgb_mode_store(struct device *dev,
+ struct device_attribute *attr,
+ const char *buf, size_t count)
+ {
++ struct asus_wmi *asus = dev_get_drvdata(dev);
+ u32 cmd, mode, r, g, b, speed;
+ int err;
+
+@@ -764,8 +765,14 @@ static ssize_t kbd_rgb_mode_store(struct device *dev,
+ speed = 0xeb;
+ }
+
+- err = asus_wmi_evaluate_method3(ASUS_WMI_METHODID_DEVS, ASUS_WMI_DEVID_TUF_RGB_MODE,
++ if (asus->kbd_rgb_mode_available == 1) {
++ err = asus_wmi_evaluate_method3(ASUS_WMI_METHODID_DEVS, ASUS_WMI_DEVID_TUF_RGB_MODE,
++ cmd | (mode << 8) | (r << 16) | (g << 24), b | (speed << 8), NULL);
++ } else if (asus->kbd_rgb_mode_available == 2) {
++ err = asus_wmi_evaluate_method3(ASUS_WMI_METHODID_DEVS, ASUS_WMI_DEVID_TUF_RGB_MODE_2,
+ cmd | (mode << 8) | (r << 16) | (g << 24), b | (speed << 8), NULL);
++ }
++
+ if (err)
+ return err;
+
+@@ -3760,9 +3767,15 @@ static int asus_wmi_add(struct platform_device *pdev)
+ asus->egpu_enable_available = asus_wmi_dev_is_present(asus, ASUS_WMI_DEVID_EGPU);
+ asus->dgpu_disable_available = asus_wmi_dev_is_present(asus, ASUS_WMI_DEVID_DGPU);
+ asus->gpu_mux_mode_available = asus_wmi_dev_is_present(asus, ASUS_WMI_DEVID_GPU_MUX);
+- asus->kbd_rgb_mode_available = asus_wmi_dev_is_present(asus, ASUS_WMI_DEVID_TUF_RGB_MODE);
+- asus->kbd_rgb_state_available = asus_wmi_dev_is_present(asus, ASUS_WMI_DEVID_TUF_RGB_STATE);
+ asus->panel_overdrive_available = asus_wmi_dev_is_present(asus, ASUS_WMI_DEVID_PANEL_OD);
++ if (asus_wmi_dev_is_present(asus, ASUS_WMI_DEVID_TUF_RGB_MODE)) {
++ asus->kbd_rgb_mode_available = 1;
++ } else if (asus_wmi_dev_is_present(asus, ASUS_WMI_DEVID_TUF_RGB_MODE_2)) {
++ asus->kbd_rgb_mode_available = 2;
++ } else {
++ asus->kbd_rgb_mode_available = 0;
++ }
++ asus->kbd_rgb_state_available = asus_wmi_dev_is_present(asus, ASUS_WMI_DEVID_TUF_RGB_STATE);
+
+ err = fan_boost_mode_check_present(asus);
+ if (err)
+diff --git a/include/linux/platform_data/x86/asus-wmi.h b/include/linux/platform_data/x86/asus-wmi.h
+index 28234dc9fa6a..b299fd3ff914 100644
+--- a/include/linux/platform_data/x86/asus-wmi.h
++++ b/include/linux/platform_data/x86/asus-wmi.h
+@@ -106,6 +106,8 @@
+
+ /* TUF laptop RGB modes/colours */
+ #define ASUS_WMI_DEVID_TUF_RGB_MODE 0x00100056
++/* TUF laptop RGB modes/colours, new method on FX516P series */
++#define ASUS_WMI_DEVID_TUF_RGB_MODE_2 0x0010005A
+
+ /* TUF laptop RGB power/state */
+ #define ASUS_WMI_DEVID_TUF_RGB_STATE 0x00100057
diff --git a/0031-HID-asus-Map-0xc7-key-event-to-KEY_KBDILLUMTOGGLE.patch b/0031-HID-asus-Map-0xc7-key-event-to-KEY_KBDILLUMTOGGLE.patch
deleted file mode 100644
index c4ac3bf1a74d..000000000000
--- a/0031-HID-asus-Map-0xc7-key-event-to-KEY_KBDILLUMTOGGLE.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From ef51bbab598b014ee66b0794d06a6c105905b81c Mon Sep 17 00:00:00 2001
-From: "Luke D. Jones" <luke@ljones.dev>
-Date: Mon, 24 Apr 2023 16:26:33 +1200
-Subject: [PATCH 3/3] HID: asus: Map 0xc7 key event to KEY_KBDILLUMTOGGLE
-
-Some fo the ROG Z13 series have only a single keyboard brightness
-key whcih is expected to toggle the brightness up and cycle back to zero
-
-Signed-off-by: Luke D. Jones <luke@ljones.dev>
----
- drivers/hid/hid-asus.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/drivers/hid/hid-asus.c b/drivers/hid/hid-asus.c
-index 13e9bbc925e7..279b8fe4f227 100644
---- a/drivers/hid/hid-asus.c
-+++ b/drivers/hid/hid-asus.c
-@@ -883,6 +883,7 @@ static int asus_input_mapping(struct hid_device *hdev,
- case 0xb5: asus_map_key_clear(KEY_CALC); break;
- case 0xc4: asus_map_key_clear(KEY_KBDILLUMUP); break;
- case 0xc5: asus_map_key_clear(KEY_KBDILLUMDOWN); break;
-+ case 0xc7: asus_map_key_clear(KEY_KBDILLUMTOGGLE); break;
-
- /* ASUS touchpad toggle */
- case 0x6b: asus_map_key_clear(KEY_F21); break;
---
-2.40.0
-
diff --git a/PKGBUILD b/PKGBUILD
index cbf1927c01bd..445a5198c5b9 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -3,18 +3,25 @@
# Contributor: Jan Alexander Steffens (heftig) <jan.steffens@gmail.com>
pkgbase=linux-g14
-pkgver=6.2.12.arch1
-pkgrel=2
+pkgver=6.3.1.arch1
+pkgrel=1
pkgdesc='Linux'
_srctag=v${pkgver%.*}-${pkgver##*.}
url="https://gitlab.com/dragonn/linux-g14.git"
arch=(x86_64)
license=(GPL2)
makedepends=(
- bc kmod libelf pahole cpio tar xz
- xmlto
+ bc
+ cpio
+ gettext
git
- "gcc>=11.0"
+ libelf
+ pahole
+ perl
+ tar
+ xz
+ python
+# modprobed-db
)
options=('!strip')
_srcname=archlinux-linux
@@ -22,6 +29,7 @@ _srcname=archlinux-linux
source=(
"$_srcname::git+https://github.com/archlinux/linux?signed#tag=$_srctag"
config # the main kernel config file
+# modprobed.db
"choose-gcc-optimization.sh"
"sys-kernel_arch-sources-g14_files-0004-5.17+--more-uarches-for-kernel.patch"::"https://raw.githubusercontent.com/graysky2/kernel_compiler_patch/master/more-uarches-for-kernel-5.17+.patch"
@@ -30,21 +38,25 @@ source=(
0019-HID-amd_sfh-Add-keyguard-for-ASUS-ROG-X13-tablet.patch
0001-platform-x86-asus-wmi-Add-safety-checks-to-dgpu-egpu.patch
- 0001-Revert-perf-x86-intel-Fix-unchecked-MSR-access-error.patch
- 0024-V8-0-4-PCI-vmd-Enable-PCIe-ASPM-and-LTR-on-select-hardware.patch
0027-mt76_-mt7921_-Disable-powersave-features-by-default.patch
0001-Revert-PCI-Add-a-REBAR-size-quirk-for-Sapphire-RX-56.patch
- 0001-linux6.0.y-bore1.7.5.patch
-
- 0002-mm-add-vma_has_recency.patch
+ 0001-constgran-v2.patch
+ 0001-linux6.1.y-bore2.2.1.patch
0028-patch01_gu604_alc285_fixes.patch
+ 0029-patch02_gu604v_wmi_keys.patch
+
+ 0031-FX516PE-rgb-mode.patch
- 0029-HID-asus-Add-support-for-ASUS-ROG-Z13-keyboard.patch
- 0030-HID-asus-Add-support-for-ASUS-ROG-Z13-ACRNM-keyboard.patch
- 0031-HID-asus-Map-0xc7-key-event-to-KEY_KBDILLUMTOGGLE.patch
+ 0001-HID-asus-Add-support-for-ASUS-ROG-Z13-keyboard.patch
+ 0002-HID-asus-add-keycodes-for-0x6a-0x4b-and-0xc7.patch
+ 0003-HID-asus-reformat-the-hotkey-mapping-block.patch
+ 0004-ALSA-hda-realtek-Add-quirk-for-2nd-ASUS-GU603.patch
+ 0005-ACPI-resource-Skip-IRQ-override-on-ASUS-TUF-Gaming-A.patch
+ 0006-ACPI-resource-Skip-IRQ-override-on-ASUS-TUF-Gaming-A.patch
+ 0007-platform-x86-asus-wmi-add-support-for-ASUS-screenpad.patch
"sys-kernel_arch-sources-g14_files-0047-asus-nb-wmi-Add-tablet_mode_sw-lid-flip.patch"
"sys-kernel_arch-sources-g14_files-0048-asus-nb-wmi-fix-tablet_mode_sw_int.patch"
@@ -52,64 +64,77 @@ source=(
)
validpgpkeys=(
- 'ABAF11C65A2970B130ABE3C479BE3E4300411886' # Linus Torvalds
- '647F28654894E3BD457199BE38DBBDC86092693E' # Greg Kroah-Hartman
- 'A2FF3A36AAA56654109064AB19802F8B0D70FC30' # Jan Alexander Steffens (heftig)
- 'C7E7849466FE2358343588377258734B41C31549' # David Runge
+ ABAF11C65A2970B130ABE3C479BE3E4300411886 # Linus Torvalds
+ 647F28654894E3BD457199BE38DBBDC86092693E # Greg Kroah-Hartman
+ A2FF3A36AAA56654109064AB19802F8B0D70FC30 # Jan Alexander Steffens (heftig)
+ C7E7849466FE2358343588377258734B41C31549 # David Runge <dvzrv@archlinux.org>
)
sha256sums=('SKIP'
- '70cf3252ff877cb91ca7eba13439ae181e693513b09ff43e83c48d2b0b46d0f8'
- '278118011d7a2eeca9971ac97b31bf0c55ab55e99c662ab9ae4717b55819c9a2'
- 'dea86a521603414a8c7bf9cf1f41090d5d6f8035ce31407449e25964befb1e50'
+ '6b337a9d3cfdc00005589a80b8d36fa500f6a92ed21565a3aceec48d7202a7da'
+ '38dd8add41aa2dc75a3da9d51358e28c2bd4510bd9abc54b6494d61e4a317fc2'
+ '81ad663925a0aa5b5332a69bae7227393664bb81ee2e57a283e7f16e9ff75efe'
'0a7ea482fe20c403788d290826cec42fe395e5a6eab07b88845f8b9a9829998d'
'd45e2ae1d21b1dc8e0de94a4fa58e9a53d72306843f87d3cc49f5f641399d8e3'
'172dbc88d0a3cda78387f3c907fa4953c71cb1cb162f0b34f78b8b78924bc3d4'
- '6739a42bf9d233cb58ae9a69c3f78959175de695e2d4a7e66bb9984fcf5c0f7e'
- 'f036ac8a49153f66d7d8638508cfe0b4a158d12faf30d2c671b04a6b7b606b3b'
'a691e7b22633fe0c458d140167d6d381b66149e05de3cb926b30a19fd43e78ce'
'7b16fce20b03babc9e149030f43e283534835bbd8835ba0a794fd0205fea1708'
- 'bca0caa5efad45c0acde1e78d43f8ce1af6ebf3cbb0240b143be3e6486509970'
- 'b6288935f2768a7023d11e9a200f47b087669ffd4d418f791ee71d5a51d0530e'
- '5b19e3d557fbd52ef7e966b6d491c17a77769f03534b8cf9877fe3696e5d291f'
- '1f63361ebbebecaaa3122ec174b39dfc346eda44592299a058b44bb4837b5d92'
- '0febf2e8fee2e5c2222441464812aca66d21d714cd28aa7c218218b509d242fb'
- '00feb23b3ed0983d13a8929ade35b3dcb23987d21f0e342db4dcb8292656a72e'
+ 'efbf65b17fb48fd22f199b6fddd05f159f8ea31faad5543f2c07fddf45eb9f12'
+ 'd4f8e606eaad9a1fe302f04b9023a3980eb2305108c0d8c90654d23e53ff8bef'
+ '8614c92567822e38ac7a0893e93776f39bbb6d373797f4b713cef5b3c060c8f1'
+ 'cdbcec3031878cdb7ffab32034e4ee31bbd0ec214088f95dc446a13320985631'
+ 'ec3cced4d3d5de4827e07430a77fcba755d84b9cfded09dc0b6be46e28427f22'
+ '14f695b481e1afc4ac8c79ef48f0613267c86d1862f3293d889f6f68e1b84188'
+ '93b7ad2dd6b172d487d5e37847027f5854cae0c7291bc643d890045692903bab'
+ '04167065497211326a3a6f83519111e2f81273c848143d300e7e3e91062c061b'
+ 'f0bdd2287d6b1b04d440de2ccf7c523202a9846852fc6b92241b494e5220a86e'
+ '185ccdbfa7d4a0a3c55412082d87c5965221a73442f076d396f1e8cc0aabece1'
+ 'e20f3d11077c9abe8cc41c61378abd6b3fbd5059497a01baa881a810f1c91eb0'
+ '22ae0fb68016064ce32d5a32235d463b6e65eff2af83fe70be976cf39b1a9623'
'15e912a66e4bbce1cf0450f1dc6610653df29df8dd6d5426f9c1b039490436c8'
'444f2d86de8c2177655b01596f939f99c2e7abfa8efad8a509e0a334f42dfa85'
'982a31e47d3d586789e1b3cdda25f75e3b71d810e7494202089b8f2cef7c0ef9')
# notable microarch levels:
#
-# 14, Zen2
-# 15, Zen3
-# 38, Skylake (Comet Lake laptops)
-# 93, x86-64-v3 (package default)
-# 98, Intel Native
-# 99, AMD Native
+# 14, Zen2 = CONFIG_MZEN2
+# 15, Zen3 = CONFIG_MZEN3
+# 38, Skylake (Comet Lake laptops) = CONFIG_MSKYLAKE
+# 93, x86-64-v3 (package default) = CONFIG_GENERIC_CPU3
+# 98, Intel Native = CONFIG_MNATIVE_INTEL
+# 99, AMD Native = CONFIG_MNATIVE_AMD
if [ -z ${_microarchitecture+x} ]; then
_microarchitecture=93
fi
+if [ -z ${Microarchitecture+x} ]; then
+ Microarchitecture="CONFIG_GENERIC_CPU3"
+fi
export KBUILD_BUILD_HOST=archlinux
export KBUILD_BUILD_USER=$pkgbase
export KBUILD_BUILD_TIMESTAMP="$(date -Ru${SOURCE_DATE_EPOCH:+d @$SOURCE_DATE_EPOCH})"
+_make() {
+ test -s version
+ make KERNELRELEASE="$(<version)" "$@"
+}
+
prepare() {
cd $_srcname
echo "Setting version..."
- scripts/setlocalversion --save-scmversion
- #echo '' >.scmversion # HACK: maybe needed
- echo "-$pkgrel" > localversion.99-pkgrel
+ echo "-$pkgrel" > localversion.10-pkgrel
echo "${pkgbase#linux}" > localversion.20-pkgname
+ make defconfig
+ make -s kernelrelease > version
+ make mrproper
local src
for src in "${source[@]}"; do
src="${src%%::*}"
src="${src##*/}"
[[ $src = *.patch ]] || continue
- msg2 "Applying patch $src..."
+ echo "Applying patch $src..."
patch -Np1 < "../$src"
done
@@ -118,15 +143,41 @@ prepare() {
echo "Setting config..."
cp ../config .config
-
- make olddefconfig
-
- # let user choose microarchitecture optimization in GCC
- # this needs to run *after* `make olddefconfig` so that our newly added configuration macros exist
+ _make olddefconfig
+ diff -u ../config .config || :
+
+ ## let user choose microarchitecture optimization in GCC
+ ## but beause the script below does NOT work in a clean chroot, set the default here, and only
+ ## change through the script if it works...
+ sed 's|^CONFIG_GENERIC_CPU=y|# CONFIG_GENERIC_CPU is not set|g' -i .config
+ sed 's|^CONFIG_GENERIC_CPU2=y|# CONFIG_GENERIC_CPU2 is not set|g' -i .config
+ sed "s|^# $Microarchitecture is not set|$Microarchitecture=y|g" -i .config
+
+ ## this needs to run *after* `make olddefconfig` so that our newly added configuration macros exist
sh ${srcdir}/choose-gcc-optimization.sh $_microarchitecture
-
- make -s kernelrelease > version
+
echo "Prepared $pkgbase version $(<version)"
+
+ ## Here comes a section where you can uncomment additional modules that you do not need on your machine
+ ## in order to speed up building the kernel
+
+ ## Make use of modprobed-db, if installed
+ ## To do this, you need to enable copy the database into this directory and enable the relevant lines
+ ## at the top of this file!
+ # make LSMOD=../modprobed.db localmodconfig
+
+ ## Enable this, if your systems is ALL AMD
+ # scripts/config --disable CONFIG_DRM_I915 \
+ # --disable CONFIG_DRM_GMA500 \
+ # --disable CONFIG_PINCTRL_INTEL \
+ # --disable CONFIG_AGP_INTEL \
+ # --disable CONFIG_INTEL_GTT \
+ # --disable CONFIG_SND_INTEL_NHLT \
+ # --disable CONFIG_SND_SOC_SOF_INTEL_TOPLEVEL \
+ # --disable CONFIG_SND_SOC_INTEL_SST_TOPLEVEL \
+ # --disable CONFIG_SND_SOC_INTEL_MACH \
+ # --disable CONFIG_INTEL_WMI \
+ # --disable CONFIG_INTEL_IOMMU
scripts/config --enable CONFIG_PINCTRL_AMD
scripts/config --enable CONFIG_X86_AMD_PSTATE
@@ -147,6 +198,9 @@ prepare() {
# XXX: on drivers almost no-one is going to use; if you need any of theese turn them on in myconfig
scripts/config --disable CONFIG_INFINIBAND \
--disable CONFIG_DRM_NOUVEAU \
+ --disable CONFIG_DRM_RADEON \
+ --disable CONFIG_IIO \
+ --disable CONFIG_CAN_DEV \
--disable CONFIG_PCMCIA_WL3501 \
--disable CONFIG_PCMCIA_RAYCS \
--disable CONFIG_IWL3945 \
@@ -183,31 +237,45 @@ prepare() {
build() {
cd $_srcname
- make all
+ _make all
}
_package() {
pkgdesc="The $pkgdesc kernel and modules"
- depends=(coreutils kmod initramfs)
- optdepends=('crda: to set the correct wireless channels of your country'
- 'linux-firmware: firmware images needed for some devices')
- provides=(VIRTUALBOX-GUEST-MODULES WIREGUARD-MODULE linux-rog)
- replaces=(virtualbox-guest-modules-arch wireguard-arch)
+ depends=(
+ coreutils
+ initramfs
+ kmod
+ )
+ optdepends=(
+ 'wireless-regdb: to set the correct wireless channels of your country'
+ 'linux-firmware: firmware images needed for some devices'
+ )
+ provides=(
+ KSMBD-MODULE
+ VIRTUALBOX-GUEST-MODULES
+ WIREGUARD-MODULE
+ linux-rog
+ )
+ replaces=(
+ virtualbox-guest-modules-arch
+ wireguard-arch
+ )
cd $_srcname
- local kernver="$(<version)"
- local modulesdir="$pkgdir/usr/lib/modules/$kernver"
+ local modulesdir="$pkgdir/usr/lib/modules/$(<version)"
echo "Installing boot image..."
# systemd expects to find the kernel here to allow hibernation
# https://github.com/systemd/systemd/commit/edda44605f06a41fb86b7ab8128dcf99161d2344
- install -Dm644 "$(make -s image_name)" "$modulesdir/vmlinuz"
+ install -Dm644 "$(_make -s image_name)" "$modulesdir/vmlinuz"
# Used by mkinitcpio to name the kernel
echo "$pkgbase" | install -Dm644 /dev/stdin "$modulesdir/pkgbase"
echo "Installing modules..."
- make INSTALL_MOD_PATH="$pkgdir/usr" INSTALL_MOD_STRIP=1 modules_install
+ _make INSTALL_MOD_PATH="$pkgdir/usr" INSTALL_MOD_STRIP=1 \
+ DEPMOD=/doesnt/exist modules_install # Suppress depmod
# remove build and source links
rm "$modulesdir"/{source,build}
@@ -215,7 +283,7 @@ _package() {
_package-headers() {
pkgdesc="Headers and scripts for building modules for the $pkgdesc kernel"
- provides=(linux-rog linux-rog-headers)
+ provides=(linux-rog-headers)
depends=(pahole)
cd $_srcname
@@ -228,7 +296,7 @@ _package-headers() {
install -Dt "$builddir/arch/x86" -m644 arch/x86/Makefile
cp -t "$builddir" -a scripts
- # add objtool for external module building and enabled VALIDATION_STACK option
+ # required when STACK_VALIDATION is enabled
install -Dt "$builddir/tools/objtool" tools/objtool/objtool
# required when DEBUG_INFO_BTF_MODULES is enabled
@@ -245,14 +313,17 @@ _package-headers() {
install -Dt "$builddir/drivers/md" -m644 drivers/md/*.h
install -Dt "$builddir/net/mac80211" -m644 net/mac80211/*.h
- # http://bugs.archlinux.org/task/13146
+ # https://bugs.archlinux.org/task/13146
install -Dt "$builddir/drivers/media/i2c" -m644 drivers/media/i2c/msp3400-driver.h
- # http://bugs.archlinux.org/task/20402
+ # https://bugs.archlinux.org/task/20402
install -Dt "$builddir/drivers/media/usb/dvb-usb" -m644 drivers/media/usb/dvb-usb/*.h
install -Dt "$builddir/drivers/media/dvb-frontends" -m644 drivers/media/dvb-frontends/*.h
install -Dt "$builddir/drivers/media/tuners" -m644 drivers/media/tuners/*.h
+ # https://bugs.archlinux.org/task/71392
+ install -Dt "$builddir/drivers/iio/common/hid-sensors" -m644 drivers/iio/common/hid-sensors/*.h
+
echo "Installing KConfig files..."
find . -name 'Kconfig*' -exec install -Dm644 {} "$builddir/{}" \;
@@ -276,7 +347,7 @@ _package-headers() {
echo "Stripping build tools..."
local file
while read -rd '' file; do
- case "$(file -bi "$file")" in
+ case "$(file -Sib "$file")" in
application/x-sharedlib\;*) # Libraries (.so)
strip -v $STRIP_SHARED "$file" ;;
application/x-archive\;*) # Libraries (.a)
diff --git a/choose-gcc-optimization.sh b/choose-gcc-optimization.sh
index 140c4ac144ef..b7cc02abbcca 100755
--- a/choose-gcc-optimization.sh
+++ b/choose-gcc-optimization.sh
@@ -133,8 +133,8 @@ warning "According to PKGBUILD variable _microarchitecture, your choice is $answ
msg "Building this package for microarchitecture: $Microarchitecture$default"
sleep 5
-sed -e 's|^CONFIG_GENERIC_CPU=y|# CONFIG_GENERIC_CPU is not set|g' -i .config
-sed -e 's|^CONFIG_GENERIC_CPU2=y|# CONFIG_GENERIC_CPU2 is not set|g' -i .config
-sed -e "s|^# $Microarchitecture is not set|$Microarchitecture=y|g" -i .config
+sed 's|^CONFIG_GENERIC_CPU=y|# CONFIG_GENERIC_CPU is not set|g' -i .config
+sed 's|^CONFIG_GENERIC_CPU2=y|# CONFIG_GENERIC_CPU2 is not set|g' -i .config
+sed "s|^# $Microarchitecture is not set|$Microarchitecture=y|g" -i .config
echo
diff --git a/chroot-build.sh b/chroot-build.sh
new file mode 100755
index 000000000000..db0e4e0c42b4
--- /dev/null
+++ b/chroot-build.sh
@@ -0,0 +1,42 @@
+#!/bin/bash
+
+## builds done in a clean chroot
+## source files taken from pkgdir/src-cache if present
+## output packages placed in pkgdir/release-pkg if present
+
+# NOTE: you can send environment variables to chroot/makepkg by stuffing them on the end of the makechrootpkg command after --
+
+#CHROOT="$HOME/work/arch-kernels/build-chroot"
+HOME="$HOME"
+
+fatal() { echo "$@" >&2; exit 1; }
+# look for a PKGBUILD
+if ! [[ -s PKGBUILD ]]; then
+ fatal "no PKGBUILD in this directory!"
+fi
+# look for valid chroot
+if ! [[ -d "${CHROOT}/root" ]]; then
+ fatal "${CHROOT}/root doesn't exist, womp womp"
+fi
+
+# if SRCDEST is empty then look for pkg src-cache/ directory and use it
+if [[ -z ${SRCDEST+x} ]] && [[ -d "$(pwd)/src-cache" ]]; then
+ export SRCDEST="$(pwd)/src-cache"
+fi
+
+# use supplied output directory or fall back to ./release-pkg/ if present
+if [[ -d "$DEST" ]]; then
+ export PKGDEST="$DEST"
+ export LOGDEST="$DEST"
+elif [[ -d "$(pwd)/release-pkg" ]]; then
+ export PKGDEST="$(pwd)/release-pkg"
+ export LOGDEST="$(pwd)/release-pkg"
+fi
+
+
+#
+# To send environment variable to a PKGBUILD call this script like this:
+# `rbuild.sh -- {any makepkg flags} VAR=VALUE VAR2=VALUE etc..`
+#
+
+makechrootpkg -c -r "${CHROOT}" "$@"
diff --git a/config b/config
index 757980f9b3cb..594bffd77919 100644
--- a/config
+++ b/config
@@ -1,15 +1,15 @@
#
# Automatically generated file; DO NOT EDIT.
-# Linux/x86 6.1.1-arch1 Kernel Configuration
+# Linux/x86 6.3.0-arch1 Kernel Configuration
#
-CONFIG_CC_VERSION_TEXT="gcc (GCC) 12.2.0"
+CONFIG_CC_VERSION_TEXT="gcc (GCC) 12.2.1 20230201"
CONFIG_CC_IS_GCC=y
-CONFIG_GCC_VERSION=120200
+CONFIG_GCC_VERSION=120201
CONFIG_CLANG_VERSION=0
CONFIG_AS_IS_GNU=y
-CONFIG_AS_VERSION=23900
+CONFIG_AS_VERSION=24000
CONFIG_LD_IS_BFD=y
-CONFIG_LD_VERSION=23900
+CONFIG_LD_VERSION=24000
CONFIG_LLD_VERSION=0
CONFIG_CC_CAN_LINK=y
CONFIG_CC_CAN_LINK_STATIC=y
@@ -74,7 +74,6 @@ CONFIG_IRQ_DOMAIN=y
CONFIG_IRQ_SIM=y
CONFIG_IRQ_DOMAIN_HIERARCHY=y
CONFIG_GENERIC_MSI_IRQ=y
-CONFIG_GENERIC_MSI_IRQ_DOMAIN=y
CONFIG_IRQ_MSI_IOMMU=y
CONFIG_GENERIC_IRQ_MATRIX_ALLOCATOR=y
CONFIG_GENERIC_IRQ_RESERVATION_MODE=y
@@ -183,9 +182,9 @@ CONFIG_RCU_NOCB_CPU=y
# CONFIG_RCU_NOCB_CPU_DEFAULT_ALL is not set
# CONFIG_RCU_NOCB_CPU_CB_BOOST is not set
# CONFIG_TASKS_TRACE_RCU_READ_MB is not set
+CONFIG_RCU_LAZY=y
# end of RCU Subsystem
-CONFIG_BUILD_BIN2C=y
CONFIG_IKCONFIG=y
CONFIG_IKCONFIG_PROC=y
CONFIG_IKHEADERS=m
@@ -206,7 +205,7 @@ CONFIG_ARCH_SUPPORTS_NUMA_BALANCING=y
CONFIG_ARCH_WANT_BATCHED_UNMAP_TLB_FLUSH=y
CONFIG_CC_HAS_INT128=y
CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5"
-CONFIG_GCC12_NO_ARRAY_BOUNDS=y
+CONFIG_GCC11_NO_ARRAY_BOUNDS=y
CONFIG_CC_NO_ARRAY_BOUNDS=y
CONFIG_ARCH_SUPPORTS_INT128=y
CONFIG_NUMA_BALANCING=y
@@ -222,6 +221,7 @@ CONFIG_CGROUP_SCHED=y
CONFIG_FAIR_GROUP_SCHED=y
CONFIG_CFS_BANDWIDTH=y
# CONFIG_RT_GROUP_SCHED is not set
+CONFIG_SCHED_MM_CID=y
CONFIG_UCLAMP_TASK_GROUP=y
CONFIG_CGROUP_PIDS=y
CONFIG_CGROUP_RDMA=y
@@ -258,11 +258,13 @@ CONFIG_RD_LZO=y
CONFIG_RD_LZ4=y
CONFIG_RD_ZSTD=y
CONFIG_BOOT_CONFIG=y
+# CONFIG_BOOT_CONFIG_FORCE is not set
# CONFIG_BOOT_CONFIG_EMBED is not set
CONFIG_INITRAMFS_PRESERVE_MTIME=y
CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE=y
# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
CONFIG_LD_ORPHAN_WARN=y
+CONFIG_LD_ORPHAN_WARN_LEVEL="warn"
CONFIG_SYSCTL=y
CONFIG_HAVE_UID16=y
CONFIG_SYSCTL_EXCEPTION_TRACE=y
@@ -291,6 +293,7 @@ CONFIG_IO_URING=y
CONFIG_ADVISE_SYSCALLS=y
CONFIG_MEMBARRIER=y
CONFIG_KALLSYMS=y
+# CONFIG_KALLSYMS_SELFTEST is not set
CONFIG_KALLSYMS_ALL=y
CONFIG_KALLSYMS_ABSOLUTE_PERCPU=y
CONFIG_KALLSYMS_BASE_RELATIVE=y
@@ -332,7 +335,6 @@ CONFIG_ARCH_MAY_HAVE_PC_FDC=y
CONFIG_GENERIC_CALIBRATE_DELAY=y
CONFIG_ARCH_HAS_CPU_RELAX=y
CONFIG_ARCH_HIBERNATION_POSSIBLE=y
-CONFIG_ARCH_NR_GPIO=1024
CONFIG_ARCH_SUSPEND_POSSIBLE=y
CONFIG_AUDIT_ARCH=y
CONFIG_HAVE_INTEL_TXT=y
@@ -486,7 +488,10 @@ CONFIG_X86_INTEL_TSX_MODE_AUTO=y
CONFIG_X86_SGX=y
CONFIG_EFI=y
CONFIG_EFI_STUB=y
+CONFIG_EFI_HANDOVER_PROTOCOL=y
CONFIG_EFI_MIXED=y
+# CONFIG_EFI_FAKE_MEMMAP is not set
+CONFIG_EFI_RUNTIME_MAP=y
# CONFIG_HZ_100 is not set
# CONFIG_HZ_250 is not set
CONFIG_HZ_300=y
@@ -524,11 +529,20 @@ CONFIG_HAVE_LIVEPATCH=y
CONFIG_CC_HAS_SLS=y
CONFIG_CC_HAS_RETURN_THUNK=y
+CONFIG_CC_HAS_ENTRY_PADDING=y
+CONFIG_FUNCTION_PADDING_CFI=11
+CONFIG_FUNCTION_PADDING_BYTES=16
+CONFIG_CALL_PADDING=y
+CONFIG_HAVE_CALL_THUNKS=y
+CONFIG_CALL_THUNKS=y
+CONFIG_PREFIX_SYMBOLS=y
CONFIG_SPECULATION_MITIGATIONS=y
CONFIG_PAGE_TABLE_ISOLATION=y
CONFIG_RETPOLINE=y
CONFIG_RETHUNK=y
CONFIG_CPU_UNRET_ENTRY=y
+CONFIG_CALL_DEPTH_TRACKING=y
+# CONFIG_CALL_THUNKS_DEBUG is not set
CONFIG_CPU_IBPB_ENTRY=y
CONFIG_CPU_IBRS_ENTRY=y
CONFIG_SLS=y
@@ -624,6 +638,7 @@ CONFIG_ACPI_ADXL=y
CONFIG_ACPI_CONFIGFS=m
CONFIG_ACPI_PFRUT=m
CONFIG_ACPI_PCC=y
+CONFIG_ACPI_FFH=y
CONFIG_PMIC_OPREGION=y
CONFIG_BYTCRC_PMIC_OPREGION=y
CONFIG_CHTCRC_PMIC_OPREGION=y
@@ -659,7 +674,8 @@ CONFIG_CPU_FREQ_GOV_SCHEDUTIL=y
#
CONFIG_X86_INTEL_PSTATE=y
CONFIG_X86_PCC_CPUFREQ=m
-CONFIG_X86_AMD_PSTATE=m
+CONFIG_X86_AMD_PSTATE=y
+CONFIG_X86_AMD_PSTATE_UT=m
CONFIG_X86_ACPI_CPUFREQ=m
CONFIG_X86_ACPI_CPUFREQ_CPB=y
CONFIG_X86_POWERNOW_K8=m
@@ -728,18 +744,21 @@ CONFIG_HAVE_KVM_IRQ_BYPASS=y
CONFIG_HAVE_KVM_NO_POLL=y
CONFIG_KVM_XFER_TO_GUEST_WORK=y
CONFIG_HAVE_KVM_PM_NOTIFIER=y
+CONFIG_KVM_GENERIC_HARDWARE_ENABLING=y
CONFIG_VIRTUALIZATION=y
CONFIG_KVM=m
CONFIG_KVM_INTEL=m
CONFIG_X86_SGX_KVM=y
CONFIG_KVM_AMD=m
CONFIG_KVM_AMD_SEV=y
+CONFIG_KVM_SMM=y
CONFIG_KVM_XEN=y
CONFIG_KVM_EXTERNAL_WRITE_TRACKING=y
CONFIG_AS_AVX512=y
CONFIG_AS_SHA1_NI=y
CONFIG_AS_SHA256_NI=y
CONFIG_AS_TPAUSE=y
+CONFIG_AS_GFNI=y
#
# General architecture-dependent options
@@ -797,6 +816,7 @@ CONFIG_MMU_GATHER_TABLE_FREE=y
CONFIG_MMU_GATHER_RCU_TABLE_FREE=y
CONFIG_MMU_GATHER_MERGE_VMAS=y
CONFIG_ARCH_HAVE_NMI_SAFE_CMPXCHG=y
+CONFIG_ARCH_HAS_NMI_SAFE_THIS_CPU_OPS=y
CONFIG_HAVE_ALIGNED_STRUCT_PAGE=y
CONFIG_HAVE_CMPXCHG_LOCAL=y
CONFIG_HAVE_CMPXCHG_DOUBLE=y
@@ -890,6 +910,9 @@ CONFIG_ARCH_HAS_GCOV_PROFILE_ALL=y
CONFIG_HAVE_GCC_PLUGINS=y
CONFIG_GCC_PLUGINS=y
# CONFIG_GCC_PLUGIN_LATENT_ENTROPY is not set
+CONFIG_FUNCTION_ALIGNMENT_4B=y
+CONFIG_FUNCTION_ALIGNMENT_16B=y
+CONFIG_FUNCTION_ALIGNMENT=16
# end of General architecture-dependent options
CONFIG_RT_MUTEXES=y
@@ -915,6 +938,7 @@ CONFIG_MODULE_SIG_HASH="sha512"
# CONFIG_MODULE_COMPRESS_GZIP is not set
# CONFIG_MODULE_COMPRESS_XZ is not set
CONFIG_MODULE_COMPRESS_ZSTD=y
+CONFIG_MODULE_DECOMPRESS=y
CONFIG_MODULE_ALLOW_MISSING_NAMESPACE_IMPORTS=y
CONFIG_MODPROBE_PATH="/sbin/modprobe"
CONFIG_MODULES_TREE_LOOKUP=y
@@ -968,7 +992,6 @@ CONFIG_EFI_PARTITION=y
# CONFIG_CMDLINE_PARTITION is not set
# end of Partition Types
-CONFIG_BLOCK_COMPAT=y
CONFIG_BLK_MQ_PCI=y
CONFIG_BLK_MQ_VIRTIO=y
CONFIG_BLK_MQ_RDMA=y
@@ -1025,18 +1048,19 @@ CONFIG_ZSWAP_DEFAULT_ON=y
# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_DEFLATE is not set
# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_LZO is not set
# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_842 is not set
-CONFIG_ZSWAP_COMPRESSOR_DEFAULT_LZ4=y
+# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_LZ4 is not set
# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_LZ4HC is not set
-# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_ZSTD is not set
-CONFIG_ZSWAP_COMPRESSOR_DEFAULT="lz4"
+CONFIG_ZSWAP_COMPRESSOR_DEFAULT_ZSTD=y
+CONFIG_ZSWAP_COMPRESSOR_DEFAULT="zstd"
# CONFIG_ZSWAP_ZPOOL_DEFAULT_ZBUD is not set
-CONFIG_ZSWAP_ZPOOL_DEFAULT_Z3FOLD=y
-# CONFIG_ZSWAP_ZPOOL_DEFAULT_ZSMALLOC is not set
-CONFIG_ZSWAP_ZPOOL_DEFAULT="z3fold"
+# CONFIG_ZSWAP_ZPOOL_DEFAULT_Z3FOLD is not set
+CONFIG_ZSWAP_ZPOOL_DEFAULT_ZSMALLOC=y
+CONFIG_ZSWAP_ZPOOL_DEFAULT="zsmalloc"
CONFIG_ZBUD=y
CONFIG_Z3FOLD=y
CONFIG_ZSMALLOC=y
-# CONFIG_ZSMALLOC_STAT is not set
+CONFIG_ZSMALLOC_STAT=y
+CONFIG_ZSMALLOC_CHAIN_SIZE=8
#
# SLAB allocator options
@@ -1130,7 +1154,6 @@ CONFIG_ANON_VMA_NAME=y
CONFIG_USERFAULTFD=y
CONFIG_HAVE_ARCH_USERFAULTFD_WP=y
CONFIG_HAVE_ARCH_USERFAULTFD_MINOR=y
-CONFIG_PTE_MARKER=y
CONFIG_PTE_MARKER_UFFD_WP=y
CONFIG_LRU_GEN=y
CONFIG_LRU_GEN_ENABLED=y
@@ -1216,6 +1239,7 @@ CONFIG_INET_ESP=m
CONFIG_INET_ESP_OFFLOAD=m
CONFIG_INET_ESPINTCP=y
CONFIG_INET_IPCOMP=m
+CONFIG_INET_TABLE_PERTURB_ORDER=16
CONFIG_INET_XFRM_TUNNEL=m
CONFIG_INET_TUNNEL=m
CONFIG_INET_DIAG=m
@@ -1311,6 +1335,7 @@ CONFIG_NF_CONNTRACK_EVENTS=y
CONFIG_NF_CONNTRACK_TIMEOUT=y
CONFIG_NF_CONNTRACK_TIMESTAMP=y
CONFIG_NF_CONNTRACK_LABELS=y
+CONFIG_NF_CONNTRACK_OVS=y
CONFIG_NF_CT_PROTO_DCCP=y
CONFIG_NF_CT_PROTO_GRE=y
CONFIG_NF_CT_PROTO_SCTP=y
@@ -1338,6 +1363,7 @@ CONFIG_NF_NAT_SIP=m
CONFIG_NF_NAT_TFTP=m
CONFIG_NF_NAT_REDIRECT=y
CONFIG_NF_NAT_MASQUERADE=y
+CONFIG_NF_NAT_OVS=y
CONFIG_NETFILTER_SYNPROXY=m
CONFIG_NF_TABLES=m
CONFIG_NF_TABLES_INET=y
@@ -1352,7 +1378,6 @@ CONFIG_NFT_MASQ=m
CONFIG_NFT_REDIR=m
CONFIG_NFT_NAT=m
CONFIG_NFT_TUNNEL=m
-CONFIG_NFT_OBJREF=m
CONFIG_NFT_QUEUE=m
CONFIG_NFT_QUOTA=m
CONFIG_NFT_REJECT=m
@@ -1565,7 +1590,6 @@ CONFIG_IP_NF_TARGET_MASQUERADE=m
CONFIG_IP_NF_TARGET_NETMAP=m
CONFIG_IP_NF_TARGET_REDIRECT=m
CONFIG_IP_NF_MANGLE=m
-CONFIG_IP_NF_TARGET_CLUSTERIP=m
CONFIG_IP_NF_TARGET_ECN=m
CONFIG_IP_NF_TARGET_TTL=m
CONFIG_IP_NF_RAW=m
@@ -1676,6 +1700,7 @@ CONFIG_BRIDGE_VLAN_FILTERING=y
CONFIG_BRIDGE_MRP=y
CONFIG_BRIDGE_CFM=y
CONFIG_NET_DSA=m
+CONFIG_NET_DSA_TAG_NONE=m
CONFIG_NET_DSA_TAG_AR9331=m
CONFIG_NET_DSA_TAG_BRCM_COMMON=m
CONFIG_NET_DSA_TAG_BRCM=m
@@ -1736,10 +1761,8 @@ CONFIG_NET_SCHED=y
#
# Queueing/Scheduling
#
-CONFIG_NET_SCH_CBQ=m
CONFIG_NET_SCH_HTB=m
CONFIG_NET_SCH_HFSC=m
-CONFIG_NET_SCH_ATM=m
CONFIG_NET_SCH_PRIO=m
CONFIG_NET_SCH_MULTIQ=m
CONFIG_NET_SCH_RED=m
@@ -1749,9 +1772,9 @@ CONFIG_NET_SCH_TEQL=m
CONFIG_NET_SCH_TBF=m
CONFIG_NET_SCH_CBS=m
CONFIG_NET_SCH_ETF=m
+CONFIG_NET_SCH_MQPRIO_LIB=m
CONFIG_NET_SCH_TAPRIO=m
CONFIG_NET_SCH_GRED=m
-CONFIG_NET_SCH_DSMARK=m
CONFIG_NET_SCH_NETEM=m
CONFIG_NET_SCH_DRR=m
CONFIG_NET_SCH_MQPRIO=m
@@ -1782,14 +1805,11 @@ CONFIG_DEFAULT_NET_SCH="fq_codel"
#
CONFIG_NET_CLS=y
CONFIG_NET_CLS_BASIC=m
-CONFIG_NET_CLS_TCINDEX=m
CONFIG_NET_CLS_ROUTE4=m
CONFIG_NET_CLS_FW=m
CONFIG_NET_CLS_U32=m
CONFIG_CLS_U32_PERF=y
CONFIG_CLS_U32_MARK=y
-CONFIG_NET_CLS_RSVP=m
-CONFIG_NET_CLS_RSVP6=m
CONFIG_NET_CLS_FLOW=m
CONFIG_NET_CLS_CGROUP=m
CONFIG_NET_CLS_BPF=m
@@ -1928,6 +1948,7 @@ CONFIG_BT_CMTP=m
CONFIG_BT_HIDP=m
# CONFIG_BT_HS is not set
CONFIG_BT_LE=y
+CONFIG_BT_LE_L2CAP_ECRED=y
CONFIG_BT_6LOWPAN=m
CONFIG_BT_LEDS=y
CONFIG_BT_MSFTEXT=y
@@ -1945,6 +1966,7 @@ CONFIG_BT_QCA=m
CONFIG_BT_MTK=m
CONFIG_BT_HCIBTUSB=m
CONFIG_BT_HCIBTUSB_AUTOSUSPEND=y
+CONFIG_BT_HCIBTUSB_POLL_SYNC=y
CONFIG_BT_HCIBTUSB_BCM=y
CONFIG_BT_HCIBTUSB_MTK=y
CONFIG_BT_HCIBTUSB_RTL=y
@@ -1964,6 +1986,7 @@ CONFIG_BT_HCIUART_QCA=y
CONFIG_BT_HCIUART_AG6XX=y
CONFIG_BT_HCIUART_MRVL=y
CONFIG_BT_HCIBCM203X=m
+CONFIG_BT_HCIBCM4377=m
CONFIG_BT_HCIBPA10X=m
CONFIG_BT_HCIBFUSB=m
CONFIG_BT_HCIDTL1=m
@@ -1982,8 +2005,10 @@ CONFIG_BT_VIRTIO=m
CONFIG_AF_RXRPC=m
CONFIG_AF_RXRPC_IPV6=y
# CONFIG_AF_RXRPC_INJECT_LOSS is not set
+# CONFIG_AF_RXRPC_INJECT_RX_DELAY is not set
CONFIG_AF_RXRPC_DEBUG=y
CONFIG_RXKAD=y
+# CONFIG_RXPERF is not set
CONFIG_AF_KCM=m
CONFIG_STREAM_PARSER=y
CONFIG_MCTP=y
@@ -2119,7 +2144,6 @@ CONFIG_PCIE_DPC=y
CONFIG_PCIE_PTM=y
CONFIG_PCIE_EDR=y
CONFIG_PCI_MSI=y
-CONFIG_PCI_MSI_IRQ_DOMAIN=y
CONFIG_PCI_QUIRKS=y
# CONFIG_PCI_DEBUG is not set
# CONFIG_PCI_REALLOC_ENABLE_AUTO is not set
@@ -2193,6 +2217,7 @@ CONFIG_CXL_MEM=m
CONFIG_CXL_PORT=m
CONFIG_CXL_SUSPEND=y
CONFIG_CXL_REGION=y
+# CONFIG_CXL_REGION_INVALIDATION_TEST is not set
CONFIG_PCCARD=m
CONFIG_PCMCIA=m
CONFIG_PCMCIA_LOAD_CIS=y
@@ -2249,6 +2274,7 @@ CONFIG_HMEM_REPORTING=y
CONFIG_SYS_HYPERVISOR=y
CONFIG_GENERIC_CPU_AUTOPROBE=y
CONFIG_GENERIC_CPU_VULNERABILITIES=y
+CONFIG_SOC_BUS=y
CONFIG_REGMAP=y
CONFIG_REGMAP_I2C=y
CONFIG_REGMAP_SLIMBUS=m
@@ -2297,9 +2323,10 @@ CONFIG_FW_CFG_SYSFS=m
# CONFIG_FW_CFG_SYSFS_CMDLINE is not set
CONFIG_SYSFB=y
# CONFIG_SYSFB_SIMPLEFB is not set
-CONFIG_CS_DSP=m
+CONFIG_FW_CS_DSP=m
CONFIG_GOOGLE_FIRMWARE=y
# CONFIG_GOOGLE_SMI is not set
+CONFIG_GOOGLE_CBMEM=m
CONFIG_GOOGLE_COREBOOT_TABLE=m
CONFIG_GOOGLE_MEMCONSOLE=m
# CONFIG_GOOGLE_MEMCONSOLE_X86_LEGACY is not set
@@ -2312,12 +2339,9 @@ CONFIG_GOOGLE_VPD=m
CONFIG_EFI_ESRT=y
CONFIG_EFI_VARS_PSTORE=y
CONFIG_EFI_VARS_PSTORE_DEFAULT_DISABLE=y
-CONFIG_EFI_RUNTIME_MAP=y
-# CONFIG_EFI_FAKE_MEMMAP is not set
CONFIG_EFI_SOFT_RESERVE=y
CONFIG_EFI_DXE_MEM_ATTRIBUTES=y
CONFIG_EFI_RUNTIME_WRAPPERS=y
-CONFIG_EFI_GENERIC_STUB_INITRD_CMDLINE_LOADER=y
CONFIG_EFI_BOOTLOADER_CONTROL=m
CONFIG_EFI_CAPSULE_LOADER=m
# CONFIG_EFI_TEST is not set
@@ -2487,7 +2511,6 @@ CONFIG_PARPORT_SERIAL=m
CONFIG_PARPORT_PC_FIFO=y
CONFIG_PARPORT_PC_SUPERIO=y
CONFIG_PARPORT_PC_PCMCIA=m
-CONFIG_PARPORT_AX88796=m
CONFIG_PARPORT_1284=y
CONFIG_PARPORT_NOT_PC=y
CONFIG_PNP=y
@@ -2502,18 +2525,18 @@ CONFIG_BLK_DEV_NULL_BLK=m
CONFIG_BLK_DEV_FD=m
# CONFIG_BLK_DEV_FD_RAWCMD is not set
CONFIG_CDROM=m
-# CONFIG_PARIDE is not set
CONFIG_BLK_DEV_PCIESSD_MTIP32XX=m
CONFIG_ZRAM=m
-CONFIG_ZRAM_DEF_COMP_LZORLE=y
-# CONFIG_ZRAM_DEF_COMP_ZSTD is not set
+# CONFIG_ZRAM_DEF_COMP_LZORLE is not set
+CONFIG_ZRAM_DEF_COMP_ZSTD=y
# CONFIG_ZRAM_DEF_COMP_LZ4 is not set
# CONFIG_ZRAM_DEF_COMP_LZO is not set
# CONFIG_ZRAM_DEF_COMP_LZ4HC is not set
# CONFIG_ZRAM_DEF_COMP_842 is not set
-CONFIG_ZRAM_DEF_COMP="lzo-rle"
+CONFIG_ZRAM_DEF_COMP="zstd"
CONFIG_ZRAM_WRITEBACK=y
# CONFIG_ZRAM_MEMORY_TRACKING is not set
+CONFIG_ZRAM_MULTI_COMP=y
CONFIG_BLK_DEV_LOOP=m
CONFIG_BLK_DEV_LOOP_MIN_COUNT=0
CONFIG_BLK_DEV_DRBD=m
@@ -2573,6 +2596,8 @@ CONFIG_TIFM_CORE=m
CONFIG_TIFM_7XX1=m
CONFIG_ICS932S401=m
CONFIG_ENCLOSURE_SERVICES=m
+CONFIG_SMPRO_ERRMON=m
+CONFIG_SMPRO_MISC=m
CONFIG_HP_ILO=m
CONFIG_APDS9802ALS=m
CONFIG_ISL29003=m
@@ -2632,7 +2657,6 @@ CONFIG_BCM_VK_TTY=y
CONFIG_MISC_ALCOR_PCI=m
CONFIG_MISC_RTSX_PCI=m
CONFIG_MISC_RTSX_USB=m
-CONFIG_HABANA_AI=m
CONFIG_UACCE=m
CONFIG_PVPANIC=y
CONFIG_PVPANIC_MMIO=m
@@ -2881,6 +2905,26 @@ CONFIG_PATA_NS87410=m
CONFIG_PATA_OPTI=m
CONFIG_PATA_PCMCIA=m
CONFIG_PATA_RZ1000=m
+CONFIG_PATA_PARPORT=m
+
+#
+# Parallel IDE protocol modules
+#
+CONFIG_PATA_PARPORT_ATEN=m
+CONFIG_PATA_PARPORT_BPCK=m
+CONFIG_PATA_PARPORT_COMM=m
+CONFIG_PATA_PARPORT_DSTR=m
+CONFIG_PATA_PARPORT_FIT2=m
+CONFIG_PATA_PARPORT_FIT3=m
+CONFIG_PATA_PARPORT_EPAT=m
+CONFIG_PATA_PARPORT_EPATC8=y
+CONFIG_PATA_PARPORT_EPIA=m
+CONFIG_PATA_PARPORT_FRIQ=m
+CONFIG_PATA_PARPORT_FRPW=m
+CONFIG_PATA_PARPORT_KBIC=m
+CONFIG_PATA_PARPORT_KTTI=m
+CONFIG_PATA_PARPORT_ON20=m
+CONFIG_PATA_PARPORT_ON26=m
#
# Generic fallback / legacy drivers
@@ -3058,9 +3102,12 @@ CONFIG_NET_DSA_MV88E6060=m
CONFIG_NET_DSA_MICROCHIP_KSZ_COMMON=m
CONFIG_NET_DSA_MICROCHIP_KSZ9477_I2C=m
CONFIG_NET_DSA_MICROCHIP_KSZ_SPI=m
+CONFIG_NET_DSA_MICROCHIP_KSZ_PTP=y
CONFIG_NET_DSA_MICROCHIP_KSZ8863_SMI=m
CONFIG_NET_DSA_MV88E6XXX=m
CONFIG_NET_DSA_MV88E6XXX_PTP=y
+CONFIG_NET_DSA_MSCC_FELIX_DSA_LIB=m
+CONFIG_NET_DSA_MSCC_OCELOT_EXT=m
CONFIG_NET_DSA_MSCC_SEVILLE=m
CONFIG_NET_DSA_AR9331=m
CONFIG_NET_DSA_QCA8K=m
@@ -3236,6 +3283,7 @@ CONFIG_ICE_HWTS=y
CONFIG_FM10K=m
CONFIG_IGC=m
CONFIG_NET_VENDOR_WANGXUN=y
+CONFIG_LIBWX=m
CONFIG_NGBE=m
CONFIG_TXGBE=m
CONFIG_JME=m
@@ -3296,6 +3344,7 @@ CONFIG_ENC28J60=m
# CONFIG_ENC28J60_WRITEVERIFY is not set
CONFIG_ENCX24J600=m
CONFIG_LAN743X=m
+CONFIG_VCAP=y
CONFIG_NET_VENDOR_MICROSEMI=y
CONFIG_MSCC_OCELOT_SWITCH_LIB=m
CONFIG_NET_VENDOR_MICROSOFT=y
@@ -3315,6 +3364,7 @@ CONFIG_NET_VENDOR_NETRONOME=y
CONFIG_NFP=m
CONFIG_NFP_APP_FLOWER=y
CONFIG_NFP_APP_ABM_NIC=y
+CONFIG_NFP_NET_IPSEC=y
# CONFIG_NFP_DEBUG is not set
CONFIG_NET_VENDOR_8390=y
CONFIG_PCMCIA_AXNET=m
@@ -3477,6 +3527,7 @@ CONFIG_MOTORCOMM_PHY=m
CONFIG_NATIONAL_PHY=m
CONFIG_NXP_C45_TJA11XX_PHY=m
CONFIG_NXP_TJA11XX_PHY=m
+CONFIG_NCN26000_PHY=m
CONFIG_AT803X_PHY=m
CONFIG_QSEMI_PHY=m
CONFIG_REALTEK_PHY=m
@@ -3718,6 +3769,9 @@ CONFIG_ATH11K_DEBUG=y
CONFIG_ATH11K_DEBUGFS=y
# CONFIG_ATH11K_TRACING is not set
CONFIG_ATH11K_SPECTRAL=y
+CONFIG_ATH12K=m
+CONFIG_ATH12K_DEBUG=y
+CONFIG_ATH12K_TRACING=y
CONFIG_WLAN_VENDOR_ATMEL=y
CONFIG_ATMEL=m
CONFIG_PCI_ATMEL=m
@@ -3869,6 +3923,7 @@ CONFIG_MT7921_COMMON=m
CONFIG_MT7921E=m
CONFIG_MT7921S=m
CONFIG_MT7921U=m
+CONFIG_MT7996E=m
CONFIG_WLAN_VENDOR_MICROCHIP=y
CONFIG_WILC1000=m
CONFIG_WILC1000_SDIO=m
@@ -3932,22 +3987,29 @@ CONFIG_RTL8XXXU_UNTESTED=y
CONFIG_RTW88=m
CONFIG_RTW88_CORE=m
CONFIG_RTW88_PCI=m
+CONFIG_RTW88_USB=m
CONFIG_RTW88_8822B=m
CONFIG_RTW88_8822C=m
CONFIG_RTW88_8723D=m
CONFIG_RTW88_8821C=m
CONFIG_RTW88_8822BE=m
+CONFIG_RTW88_8822BU=m
CONFIG_RTW88_8822CE=m
+CONFIG_RTW88_8822CU=m
CONFIG_RTW88_8723DE=m
+CONFIG_RTW88_8723DU=m
CONFIG_RTW88_8821CE=m
+CONFIG_RTW88_8821CU=m
CONFIG_RTW88_DEBUG=y
CONFIG_RTW88_DEBUGFS=y
CONFIG_RTW89=m
CONFIG_RTW89_CORE=m
CONFIG_RTW89_PCI=m
CONFIG_RTW89_8852A=m
+CONFIG_RTW89_8852B=m
CONFIG_RTW89_8852C=m
CONFIG_RTW89_8852AE=m
+CONFIG_RTW89_8852BE=m
CONFIG_RTW89_8852CE=m
CONFIG_RTW89_DEBUG=y
CONFIG_RTW89_DEBUGMSG=y
@@ -3972,7 +4034,6 @@ CONFIG_WL12XX=m
CONFIG_WL18XX=m
CONFIG_WLCORE=m
CONFIG_WLCORE_SDIO=m
-CONFIG_WILINK_PLATFORM_DATA=y
CONFIG_WLAN_VENDOR_ZYDAS=y
CONFIG_USB_ZD1201=m
CONFIG_ZD1211RW=m
@@ -4196,6 +4257,7 @@ CONFIG_TOUCHSCREEN_CYTTSP_SPI=m
CONFIG_TOUCHSCREEN_CYTTSP4_CORE=m
CONFIG_TOUCHSCREEN_CYTTSP4_I2C=m
CONFIG_TOUCHSCREEN_CYTTSP4_SPI=m
+CONFIG_TOUCHSCREEN_CYTTSP5=m
CONFIG_TOUCHSCREEN_DA9034=m
CONFIG_TOUCHSCREEN_DA9052=m
CONFIG_TOUCHSCREEN_DYNAPRO=m
@@ -4207,6 +4269,7 @@ CONFIG_TOUCHSCREEN_FUJITSU=m
CONFIG_TOUCHSCREEN_GOODIX=m
CONFIG_TOUCHSCREEN_HIDEEP=m
CONFIG_TOUCHSCREEN_HYCON_HY46XX=m
+CONFIG_TOUCHSCREEN_HYNITRON_CSTXXX=m
CONFIG_TOUCHSCREEN_ILI210X=m
CONFIG_TOUCHSCREEN_ILITEK=m
CONFIG_TOUCHSCREEN_S6SY761=m
@@ -4230,7 +4293,6 @@ CONFIG_TOUCHSCREEN_EDT_FT5X06=m
CONFIG_TOUCHSCREEN_TOUCHRIGHT=m
CONFIG_TOUCHSCREEN_TOUCHWIN=m
CONFIG_TOUCHSCREEN_TI_AM335X_TSC=m
-CONFIG_TOUCHSCREEN_UCB1400=m
CONFIG_TOUCHSCREEN_PIXCIR=m
CONFIG_TOUCHSCREEN_WDT87XX_I2C=m
CONFIG_TOUCHSCREEN_WM831X=m
@@ -4281,6 +4343,7 @@ CONFIG_TOUCHSCREEN_COLIBRI_VF50=m
CONFIG_TOUCHSCREEN_ROHM_BU21023=m
CONFIG_TOUCHSCREEN_IQS5XX=m
CONFIG_TOUCHSCREEN_ZINITIX=m
+CONFIG_TOUCHSCREEN_HIMAX_HX83112B=m
CONFIG_INPUT_MISC=y
CONFIG_INPUT_88PM860X_ONKEY=m
CONFIG_INPUT_88PM80X_ONKEY=m
@@ -4398,6 +4461,7 @@ CONFIG_HW_CONSOLE=y
CONFIG_VT_HW_CONSOLE_BINDING=y
CONFIG_UNIX98_PTYS=y
# CONFIG_LEGACY_PTYS is not set
+# CONFIG_LEGACY_TIOCSTI is not set
CONFIG_LDISC_AUTOLOAD=y
#
@@ -4411,6 +4475,7 @@ CONFIG_SERIAL_8250_PNP=y
CONFIG_SERIAL_8250_FINTEK=y
CONFIG_SERIAL_8250_CONSOLE=y
CONFIG_SERIAL_8250_DMA=y
+CONFIG_SERIAL_8250_PCILIB=y
CONFIG_SERIAL_8250_PCI=y
CONFIG_SERIAL_8250_EXAR=m
CONFIG_SERIAL_8250_CS=m
@@ -4419,10 +4484,12 @@ CONFIG_SERIAL_8250_NR_UARTS=32
CONFIG_SERIAL_8250_RUNTIME_UARTS=32
CONFIG_SERIAL_8250_EXTENDED=y
CONFIG_SERIAL_8250_MANY_PORTS=y
+CONFIG_SERIAL_8250_PCI1XXXX=m
CONFIG_SERIAL_8250_SHARE_IRQ=y
# CONFIG_SERIAL_8250_DETECT_IRQ is not set
CONFIG_SERIAL_8250_RSA=y
CONFIG_SERIAL_8250_DWLIB=y
+CONFIG_SERIAL_8250_DFL=m
CONFIG_SERIAL_8250_DW=m
CONFIG_SERIAL_8250_RT288X=y
CONFIG_SERIAL_8250_LPSS=y
@@ -4454,7 +4521,6 @@ CONFIG_SERIAL_ARC_NR_PORTS=1
CONFIG_SERIAL_RP2=m
CONFIG_SERIAL_RP2_NR_UARTS=32
CONFIG_SERIAL_FSL_LPUART=m
-CONFIG_SERIAL_FSL_LPUART_CONSOLE=y
CONFIG_SERIAL_FSL_LINFLEXUART=m
CONFIG_SERIAL_MEN_Z135=m
CONFIG_SERIAL_SPRD=m
@@ -4490,8 +4556,9 @@ CONFIG_IPMI_SSIF=m
CONFIG_IPMI_IPMB=m
CONFIG_IPMI_WATCHDOG=m
CONFIG_IPMI_POWEROFF=m
+CONFIG_SSIF_IPMI_BMC=m
CONFIG_IPMB_DEVICE_INTERFACE=m
-CONFIG_HW_RANDOM=m
+CONFIG_HW_RANDOM=y
CONFIG_HW_RANDOM_TIMERIOMEM=m
CONFIG_HW_RANDOM_INTEL=m
CONFIG_HW_RANDOM_AMD=m
@@ -4518,10 +4585,10 @@ CONFIG_DEVPORT=y
CONFIG_HPET=y
# CONFIG_HPET_MMAP is not set
CONFIG_HANGCHECK_TIMER=m
-CONFIG_TCG_TPM=m
+CONFIG_TCG_TPM=y
CONFIG_HW_RANDOM_TPM=y
-CONFIG_TCG_TIS_CORE=m
-CONFIG_TCG_TIS=m
+CONFIG_TCG_TIS_CORE=y
+CONFIG_TCG_TIS=y
CONFIG_TCG_TIS_SPI=m
CONFIG_TCG_TIS_SPI_CR50=y
CONFIG_TCG_TIS_I2C=m
@@ -4533,7 +4600,7 @@ CONFIG_TCG_NSC=m
CONFIG_TCG_ATMEL=m
CONFIG_TCG_INFINEON=m
CONFIG_TCG_XEN=m
-CONFIG_TCG_CRB=m
+CONFIG_TCG_CRB=y
CONFIG_TCG_VTPM_PROXY=m
CONFIG_TCG_TIS_ST33ZP24=m
CONFIG_TCG_TIS_ST33ZP24_I2C=m
@@ -4543,8 +4610,6 @@ CONFIG_XILLYBUS_CLASS=m
CONFIG_XILLYBUS=m
CONFIG_XILLYBUS_PCIE=m
CONFIG_XILLYUSB=m
-CONFIG_RANDOM_TRUST_CPU=y
-CONFIG_RANDOM_TRUST_BOOTLOADER=y
# end of Character devices
#
@@ -4570,7 +4635,7 @@ CONFIG_I2C_MUX_MLXCPLD=m
CONFIG_I2C_HELPER_AUTO=y
CONFIG_I2C_SMBUS=m
-CONFIG_I2C_ALGOBIT=y
+CONFIG_I2C_ALGOBIT=m
CONFIG_I2C_ALGOPCA=m
#
@@ -4687,6 +4752,7 @@ CONFIG_SPI_MICROCHIP_CORE=m
CONFIG_SPI_MICROCHIP_CORE_QSPI=m
# CONFIG_SPI_LANTIQ_SSC is not set
CONFIG_SPI_OC_TINY=m
+CONFIG_SPI_PCI1XXXX=m
CONFIG_SPI_PXA2XX=m
CONFIG_SPI_PXA2XX_PCI=m
# CONFIG_SPI_ROCKCHIP is not set
@@ -4801,6 +4867,7 @@ CONFIG_GPIO_CDEV=y
CONFIG_GPIO_CDEV_V1=y
CONFIG_GPIO_GENERIC=m
CONFIG_GPIO_MAX730X=m
+CONFIG_GPIO_IDIO_16=m
#
# Memory mapped GPIO drivers
@@ -4865,7 +4932,6 @@ CONFIG_GPIO_TPS68470=m
CONFIG_GPIO_TQMX86=m
CONFIG_GPIO_TWL4030=m
CONFIG_GPIO_TWL6040=m
-CONFIG_GPIO_UCB1400=m
CONFIG_GPIO_WHISKEY_COVE=m
CONFIG_GPIO_WM831X=m
CONFIG_GPIO_WM8350=m
@@ -4902,6 +4968,7 @@ CONFIG_GPIO_VIPERBOARD=m
# Virtual GPIO drivers
#
CONFIG_GPIO_AGGREGATOR=m
+CONFIG_GPIO_LATCH=m
CONFIG_GPIO_MOCKUP=m
CONFIG_GPIO_VIRTIO=m
CONFIG_GPIO_SIM=m
@@ -4916,7 +4983,6 @@ CONFIG_W1_CON=y
CONFIG_W1_MASTER_MATROX=m
CONFIG_W1_MASTER_DS2490=m
CONFIG_W1_MASTER_DS2482=m
-CONFIG_W1_MASTER_DS1WM=m
CONFIG_W1_MASTER_GPIO=m
CONFIG_W1_MASTER_SGI=m
# end of 1-wire Bus Masters
@@ -4953,7 +5019,6 @@ CONFIG_POWER_RESET_TPS65086=y
CONFIG_POWER_SUPPLY=y
# CONFIG_POWER_SUPPLY_DEBUG is not set
CONFIG_POWER_SUPPLY_HWMON=y
-CONFIG_PDA_POWER=m
CONFIG_GENERIC_ADC_BATTERY=m
CONFIG_IP5XXX_POWER=m
CONFIG_MAX8925_POWER=m
@@ -5023,6 +5088,8 @@ CONFIG_BATTERY_GAUGE_LTC2941=m
CONFIG_BATTERY_GOLDFISH=m
CONFIG_BATTERY_RT5033=m
CONFIG_CHARGER_RT9455=m
+CONFIG_CHARGER_RT9467=m
+CONFIG_CHARGER_RT9471=m
CONFIG_CHARGER_CROS_USBPD=m
CONFIG_CHARGER_CROS_PCHG=m
CONFIG_CHARGER_BD99954=m
@@ -5039,6 +5106,7 @@ CONFIG_HWMON_VID=m
#
CONFIG_SENSORS_ABITUGURU=m
CONFIG_SENSORS_ABITUGURU3=m
+CONFIG_SENSORS_SMPRO=m
CONFIG_SENSORS_AD7314=m
CONFIG_SENSORS_AD7414=m
CONFIG_SENSORS_AD7418=m
@@ -5123,6 +5191,7 @@ CONFIG_SENSORS_MAX6639=m
CONFIG_SENSORS_MAX6650=m
CONFIG_SENSORS_MAX6697=m
CONFIG_SENSORS_MAX31790=m
+CONFIG_SENSORS_MC34VR500=m
CONFIG_SENSORS_MCP3021=m
CONFIG_SENSORS_MLXREG_FAN=m
CONFIG_SENSORS_TC654=m
@@ -5158,6 +5227,9 @@ CONFIG_SENSORS_NCT7904=m
CONFIG_SENSORS_NPCM7XX=m
CONFIG_SENSORS_NZXT_KRAKEN2=m
CONFIG_SENSORS_NZXT_SMART2=m
+CONFIG_SENSORS_OCC_P8_I2C=m
+CONFIG_SENSORS_OCC=m
+CONFIG_SENSORS_OXP=m
CONFIG_SENSORS_PCF8591=m
CONFIG_PMBUS=m
CONFIG_SENSORS_PMBUS=m
@@ -5193,6 +5265,8 @@ CONFIG_SENSORS_MAX8688=m
CONFIG_SENSORS_MP2888=m
CONFIG_SENSORS_MP2975=m
CONFIG_SENSORS_MP5023=m
+CONFIG_SENSORS_MPQ7932_REGULATOR=y
+CONFIG_SENSORS_MPQ7932=m
CONFIG_SENSORS_PIM4328=m
CONFIG_SENSORS_PLI1209BC=m
CONFIG_SENSORS_PLI1209BC_REGULATOR=y
@@ -5200,6 +5274,8 @@ CONFIG_SENSORS_PM6764TR=m
CONFIG_SENSORS_PXE1610=m
CONFIG_SENSORS_Q54SJ108A2=m
CONFIG_SENSORS_STPDDC60=m
+CONFIG_SENSORS_TDA38640=m
+CONFIG_SENSORS_TDA38640_REGULATOR=y
CONFIG_SENSORS_TPS40422=m
CONFIG_SENSORS_TPS53679=m
CONFIG_SENSORS_TPS546D24=m
@@ -5280,6 +5356,7 @@ CONFIG_THERMAL_NETLINK=y
# CONFIG_THERMAL_STATISTICS is not set
CONFIG_THERMAL_EMERGENCY_POWEROFF_DELAY_MS=100
CONFIG_THERMAL_HWMON=y
+CONFIG_THERMAL_ACPI=y
CONFIG_THERMAL_WRITABLE_TRIPS=y
CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE=y
# CONFIG_THERMAL_DEFAULT_GOV_FAIR_SHARE is not set
@@ -5298,6 +5375,7 @@ CONFIG_DEVFREQ_THERMAL=y
#
CONFIG_INTEL_POWERCLAMP=m
CONFIG_X86_THERMAL_VECTOR=y
+CONFIG_INTEL_TCC=y
CONFIG_X86_PKG_TEMP_THERMAL=m
CONFIG_INTEL_SOC_DTS_IOSF_CORE=m
CONFIG_INTEL_SOC_DTS_THERMAL=m
@@ -5362,6 +5440,7 @@ CONFIG_MAX63XX_WATCHDOG=m
CONFIG_RETU_WATCHDOG=m
CONFIG_ACQUIRE_WDT=m
CONFIG_ADVANTECH_WDT=m
+CONFIG_ADVANTECH_EC_WDT=m
CONFIG_ALIM1535_WDT=m
CONFIG_ALIM7101_WDT=m
CONFIG_EBC_C384_WDT=m
@@ -5443,6 +5522,7 @@ CONFIG_BCMA_DRIVER_GPIO=y
#
CONFIG_MFD_CORE=y
CONFIG_MFD_AS3711=y
+CONFIG_MFD_SMPRO=m
CONFIG_PMIC_ADP5520=y
CONFIG_MFD_AAT2870_CORE=y
CONFIG_MFD_BCM590XX=m
@@ -5471,8 +5551,6 @@ CONFIG_MFD_MC13XXX=m
CONFIG_MFD_MC13XXX_SPI=m
CONFIG_MFD_MC13XXX_I2C=m
CONFIG_MFD_MP2629=m
-CONFIG_HTC_PASIC3=m
-CONFIG_HTC_I2CPLD=y
CONFIG_MFD_INTEL_QUARK_I2C_GPIO=m
CONFIG_LPC_ICH=m
CONFIG_LPC_SCH=m
@@ -5509,7 +5587,6 @@ CONFIG_MFD_RETU=m
CONFIG_MFD_PCF50633=m
CONFIG_PCF50633_ADC=m
CONFIG_PCF50633_GPIO=m
-CONFIG_UCB1400_CORE=m
CONFIG_MFD_SY7636A=m
CONFIG_MFD_RDC321X=m
CONFIG_MFD_RT4831=m
@@ -5564,7 +5641,9 @@ CONFIG_MFD_WCD934X=m
CONFIG_MFD_ATC260X=m
CONFIG_MFD_ATC260X_I2C=m
CONFIG_RAVE_SP_CORE=m
-CONFIG_MFD_INTEL_M10_BMC=m
+CONFIG_MFD_INTEL_M10_BMC_CORE=m
+CONFIG_MFD_INTEL_M10_BMC_SPI=m
+CONFIG_MFD_INTEL_M10_BMC_PMCI=m
# end of Multifunction device drivers
CONFIG_REGULATOR=y
@@ -5614,6 +5693,7 @@ CONFIG_REGULATOR_MAX8952=m
CONFIG_REGULATOR_MAX8997=m
CONFIG_REGULATOR_MAX8998=m
CONFIG_REGULATOR_MAX20086=m
+CONFIG_REGULATOR_MAX20411=m
CONFIG_REGULATOR_MAX77693=m
CONFIG_REGULATOR_MAX77826=m
CONFIG_REGULATOR_MC13XXX_CORE=m
@@ -5624,6 +5704,7 @@ CONFIG_REGULATOR_MT6311=m
CONFIG_REGULATOR_MT6323=m
CONFIG_REGULATOR_MT6331=m
CONFIG_REGULATOR_MT6332=m
+CONFIG_REGULATOR_MT6357=m
CONFIG_REGULATOR_MT6358=m
CONFIG_REGULATOR_MT6359=m
CONFIG_REGULATOR_MT6360=m
@@ -5645,6 +5726,7 @@ CONFIG_REGULATOR_RT5120=m
CONFIG_REGULATOR_RT5190A=m
CONFIG_REGULATOR_RT5759=m
CONFIG_REGULATOR_RT6160=m
+CONFIG_REGULATOR_RT6190=m
CONFIG_REGULATOR_RT6245=m
CONFIG_REGULATOR_RTQ2134=m
CONFIG_REGULATOR_RTMV20=m
@@ -5958,6 +6040,9 @@ CONFIG_VIDEO_DT3155=m
CONFIG_VIDEO_IVTV=m
CONFIG_VIDEO_IVTV_ALSA=m
# CONFIG_VIDEO_FB_IVTV is not set
+CONFIG_VIDEO_HEXIUM_GEMINI=m
+CONFIG_VIDEO_HEXIUM_ORION=m
+CONFIG_VIDEO_MXB=m
#
# Media capture/analog/hybrid TV support
@@ -6001,6 +6086,10 @@ CONFIG_DVB_PLUTO2=m
CONFIG_DVB_PT1=m
CONFIG_DVB_PT3=m
CONFIG_DVB_SMIPCIE=m
+CONFIG_DVB_BUDGET_CORE=m
+CONFIG_DVB_BUDGET=m
+CONFIG_DVB_BUDGET_CI=m
+CONFIG_DVB_BUDGET_AV=m
CONFIG_VIDEO_IPU3_CIO2=m
CONFIG_CIO2_BRIDGE=y
CONFIG_RADIO_ADAPTERS=m
@@ -6047,7 +6136,6 @@ CONFIG_VIDEO_MEM2MEM_DEINTERLACE=m
#
# Aspeed media platform drivers
#
-CONFIG_VIDEO_ASPEED=m
#
# Atmel media platform drivers
@@ -6077,6 +6165,10 @@ CONFIG_VIDEO_CAFE_CCIC=m
#
#
+# Microchip Technology, Inc. media platform drivers
+#
+
+#
# NVidia media platform drivers
#
@@ -6135,6 +6227,8 @@ CONFIG_VIDEO_VIMC=m
CONFIG_VIDEO_VIVID=m
CONFIG_VIDEO_VIVID_CEC=y
CONFIG_VIDEO_VIVID_MAX_DEVS=64
+CONFIG_VIDEO_VISL=m
+# CONFIG_VISL_DEBUGFS is not set
CONFIG_DVB_TEST_DRIVERS=y
CONFIG_DVB_VIDTV=m
@@ -6150,9 +6244,12 @@ CONFIG_MEDIA_COMMON_OPTIONS=y
#
CONFIG_CYPRESS_FIRMWARE=m
CONFIG_TTPCI_EEPROM=m
+CONFIG_UVC_COMMON=m
CONFIG_VIDEO_CX2341X=m
CONFIG_VIDEO_TVEEPROM=m
CONFIG_DVB_B2C2_FLEXCOP=m
+CONFIG_VIDEO_SAA7146=m
+CONFIG_VIDEO_SAA7146_VV=m
CONFIG_SMS_SIANO_MDTV=m
CONFIG_SMS_SIANO_RC=y
# CONFIG_SMS_SIANO_DEBUGFS is not set
@@ -6193,6 +6290,7 @@ CONFIG_VIDEO_IMX219=m
CONFIG_VIDEO_IMX258=m
CONFIG_VIDEO_IMX274=m
CONFIG_VIDEO_IMX290=m
+CONFIG_VIDEO_IMX296=m
CONFIG_VIDEO_IMX319=m
CONFIG_VIDEO_IMX355=m
CONFIG_VIDEO_MAX9271_LIB=m
@@ -6209,6 +6307,7 @@ CONFIG_VIDEO_NOON010PC30=m
CONFIG_VIDEO_OG01A1B=m
CONFIG_VIDEO_OV02A10=m
CONFIG_VIDEO_OV08D10=m
+CONFIG_VIDEO_OV08X40=m
CONFIG_VIDEO_OV13858=m
CONFIG_VIDEO_OV13B10=m
CONFIG_VIDEO_OV2640=m
@@ -6216,6 +6315,7 @@ CONFIG_VIDEO_OV2659=m
CONFIG_VIDEO_OV2680=m
CONFIG_VIDEO_OV2685=m
CONFIG_VIDEO_OV2740=m
+CONFIG_VIDEO_OV4689=m
CONFIG_VIDEO_OV5647=m
CONFIG_VIDEO_OV5648=m
CONFIG_VIDEO_OV5670=m
@@ -6229,6 +6329,7 @@ CONFIG_VIDEO_OV7670=m
CONFIG_VIDEO_OV772X=m
CONFIG_VIDEO_OV7740=m
CONFIG_VIDEO_OV8856=m
+CONFIG_VIDEO_OV8858=m
CONFIG_VIDEO_OV8865=m
CONFIG_VIDEO_OV9640=m
CONFIG_VIDEO_OV9650=m
@@ -6237,7 +6338,6 @@ CONFIG_VIDEO_RDACM20=m
CONFIG_VIDEO_RDACM21=m
CONFIG_VIDEO_RJ54N1=m
CONFIG_VIDEO_S5C73M3=m
-CONFIG_VIDEO_S5K4ECGX=m
CONFIG_VIDEO_S5K5BAF=m
CONFIG_VIDEO_S5K6A3=m
CONFIG_VIDEO_S5K6AA=m
@@ -6275,6 +6375,9 @@ CONFIG_VIDEO_CS53L32A=m
CONFIG_VIDEO_MSP3400=m
CONFIG_VIDEO_SONY_BTF_MPX=m
CONFIG_VIDEO_TDA7432=m
+CONFIG_VIDEO_TDA9840=m
+CONFIG_VIDEO_TEA6415C=m
+CONFIG_VIDEO_TEA6420=m
CONFIG_VIDEO_TVAUDIO=m
CONFIG_VIDEO_UDA1342=m
CONFIG_VIDEO_VP27SMPX=m
@@ -6397,10 +6500,13 @@ CONFIG_DVB_STV6110=m
CONFIG_DVB_TDA10071=m
CONFIG_DVB_TDA10086=m
CONFIG_DVB_TDA8083=m
+CONFIG_DVB_TDA8261=m
CONFIG_DVB_TDA826X=m
CONFIG_DVB_TS2020=m
+CONFIG_DVB_TUA6100=m
CONFIG_DVB_TUNER_CX24113=m
CONFIG_DVB_TUNER_ITD1000=m
+CONFIG_DVB_VES1X93=m
CONFIG_DVB_ZL10036=m
CONFIG_DVB_ZL10039=m
@@ -6420,6 +6526,7 @@ CONFIG_DVB_DIB7000P=m
CONFIG_DVB_DRXD=m
CONFIG_DVB_EC100=m
CONFIG_DVB_GP8PSK_FE=m
+CONFIG_DVB_L64781=m
CONFIG_DVB_MT352=m
CONFIG_DVB_NXT6000=m
CONFIG_DVB_RTL2830=m
@@ -6514,6 +6621,7 @@ CONFIG_DVB_DUMMY_FE=m
# Graphics support
#
CONFIG_APERTURE_HELPERS=y
+CONFIG_VIDEO_NOMODESET=y
CONFIG_AGP=y
CONFIG_AGP_AMD64=m
CONFIG_AGP_INTEL=m
@@ -6525,7 +6633,6 @@ CONFIG_DRM=y
CONFIG_DRM_MIPI_DBI=m
CONFIG_DRM_MIPI_DSI=y
# CONFIG_DRM_DEBUG_MM is not set
-CONFIG_DRM_USE_DYNAMIC_DEBUG=y
CONFIG_DRM_KMS_HELPER=y
CONFIG_DRM_FBDEV_EMULATION=y
CONFIG_DRM_FBDEV_OVERALLOC=100
@@ -6584,7 +6691,6 @@ CONFIG_DRM_AMD_SECURE_DISPLAY=y
CONFIG_HSA_AMD=y
CONFIG_HSA_AMD_SVM=y
CONFIG_DRM_NOUVEAU=m
-# CONFIG_NOUVEAU_LEGACY_CTX_SUPPORT is not set
CONFIG_NOUVEAU_DEBUG=5
CONFIG_NOUVEAU_DEBUG_DEFAULT=3
# CONFIG_NOUVEAU_DEBUG_MMU is not set
@@ -6596,7 +6702,6 @@ CONFIG_DRM_I915_FORCE_PROBE="*"
CONFIG_DRM_I915_CAPTURE_ERROR=y
CONFIG_DRM_I915_COMPRESS_ERROR=y
CONFIG_DRM_I915_USERPTR=y
-CONFIG_DRM_I915_GVT=y
CONFIG_DRM_I915_GVT_KVMGT=m
CONFIG_DRM_I915_PXP=y
CONFIG_DRM_I915_REQUEST_TIMEOUT=20000
@@ -6604,13 +6709,14 @@ CONFIG_DRM_I915_FENCE_TIMEOUT=10000
CONFIG_DRM_I915_USERFAULT_AUTOSUSPEND=250
CONFIG_DRM_I915_HEARTBEAT_INTERVAL=2500
CONFIG_DRM_I915_PREEMPT_TIMEOUT=640
+CONFIG_DRM_I915_PREEMPT_TIMEOUT_COMPUTE=7500
CONFIG_DRM_I915_MAX_REQUEST_BUSYWAIT=8000
CONFIG_DRM_I915_STOP_TIMEOUT=100
CONFIG_DRM_I915_TIMESLICE_DURATION=1
+CONFIG_DRM_I915_GVT=y
CONFIG_DRM_VGEM=m
CONFIG_DRM_VKMS=m
CONFIG_DRM_VMWGFX=m
-CONFIG_DRM_VMWGFX_FBCON=y
CONFIG_DRM_VMWGFX_MKSSTATS=y
CONFIG_DRM_GMA500=m
CONFIG_DRM_UDL=m
@@ -6623,6 +6729,8 @@ CONFIG_DRM_PANEL=y
#
# Display Panels
#
+CONFIG_DRM_PANEL_AUO_A030JTN01=m
+CONFIG_DRM_PANEL_ORISETECH_OTA5601A=m
CONFIG_DRM_PANEL_RASPBERRYPI_TOUCHSCREEN=m
CONFIG_DRM_PANEL_WIDECHIPS_WS2401=m
# end of Display Panels
@@ -6662,7 +6770,6 @@ CONFIG_DRM_SSD130X_SPI=m
CONFIG_DRM_HYPERV=m
# CONFIG_DRM_LEGACY is not set
CONFIG_DRM_PANEL_ORIENTATION_QUIRKS=y
-CONFIG_DRM_NOMODESET=y
CONFIG_DRM_PRIVACY_SCREEN=y
#
@@ -6753,6 +6860,7 @@ CONFIG_LCD_HX8357=m
CONFIG_LCD_OTM3225A=m
CONFIG_BACKLIGHT_CLASS_DEVICE=y
CONFIG_BACKLIGHT_KTD253=m
+CONFIG_BACKLIGHT_KTZ8866=m
CONFIG_BACKLIGHT_LM3533=m
CONFIG_BACKLIGHT_PWM=m
CONFIG_BACKLIGHT_DA903X=m
@@ -6804,6 +6912,9 @@ CONFIG_FRAMEBUFFER_CONSOLE_DEFERRED_TAKEOVER=y
# CONFIG_LOGO is not set
# end of Graphics support
+CONFIG_DRM_ACCEL=y
+CONFIG_DRM_ACCEL_HABANALABS=m
+CONFIG_DRM_ACCEL_IVPU=m
CONFIG_SOUND=m
CONFIG_SOUND_OSS_CORE=y
# CONFIG_SOUND_OSS_CORE_PRECLAIM is not set
@@ -6972,6 +7083,7 @@ CONFIG_SND_HDA_CODEC_SI3054=m
CONFIG_SND_HDA_GENERIC=m
CONFIG_SND_HDA_POWER_SAVE_DEFAULT=1
CONFIG_SND_HDA_INTEL_HDMI_SILENT_STREAM=y
+# CONFIG_SND_HDA_CTL_DEV_ID is not set
# end of HD-Audio
CONFIG_SND_HDA_CORE=m
@@ -7115,9 +7227,11 @@ CONFIG_SND_SOC_INTEL_AVS_MACH_DA7219=m
CONFIG_SND_SOC_INTEL_AVS_MACH_DMIC=m
CONFIG_SND_SOC_INTEL_AVS_MACH_HDAUDIO=m
CONFIG_SND_SOC_INTEL_AVS_MACH_I2S_TEST=m
+CONFIG_SND_SOC_INTEL_AVS_MACH_MAX98927=m
CONFIG_SND_SOC_INTEL_AVS_MACH_MAX98357A=m
CONFIG_SND_SOC_INTEL_AVS_MACH_MAX98373=m
CONFIG_SND_SOC_INTEL_AVS_MACH_NAU8825=m
+CONFIG_SND_SOC_INTEL_AVS_MACH_PROBE=m
CONFIG_SND_SOC_INTEL_AVS_MACH_RT274=m
CONFIG_SND_SOC_INTEL_AVS_MACH_RT286=m
CONFIG_SND_SOC_INTEL_AVS_MACH_RT298=m
@@ -7265,6 +7379,8 @@ CONFIG_SND_SOC_AK5386=m
CONFIG_SND_SOC_AK5558=m
CONFIG_SND_SOC_ALC5623=m
CONFIG_SND_SOC_AW8738=m
+CONFIG_SND_SOC_AW88395_LIB=m
+CONFIG_SND_SOC_AW88395=m
CONFIG_SND_SOC_BD28623=m
# CONFIG_SND_SOC_BT_SCO is not set
CONFIG_SND_SOC_CROS_EC_CODEC=m
@@ -7277,12 +7393,12 @@ CONFIG_SND_SOC_CS35L41_LIB=m
CONFIG_SND_SOC_CS35L41=m
CONFIG_SND_SOC_CS35L41_SPI=m
CONFIG_SND_SOC_CS35L41_I2C=m
-CONFIG_SND_SOC_CS35L45_TABLES=m
CONFIG_SND_SOC_CS35L45=m
CONFIG_SND_SOC_CS35L45_SPI=m
CONFIG_SND_SOC_CS35L45_I2C=m
CONFIG_SND_SOC_CS42L42_CORE=m
CONFIG_SND_SOC_CS42L42=m
+CONFIG_SND_SOC_CS42L42_SDW=m
CONFIG_SND_SOC_CS42L51=m
CONFIG_SND_SOC_CS42L51_I2C=m
CONFIG_SND_SOC_CS42L52=m
@@ -7318,6 +7434,7 @@ CONFIG_SND_SOC_HDAC_HDMI=m
CONFIG_SND_SOC_HDAC_HDA=m
CONFIG_SND_SOC_HDA=m
CONFIG_SND_SOC_ICS43432=m
+CONFIG_SND_SOC_IDT821034=m
CONFIG_SND_SOC_INNO_RK3036=m
CONFIG_SND_SOC_MAX98088=m
CONFIG_SND_SOC_MAX98090=m
@@ -7352,6 +7469,7 @@ CONFIG_SND_SOC_PCM5102A=m
CONFIG_SND_SOC_PCM512x=m
CONFIG_SND_SOC_PCM512x_I2C=m
CONFIG_SND_SOC_PCM512x_SPI=m
+CONFIG_SND_SOC_PEB2466=m
CONFIG_SND_SOC_RK3328=m
CONFIG_SND_SOC_RL6231=m
CONFIG_SND_SOC_RL6347A=m
@@ -7365,6 +7483,7 @@ CONFIG_SND_SOC_RT1019=m
CONFIG_SND_SOC_RT1308=m
CONFIG_SND_SOC_RT1308_SDW=m
CONFIG_SND_SOC_RT1316_SDW=m
+CONFIG_SND_SOC_RT1318_SDW=m
CONFIG_SND_SOC_RT5514=m
CONFIG_SND_SOC_RT5514_SPI=m
CONFIG_SND_SOC_RT5616=m
@@ -7387,6 +7506,7 @@ CONFIG_SND_SOC_RT700_SDW=m
CONFIG_SND_SOC_RT711=m
CONFIG_SND_SOC_RT711_SDW=m
CONFIG_SND_SOC_RT711_SDCA_SDW=m
+CONFIG_SND_SOC_RT712_SDCA_SDW=m
CONFIG_SND_SOC_RT715=m
CONFIG_SND_SOC_RT715_SDW=m
CONFIG_SND_SOC_RT715_SDCA_SDW=m
@@ -7399,6 +7519,7 @@ CONFIG_SND_SOC_SIGMADSP_I2C=m
CONFIG_SND_SOC_SIGMADSP_REGMAP=m
CONFIG_SND_SOC_SIMPLE_AMPLIFIER=m
CONFIG_SND_SOC_SIMPLE_MUX=m
+CONFIG_SND_SOC_SMA1303=m
CONFIG_SND_SOC_SPDIF=m
CONFIG_SND_SOC_SRC4XXX_I2C=m
CONFIG_SND_SOC_SRC4XXX=m
@@ -7469,6 +7590,7 @@ CONFIG_SND_SOC_WM8903=m
CONFIG_SND_SOC_WM8904=m
CONFIG_SND_SOC_WM8940=m
CONFIG_SND_SOC_WM8960=m
+CONFIG_SND_SOC_WM8961=m
CONFIG_SND_SOC_WM8962=m
CONFIG_SND_SOC_WM8974=m
CONFIG_SND_SOC_WM8978=m
@@ -7503,10 +7625,7 @@ CONFIG_SND_SYNTH_EMUX=m
CONFIG_SND_XEN_FRONTEND=m
CONFIG_SND_VIRTIO=m
CONFIG_AC97_BUS=m
-
-#
-# HID support
-#
+CONFIG_HID_SUPPORT=y
CONFIG_HID=y
CONFIG_HID_BATTERY_STRENGTH=y
CONFIG_HIDRAW=y
@@ -7543,6 +7662,7 @@ CONFIG_HID_EMS_FF=m
CONFIG_HID_ELAN=m
CONFIG_HID_ELECOM=m
CONFIG_HID_ELO=m
+CONFIG_HID_EVISION=m
CONFIG_HID_EZKEY=m
CONFIG_HID_FT260=m
CONFIG_HID_GEMBIRD=m
@@ -7617,6 +7737,7 @@ CONFIG_HID_SONY=m
CONFIG_SONY_FF=y
CONFIG_HID_SPEEDLINK=m
CONFIG_HID_STEAM=m
+CONFIG_STEAM_FF=y
CONFIG_HID_STEELSERIES=m
CONFIG_HID_SUNPLUS=m
CONFIG_HID_RMI=m
@@ -7646,6 +7767,12 @@ CONFIG_HID_MCP2221=m
# end of Special HID drivers
#
+# HID-BPF support
+#
+CONFIG_HID_BPF=y
+# end of HID-BPF support
+
+#
# USB HID support
#
CONFIG_USB_HID=m
@@ -7653,12 +7780,8 @@ CONFIG_HID_PID=y
CONFIG_USB_HIDDEV=y
# end of USB HID support
-#
-# I2C HID support
-#
+CONFIG_I2C_HID=m
CONFIG_I2C_HID_ACPI=m
-# end of I2C HID support
-
CONFIG_I2C_HID_CORE=m
#
@@ -7682,8 +7805,6 @@ CONFIG_SURFACE_KBD=m
# end of Surface System Aggregator Module HID support
CONFIG_SURFACE_HID_CORE=m
-# end of HID support
-
CONFIG_USB_OHCI_LITTLE_ENDIAN=y
CONFIG_USB_SUPPORT=y
CONFIG_USB_COMMON=y
@@ -7724,7 +7845,6 @@ CONFIG_USB_EHCI_FSL=m
CONFIG_USB_EHCI_HCD_PLATFORM=m
CONFIG_USB_OXU210HP_HCD=m
CONFIG_USB_ISP116X_HCD=m
-CONFIG_USB_FOTG210_HCD=m
CONFIG_USB_MAX3421_HCD=m
CONFIG_USB_OHCI_HCD=y
CONFIG_USB_OHCI_HCD_PCI=y
@@ -7785,6 +7905,10 @@ CONFIG_USBIP_VHCI_NR_HCS=1
CONFIG_USBIP_HOST=m
CONFIG_USBIP_VUDC=m
# CONFIG_USBIP_DEBUG is not set
+
+#
+# USB dual-mode controller drivers
+#
CONFIG_USB_CDNS_SUPPORT=m
CONFIG_USB_CDNS_HOST=y
CONFIG_USB_CDNS3=m
@@ -7961,7 +8085,6 @@ CONFIG_U_SERIAL_CONSOLE=y
#
# USB Peripheral Controller
#
-CONFIG_USB_FOTG210_UDC=m
CONFIG_USB_GR_UDC=m
CONFIG_USB_R8A66597=m
CONFIG_USB_PXA27X=m
@@ -8084,6 +8207,7 @@ CONFIG_TYPEC_WUSB3801=m
# USB Type-C Multiplexer/DeMultiplexer Switch support
#
CONFIG_TYPEC_MUX_FSA4480=m
+CONFIG_TYPEC_MUX_GPIO_SBU=m
CONFIG_TYPEC_MUX_PI3USB30532=m
CONFIG_TYPEC_MUX_INTEL_PMC=m
# end of USB Type-C Multiplexer/DeMultiplexer Switch support
@@ -8141,7 +8265,6 @@ CONFIG_SCSI_UFSHCD_PCI=m
# CONFIG_SCSI_UFS_DWC_TC_PCI is not set
CONFIG_SCSI_UFSHCD_PLATFORM=m
CONFIG_SCSI_UFS_CDNS_PLATFORM=m
-# CONFIG_SCSI_UFS_DWC_TC_PLATFORM is not set
CONFIG_MEMSTICK=m
# CONFIG_MEMSTICK_DEBUG is not set
@@ -8296,6 +8419,7 @@ CONFIG_INFINIBAND_HFI1=m
# CONFIG_HFI1_DEBUG_SDMA_ORDER is not set
# CONFIG_SDMA_VERBOSITY is not set
CONFIG_INFINIBAND_IRDMA=m
+CONFIG_MANA_INFINIBAND=m
CONFIG_MLX4_INFINIBAND=m
CONFIG_MLX5_INFINIBAND=m
CONFIG_INFINIBAND_MTHCA=m
@@ -8337,7 +8461,6 @@ CONFIG_EDAC_IE31200=m
CONFIG_EDAC_X38=m
CONFIG_EDAC_I5400=m
CONFIG_EDAC_I7CORE=m
-CONFIG_EDAC_I5000=m
CONFIG_EDAC_I5100=m
CONFIG_EDAC_I7300=m
CONFIG_EDAC_SBRIDGE=m
@@ -8464,7 +8587,6 @@ CONFIG_RTC_DRV_M48T59=m
CONFIG_RTC_DRV_MSM6242=m
CONFIG_RTC_DRV_BQ4802=m
CONFIG_RTC_DRV_RP5C01=m
-CONFIG_RTC_DRV_V3020=m
CONFIG_RTC_DRV_WM831X=m
CONFIG_RTC_DRV_WM8350=m
CONFIG_RTC_DRV_PCF50633=m
@@ -8502,6 +8624,7 @@ CONFIG_INTEL_IDXD_SVM=y
CONFIG_INTEL_IDXD_PERFMON=y
CONFIG_INTEL_IOATDMA=m
CONFIG_PLX_DMA=m
+CONFIG_XILINX_XDMA=m
CONFIG_AMD_PTDMA=m
CONFIG_QCOM_HIDMA_MGMT=m
CONFIG_QCOM_HIDMA=m
@@ -8552,9 +8675,10 @@ CONFIG_UIO_MF624=m
CONFIG_UIO_HV_GENERIC=m
CONFIG_UIO_DFL=m
CONFIG_VFIO=m
+CONFIG_VFIO_CONTAINER=y
CONFIG_VFIO_IOMMU_TYPE1=m
-CONFIG_VFIO_VIRQFD=m
# CONFIG_VFIO_NOIOMMU is not set
+CONFIG_VFIO_VIRQFD=y
CONFIG_VFIO_PCI_CORE=m
CONFIG_VFIO_PCI_MMAP=y
CONFIG_VFIO_PCI_INTX=y
@@ -8571,6 +8695,7 @@ CONFIG_NITRO_ENCLAVES=m
CONFIG_ACRN_HSM=m
CONFIG_EFI_SECRET=m
CONFIG_SEV_GUEST=m
+CONFIG_TDX_GUEST_DRIVER=m
CONFIG_VIRTIO_ANCHOR=y
CONFIG_VIRTIO=y
CONFIG_VIRTIO_PCI_LIB=m
@@ -8594,8 +8719,10 @@ CONFIG_VDPA_USER=m
CONFIG_IFCVF=m
CONFIG_MLX5_VDPA=y
CONFIG_MLX5_VDPA_NET=m
+# CONFIG_MLX5_VDPA_STEERING_DEBUG is not set
CONFIG_VP_VDPA=m
CONFIG_ALIBABA_ENI_VDPA=m
+CONFIG_SNET_VDPA=m
CONFIG_VHOST_IOTLB=m
CONFIG_VHOST_RING=m
CONFIG_VHOST=m
@@ -8666,7 +8793,6 @@ CONFIG_RTLLIB_CRYPTO_WEP=m
CONFIG_RTL8192E=m
CONFIG_RTL8723BS=m
CONFIG_R8712U=m
-CONFIG_R8188EU=m
CONFIG_RTS5208=m
CONFIG_VT6655=m
CONFIG_VT6656=m
@@ -8737,6 +8863,11 @@ CONFIG_VIDEO_ATOMISP_GC0310=m
CONFIG_VIDEO_ATOMISP_OV2680=m
CONFIG_VIDEO_ATOMISP_OV5693=m
CONFIG_VIDEO_ATOMISP_LM3554=m
+CONFIG_DVB_AV7110_IR=y
+CONFIG_DVB_AV7110=m
+CONFIG_DVB_AV7110_OSD=y
+CONFIG_DVB_BUDGET_PATCH=m
+CONFIG_DVB_SP8870=m
CONFIG_VIDEO_IPU3_IMGU=m
# CONFIG_STAGING_MEDIA_DEPRECATED is not set
CONFIG_LTE_GDM724X=m
@@ -8759,6 +8890,7 @@ CONFIG_CROS_EC=m
CONFIG_CROS_EC_I2C=m
CONFIG_CROS_EC_ISHTP=m
CONFIG_CROS_EC_SPI=m
+CONFIG_CROS_EC_UART=m
CONFIG_CROS_EC_LPC=m
CONFIG_CROS_EC_PROTO=y
CONFIG_CROS_KBD_LED_BACKLIGHT=m
@@ -8768,6 +8900,7 @@ CONFIG_CROS_EC_DEBUGFS=m
CONFIG_CROS_EC_SENSORHUB=m
CONFIG_CROS_EC_SYSFS=m
CONFIG_CROS_EC_TYPEC=m
+CONFIG_CROS_HPS_I2C=m
CONFIG_CROS_USBPD_LOGGER=m
CONFIG_CROS_USBPD_NOTIFY=m
CONFIG_CHROMEOS_PRIVACY_SCREEN=m
@@ -8837,15 +8970,17 @@ CONFIG_DELL_WMI=m
CONFIG_DELL_WMI_PRIVACY=y
CONFIG_DELL_WMI_AIO=m
CONFIG_DELL_WMI_DESCRIPTOR=m
+CONFIG_DELL_WMI_DDV=m
CONFIG_DELL_WMI_LED=m
CONFIG_DELL_WMI_SYSMAN=m
CONFIG_AMILO_RFKILL=m
CONFIG_FUJITSU_LAPTOP=m
CONFIG_FUJITSU_TABLET=m
CONFIG_GPD_POCKET_FAN=m
+CONFIG_X86_PLATFORM_DRIVERS_HP=y
CONFIG_HP_ACCEL=m
-CONFIG_WIRELESS_HOTKEY=m
CONFIG_HP_WMI=m
+CONFIG_WIRELESS_HOTKEY=m
CONFIG_IBM_RTL=m
CONFIG_IDEAPAD_LAPTOP=m
CONFIG_SENSORS_HDAPS=m
@@ -8859,6 +8994,7 @@ CONFIG_THINKPAD_ACPI_HOTKEY_POLL=y
CONFIG_THINKPAD_LMI=m
CONFIG_INTEL_ATOMISP2_PDX86=y
CONFIG_INTEL_ATOMISP2_LED=m
+CONFIG_INTEL_IFS=m
CONFIG_INTEL_SAR_INT1092=m
CONFIG_INTEL_SKL_INT3472=m
CONFIG_INTEL_PMC_CORE=y
@@ -8896,6 +9032,7 @@ CONFIG_INTEL_PUNIT_IPC=m
CONFIG_INTEL_RST=m
CONFIG_INTEL_SDSI=m
CONFIG_INTEL_SMARTCONNECT=m
+CONFIG_INTEL_TPMI=m
CONFIG_INTEL_TURBO_MAX_3=y
CONFIG_INTEL_VSEC=m
CONFIG_MSI_LAPTOP=m
@@ -8984,6 +9121,8 @@ CONFIG_INTEL_IOMMU_SVM=y
# CONFIG_INTEL_IOMMU_DEFAULT_ON is not set
CONFIG_INTEL_IOMMU_FLOPPY_WA=y
CONFIG_INTEL_IOMMU_SCALABLE_MODE_DEFAULT_ON=y
+CONFIG_INTEL_IOMMU_PERF_EVENTS=y
+CONFIG_IOMMUFD=m
CONFIG_IRQ_REMAP=y
CONFIG_HYPERV_IOMMU=y
CONFIG_VIRTIO_IOMMU=m
@@ -9051,6 +9190,8 @@ CONFIG_SOUNDWIRE_GENERIC_ALLOCATION=m
#
# end of Enable LiteX SoC Builder specific drivers
+CONFIG_WPCM450_SOC=m
+
#
# Qualcomm SoC drivers
#
@@ -9160,6 +9301,9 @@ CONFIG_IIO_CROS_EC_ACCEL_LEGACY=m
CONFIG_IIO_ST_ACCEL_3AXIS=m
CONFIG_IIO_ST_ACCEL_I2C_3AXIS=m
CONFIG_IIO_ST_ACCEL_SPI_3AXIS=m
+CONFIG_IIO_KX022A=m
+CONFIG_IIO_KX022A_SPI=m
+CONFIG_IIO_KX022A_I2C=m
CONFIG_KXSD9=m
CONFIG_KXSD9_SPI=m
CONFIG_KXSD9_I2C=m
@@ -9186,6 +9330,7 @@ CONFIG_STK8BA50=m
# Analog to digital converters
#
CONFIG_AD_SIGMA_DELTA=m
+CONFIG_AD4130=m
CONFIG_AD7091R5=m
CONFIG_AD7124=m
CONFIG_AD7192=m
@@ -9226,6 +9371,7 @@ CONFIG_MAX1027=m
CONFIG_MAX11100=m
CONFIG_MAX1118=m
CONFIG_MAX11205=m
+CONFIG_MAX11410=m
CONFIG_MAX1241=m
CONFIG_MAX1363=m
CONFIG_MAX9611=m
@@ -9233,6 +9379,7 @@ CONFIG_MCP320X=m
CONFIG_MCP3422=m
CONFIG_MCP3911=m
CONFIG_MEDIATEK_MT6360_ADC=m
+CONFIG_MEDIATEK_MT6370_ADC=m
CONFIG_MEN_Z188_ADC=m
CONFIG_MP2629_ADC=m
CONFIG_NAU7802=m
@@ -9247,12 +9394,14 @@ CONFIG_TI_ADC108S102=m
CONFIG_TI_ADC128S052=m
CONFIG_TI_ADC161S626=m
CONFIG_TI_ADS1015=m
+CONFIG_TI_ADS7924=m
CONFIG_TI_ADS7950=m
CONFIG_TI_ADS8344=m
CONFIG_TI_ADS8688=m
CONFIG_TI_ADS124S08=m
CONFIG_TI_ADS131E08=m
CONFIG_TI_AM335X_ADC=m
+CONFIG_TI_LMP92064=m
CONFIG_TI_TLC4541=m
CONFIG_TI_TSC2046=m
CONFIG_TWL4030_MADC=m
@@ -9265,6 +9414,7 @@ CONFIG_XILINX_XADC=m
#
# Analog to digital and digital to analog converters
#
+CONFIG_AD74115=m
CONFIG_AD74413R=m
# end of Analog to digital and digital to analog converters
@@ -9377,6 +9527,7 @@ CONFIG_LTC1660=m
CONFIG_LTC2632=m
CONFIG_M62332=m
CONFIG_MAX517=m
+CONFIG_MAX5522=m
CONFIG_MAX5821=m
CONFIG_MCP4725=m
CONFIG_MCP4922=m
@@ -9414,6 +9565,7 @@ CONFIG_AD9523=m
#
CONFIG_ADF4350=m
CONFIG_ADF4371=m
+CONFIG_ADF4377=m
CONFIG_ADMV1013=m
CONFIG_ADMV1014=m
CONFIG_ADMV4420=m
@@ -9590,6 +9742,7 @@ CONFIG_SENSORS_HMC5843_SPI=m
CONFIG_SENSORS_RM3100=m
CONFIG_SENSORS_RM3100_I2C=m
CONFIG_SENSORS_RM3100_SPI=m
+CONFIG_TI_TMAG5273=m
CONFIG_YAMAHA_YAS530=m
# end of Magnetometer sensors
@@ -9722,6 +9875,7 @@ CONFIG_TMP007=m
CONFIG_TMP117=m
CONFIG_TSYS01=m
CONFIG_TSYS02D=m
+CONFIG_MAX30208=m
CONFIG_MAX31856=m
CONFIG_MAX31865=m
# end of Temperature sensors
@@ -9828,6 +9982,7 @@ CONFIG_DAX=y
CONFIG_DEV_DAX=m
CONFIG_DEV_DAX_PMEM=m
CONFIG_DEV_DAX_HMEM=m
+CONFIG_DEV_DAX_CXL=m
CONFIG_DEV_DAX_HMEM_DEVICES=y
CONFIG_DEV_DAX_KMEM=m
CONFIG_NVMEM=y
@@ -9875,6 +10030,8 @@ CONFIG_FPGA_DFL_NIOS_INTEL_PAC_N3000=m
CONFIG_FPGA_DFL_PCI=m
CONFIG_FPGA_M10_BMC_SEC_UPDATE=m
CONFIG_FPGA_MGR_MICROCHIP_SPI=m
+CONFIG_FPGA_MGR_LATTICE_SYSCONFIG=m
+CONFIG_FPGA_MGR_LATTICE_SYSCONFIG_SPI=m
CONFIG_TEE=m
CONFIG_AMDTEE=m
CONFIG_MULTIPLEXER=m
@@ -9894,8 +10051,8 @@ CONFIG_SLIMBUS=m
CONFIG_SLIM_QCOM_CTRL=m
CONFIG_INTERCONNECT=y
CONFIG_COUNTER=m
-CONFIG_INTERRUPT_CNT=m
CONFIG_INTEL_QEP=m
+CONFIG_INTERRUPT_CNT=m
CONFIG_MOST=m
CONFIG_MOST_USB_HDM=m
CONFIG_MOST_CDEV=m
@@ -9910,6 +10067,7 @@ CONFIG_HTE=y
CONFIG_DCACHE_WORD_ACCESS=y
CONFIG_VALIDATE_FS_PARSER=y
CONFIG_FS_IOMAP=y
+CONFIG_LEGACY_DIRECT_IO=y
# CONFIG_EXT2_FS is not set
# CONFIG_EXT3_FS is not set
CONFIG_EXT4_FS=m
@@ -9982,7 +10140,6 @@ CONFIG_FS_ENCRYPTION=y
CONFIG_FS_ENCRYPTION_ALGS=m
CONFIG_FS_ENCRYPTION_INLINE_CRYPT=y
CONFIG_FS_VERITY=y
-# CONFIG_FS_VERITY_DEBUG is not set
CONFIG_FS_VERITY_BUILTIN_SIGNATURES=y
CONFIG_FSNOTIFY=y
CONFIG_DNOTIFY=y
@@ -10118,9 +10275,11 @@ CONFIG_CRAMFS_MTD=y
CONFIG_SQUASHFS=m
# CONFIG_SQUASHFS_FILE_CACHE is not set
CONFIG_SQUASHFS_FILE_DIRECT=y
-# CONFIG_SQUASHFS_DECOMP_SINGLE is not set
-# CONFIG_SQUASHFS_DECOMP_MULTI is not set
+CONFIG_SQUASHFS_DECOMP_SINGLE=y
+CONFIG_SQUASHFS_DECOMP_MULTI=y
CONFIG_SQUASHFS_DECOMP_MULTI_PERCPU=y
+CONFIG_SQUASHFS_CHOICE_DECOMP_BY_MOUNT=y
+CONFIG_SQUASHFS_MOUNT_DECOMP_THREADS=y
CONFIG_SQUASHFS_XATTR=y
CONFIG_SQUASHFS_ZLIB=y
CONFIG_SQUASHFS_LZ4=y
@@ -10177,6 +10336,8 @@ CONFIG_EROFS_FS_SECURITY=y
CONFIG_EROFS_FS_ZIP=y
CONFIG_EROFS_FS_ZIP_LZMA=y
CONFIG_EROFS_FS_ONDEMAND=y
+CONFIG_EROFS_FS_PCPU_KTHREAD=y
+CONFIG_EROFS_FS_PCPU_KTHREAD_HIPRI=y
CONFIG_VBOXSF_FS=m
CONFIG_NETWORK_FILESYSTEMS=y
CONFIG_NFS_FS=m
@@ -10200,7 +10361,7 @@ CONFIG_NFS_DEBUG=y
# CONFIG_NFS_DISABLE_UDP_SUPPORT is not set
# CONFIG_NFS_V4_2_READ_PLUS is not set
CONFIG_NFSD=m
-CONFIG_NFSD_V2_ACL=y
+# CONFIG_NFSD_V2 is not set
CONFIG_NFSD_V3_ACL=y
CONFIG_NFSD_V4=y
CONFIG_NFSD_PNFS=y
@@ -10220,7 +10381,11 @@ CONFIG_SUNRPC_GSS=m
CONFIG_SUNRPC_BACKCHANNEL=y
CONFIG_SUNRPC_SWAP=y
CONFIG_RPCSEC_GSS_KRB5=m
-CONFIG_SUNRPC_DISABLE_INSECURE_ENCTYPES=y
+CONFIG_RPCSEC_GSS_KRB5_CRYPTOSYSTEM=y
+# CONFIG_RPCSEC_GSS_KRB5_ENCTYPES_DES is not set
+CONFIG_RPCSEC_GSS_KRB5_ENCTYPES_AES_SHA1=y
+CONFIG_RPCSEC_GSS_KRB5_ENCTYPES_CAMELLIA=y
+CONFIG_RPCSEC_GSS_KRB5_ENCTYPES_AES_SHA2=y
CONFIG_SUNRPC_DEBUG=y
CONFIG_SUNRPC_XPRT_RDMA=m
CONFIG_CEPH_FS=m
@@ -10451,7 +10616,6 @@ CONFIG_CRYPTO_MANAGER=y
CONFIG_CRYPTO_MANAGER2=y
CONFIG_CRYPTO_USER=m
CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y
-CONFIG_CRYPTO_GF128MUL=m
CONFIG_CRYPTO_NULL=m
CONFIG_CRYPTO_NULL2=y
CONFIG_CRYPTO_PCRYPT=m
@@ -10570,7 +10734,7 @@ CONFIG_CRYPTO_CRC64_ROCKSOFT=y
CONFIG_CRYPTO_DEFLATE=m
CONFIG_CRYPTO_LZO=m
CONFIG_CRYPTO_842=m
-CONFIG_CRYPTO_LZ4=y
+CONFIG_CRYPTO_LZ4=m
CONFIG_CRYPTO_LZ4HC=m
CONFIG_CRYPTO_ZSTD=y
# end of Compression
@@ -10624,6 +10788,8 @@ CONFIG_CRYPTO_TWOFISH_X86_64=m
CONFIG_CRYPTO_TWOFISH_X86_64_3WAY=m
CONFIG_CRYPTO_TWOFISH_AVX_X86_64=m
CONFIG_CRYPTO_ARIA_AESNI_AVX_X86_64=m
+CONFIG_CRYPTO_ARIA_AESNI_AVX2_X86_64=m
+CONFIG_CRYPTO_ARIA_GFNI_AVX512_X86_64=m
CONFIG_CRYPTO_CHACHA20_X86_64=m
CONFIG_CRYPTO_AEGIS128_AESNI_SSE2=m
CONFIG_CRYPTO_NHPOLY1305_SSE2=m
@@ -10723,6 +10889,7 @@ CONFIG_ARCH_USE_SYM_ANNOTATIONS=y
CONFIG_CRYPTO_LIB_UTILS=y
CONFIG_CRYPTO_LIB_AES=y
CONFIG_CRYPTO_LIB_ARC4=m
+CONFIG_CRYPTO_LIB_GF128MUL=m
CONFIG_CRYPTO_ARCH_HAVE_LIB_BLAKE2S=y
CONFIG_CRYPTO_LIB_BLAKE2S_GENERIC=y
CONFIG_CRYPTO_ARCH_HAVE_LIB_CHACHA=m
@@ -10765,7 +10932,7 @@ CONFIG_ZLIB_INFLATE=y
CONFIG_ZLIB_DEFLATE=y
CONFIG_LZO_COMPRESS=y
CONFIG_LZO_DECOMPRESS=y
-CONFIG_LZ4_COMPRESS=y
+CONFIG_LZ4_COMPRESS=m
CONFIG_LZ4HC_COMPRESS=m
CONFIG_LZ4_DECOMPRESS=y
CONFIG_ZSTD_COMMON=y
@@ -10799,6 +10966,7 @@ CONFIG_TEXTSEARCH_BM=m
CONFIG_TEXTSEARCH_FSM=m
CONFIG_BTREE=y
CONFIG_INTERVAL_TREE=y
+CONFIG_INTERVAL_TREE_SPAN_ITER=y
CONFIG_XARRAY_MULTI=y
CONFIG_ASSOCIATIVE_ARRAY=y
CONFIG_HAS_IOMEM=y
@@ -10827,7 +10995,6 @@ CONFIG_CMA_ALIGNMENT=8
# CONFIG_DMA_MAP_BENCHMARK is not set
CONFIG_SGL_ALLOC=y
CONFIG_CHECK_SIGNATURE=y
-# CONFIG_FORCE_NR_CPUS is not set
CONFIG_CPU_RMAP=y
CONFIG_DQL=y
CONFIG_GLOB=y
@@ -10862,6 +11029,7 @@ CONFIG_FONT_TER16x32=y
CONFIG_SG_POOL=y
CONFIG_ARCH_HAS_PMEM_API=y
CONFIG_MEMREGION=y
+CONFIG_ARCH_HAS_CPU_CACHE_INVALIDATE_MEMREGION=y
CONFIG_ARCH_HAS_UACCESS_FLUSHCACHE=y
CONFIG_ARCH_HAS_COPY_MC=y
CONFIG_ARCH_STACKWALK=y
@@ -10908,10 +11076,12 @@ CONFIG_AS_HAS_NON_CONST_LEB128=y
# CONFIG_DEBUG_INFO_DWARF4 is not set
CONFIG_DEBUG_INFO_DWARF5=y
# CONFIG_DEBUG_INFO_REDUCED is not set
-# CONFIG_DEBUG_INFO_COMPRESSED is not set
+CONFIG_DEBUG_INFO_COMPRESSED_NONE=y
+# CONFIG_DEBUG_INFO_COMPRESSED_ZLIB is not set
# CONFIG_DEBUG_INFO_SPLIT is not set
CONFIG_DEBUG_INFO_BTF=y
CONFIG_PAHOLE_HAS_SPLIT_BTF=y
+CONFIG_PAHOLE_HAS_LANG_EXCLUDE=y
CONFIG_DEBUG_INFO_BTF_MODULES=y
# CONFIG_MODULE_ALLOW_BTF_MISMATCH is not set
# CONFIG_GDB_SCRIPTS is not set
@@ -10970,10 +11140,10 @@ CONFIG_DEBUG_WX=y
CONFIG_GENERIC_PTDUMP=y
CONFIG_PTDUMP_CORE=y
# CONFIG_PTDUMP_DEBUGFS is not set
-# CONFIG_DEBUG_OBJECTS is not set
-CONFIG_SHRINKER_DEBUG=y
CONFIG_HAVE_DEBUG_KMEMLEAK=y
# CONFIG_DEBUG_KMEMLEAK is not set
+# CONFIG_DEBUG_OBJECTS is not set
+CONFIG_SHRINKER_DEBUG=y
# CONFIG_DEBUG_STACK_USAGE is not set
CONFIG_SCHED_STACK_END_CHECK=y
CONFIG_ARCH_HAS_DEBUG_VM_PGTABLE=y
@@ -11052,6 +11222,7 @@ CONFIG_LOCK_DEBUGGING_SUPPORT=y
# CONFIG_CSD_LOCK_WAIT_DEBUG is not set
# end of Lock Debugging (spinlocks, mutexes, etc...)
+# CONFIG_NMI_CHECK_CPU is not set
# CONFIG_DEBUG_IRQFLAGS is not set
CONFIG_STACKTRACE=y
# CONFIG_WARN_ALL_UNSEEDED_RANDOM is not set
@@ -11078,6 +11249,7 @@ CONFIG_DEBUG_LIST=y
# CONFIG_RCU_REF_SCALE_TEST is not set
CONFIG_RCU_CPU_STALL_TIMEOUT=60
CONFIG_RCU_EXP_CPU_STALL_TIMEOUT=0
+# CONFIG_RCU_CPU_STALL_CPUTIME is not set
# CONFIG_RCU_TRACE is not set
# CONFIG_RCU_EQS_DEBUG is not set
# end of RCU Debugging
@@ -11085,6 +11257,7 @@ CONFIG_RCU_EXP_CPU_STALL_TIMEOUT=0
# CONFIG_DEBUG_WQ_FORCE_RR_CPU is not set
# CONFIG_CPU_HOTPLUG_STATE_CONTROL is not set
CONFIG_LATENCYTOP=y
+# CONFIG_DEBUG_CGROUP_REF is not set
CONFIG_USER_STACKTRACE_SUPPORT=y
CONFIG_NOP_TRACER=y
CONFIG_HAVE_RETHOOK=y
@@ -11100,6 +11273,7 @@ CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
CONFIG_HAVE_SYSCALL_TRACEPOINTS=y
CONFIG_HAVE_FENTRY=y
CONFIG_HAVE_OBJTOOL_MCOUNT=y
+CONFIG_HAVE_OBJTOOL_NOP_MCOUNT=y
CONFIG_HAVE_C_RECORDMCOUNT=y
CONFIG_HAVE_BUILDTIME_MCOUNT_SORT=y
CONFIG_BUILDTIME_MCOUNT_SORT=y
@@ -11207,6 +11381,7 @@ CONFIG_ARCH_HAS_KCOV=y
CONFIG_CC_HAS_SANCOV_TRACE_PC=y
# CONFIG_KCOV is not set
CONFIG_RUNTIME_TESTING_MENU=y
+# CONFIG_TEST_DHRY is not set
# CONFIG_LKDTM is not set
# CONFIG_TEST_MIN_HEAP is not set
# CONFIG_TEST_DIV64 is not set
@@ -11221,7 +11396,6 @@ CONFIG_ASYNC_RAID6_TEST=m
# CONFIG_TEST_HEXDUMP is not set
# CONFIG_STRING_SELFTEST is not set
# CONFIG_TEST_STRING_HELPERS is not set
-# CONFIG_TEST_STRSCPY is not set
# CONFIG_TEST_KSTRTOX is not set
# CONFIG_TEST_PRINTF is not set
# CONFIG_TEST_SCANF is not set
@@ -11230,7 +11404,6 @@ CONFIG_ASYNC_RAID6_TEST=m
# CONFIG_TEST_XARRAY is not set
# CONFIG_TEST_MAPLE_TREE is not set
# CONFIG_TEST_RHASHTABLE is not set
-# CONFIG_TEST_SIPHASH is not set
# CONFIG_TEST_IDA is not set
# CONFIG_TEST_PARMAN is not set
# CONFIG_TEST_LKM is not set
diff --git a/sys-kernel_arch-sources-g14_files-0004-5.17+--more-uarches-for-kernel.patch b/sys-kernel_arch-sources-g14_files-0004-5.17+--more-uarches-for-kernel.patch
index b9c03cb605f3..e5211f4b5b0a 100644
--- a/sys-kernel_arch-sources-g14_files-0004-5.17+--more-uarches-for-kernel.patch
+++ b/sys-kernel_arch-sources-g14_files-0004-5.17+--more-uarches-for-kernel.patch
@@ -1,10 +1,6 @@
-From b5892719c43f739343c628e3d357471a3bdaa368 Mon Sep 17 00:00:00 2001
-From: graysky <graysky@archlinux.us>
-Date: Tue, 15 Mar 2022 05:58:43 -0400
-Subject: [PATCH] more uarches for kernel 5.17+
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
+From 70d4906b87983ed2ed5da78930a701625d881dd0 Mon Sep 17 00:00:00 2001
+From: graysky <therealgraysky@proton.me>
+Date: Thu, 5 Jan 2023 14:29:37 -0500
FEATURES
This patch adds additional CPU options to the Linux kernel accessible under:
@@ -36,6 +32,7 @@ CPU-specific microarchitectures include:
• AMD Family 17h (Zen)
• AMD Family 17h (Zen 2)
• AMD Family 19h (Zen 3)†
+• AMD Family 19h (Zen 4)§
• Intel Silvermont low-power processors
• Intel Goldmont low-power processors (Apollo Lake and Denverton)
• Intel Goldmont Plus low-power processors (Gemini Lake)
@@ -52,14 +49,18 @@ CPU-specific microarchitectures include:
• Intel Xeon (Cascade Lake)
• Intel Xeon (Cooper Lake)*
• Intel 3rd Gen 10nm++ i3/i5/i7/i9-family (Tiger Lake)*
-• Intel 3rd Gen 10nm++ Xeon (Sapphire Rapids)‡
+• Intel 4th Gen 10nm++ Xeon (Sapphire Rapids)‡
• Intel 11th Gen i3/i5/i7/i9-family (Rocket Lake)‡
• Intel 12th Gen i3/i5/i7/i9-family (Alder Lake)‡
+• Intel 13th Gen i3/i5/i7/i9-family (Raptor Lake)§
+• Intel 14th Gen i3/i5/i7/i9-family (Meteor Lake)§
+• Intel 5th Gen 10nm++ Xeon (Emerald Rapids)§
Notes: If not otherwise noted, gcc >=9.1 is required for support.
*Requires gcc >=10.1 or clang >=10.0
†Required gcc >=10.3 or clang >=12.0
‡Required gcc >=11.1 or clang >=12.0
+ §Required gcc >=13.0 or clang >=15.0.5
It also offers to compile passing the 'native' option which, "selects the CPU
to generate code for at compilation time by determining the processor type of
@@ -98,16 +99,14 @@ REFERENCES
3. https://bugzilla.kernel.org/show_bug.cgi?id=77461
4. https://github.com/graysky2/kernel_gcc_patch/issues/15
5. http://www.linuxforge.net/docs/linux/linux-gcc.php
-
-Signed-off-by: graysky <graysky@archlinux.us>
---
- arch/x86/Kconfig.cpu | 332 ++++++++++++++++++++++++++++++--
- arch/x86/Makefile | 40 +++-
- arch/x86/include/asm/vermagic.h | 66 +++++++
- 3 files changed, 424 insertions(+), 14 deletions(-)
+ arch/x86/Kconfig.cpu | 427 ++++++++++++++++++++++++++++++--
+ arch/x86/Makefile | 44 +++-
+ arch/x86/include/asm/vermagic.h | 74 ++++++
+ 3 files changed, 528 insertions(+), 17 deletions(-)
diff --git a/arch/x86/Kconfig.cpu b/arch/x86/Kconfig.cpu
-index 542377cd419d..22b919cdb6d1 100644
+index 542377cd419d..f589971df2d3 100644
--- a/arch/x86/Kconfig.cpu
+++ b/arch/x86/Kconfig.cpu
@@ -157,7 +157,7 @@ config MPENTIUM4
@@ -128,7 +127,7 @@ index 542377cd419d..22b919cdb6d1 100644
depends on X86_32
help
Select this for an AMD Athlon K7-family processor. Enables use of
-@@ -173,12 +173,98 @@ config MK7
+@@ -173,12 +173,106 @@ config MK7
flags to GCC.
config MK8
@@ -225,10 +224,18 @@ index 542377cd419d..22b919cdb6d1 100644
+
+ Enables -march=znver3
+
++config MZEN4
++ bool "AMD Zen 4"
++ depends on (CC_IS_GCC && GCC_VERSION >= 130000) || (CC_IS_CLANG && CLANG_VERSION >= 160000)
++ help
++ Select this for AMD Family 19h Zen 4 processors.
++
++ Enables -march=znver4
++
config MCRUSOE
bool "Crusoe"
depends on X86_32
-@@ -270,7 +356,7 @@ config MPSC
+@@ -270,7 +364,7 @@ config MPSC
in /proc/cpuinfo. Family 15 is an older Xeon, Family 6 a newer one.
config MCORE2
@@ -237,7 +244,7 @@ index 542377cd419d..22b919cdb6d1 100644
help
Select this for Intel Core 2 and newer Core 2 Xeons (Xeon 51xx and
-@@ -278,6 +364,8 @@ config MCORE2
+@@ -278,6 +372,8 @@ config MCORE2
family in /proc/cpuinfo. Newer ones have 6 and older ones 15
(not a typo)
@@ -246,7 +253,7 @@ index 542377cd419d..22b919cdb6d1 100644
config MATOM
bool "Intel Atom"
help
-@@ -287,6 +375,182 @@ config MATOM
+@@ -287,6 +383,212 @@ config MATOM
accordingly optimized code. Use a recent GCC with specific Atom
support in order to fully benefit from selecting this option.
@@ -402,7 +409,7 @@ index 542377cd419d..22b919cdb6d1 100644
+ select X86_P6_NOP
+ help
+
-+ Select this for third-generation 10 nm process processors in the Sapphire Rapids family.
++ Select this for fourth-generation 10 nm process processors in the Sapphire Rapids family.
+
+ Enables -march=sapphirerapids
+
@@ -426,10 +433,40 @@ index 542377cd419d..22b919cdb6d1 100644
+
+ Enables -march=alderlake
+
++config MRAPTORLAKE
++ bool "Intel Raptor Lake"
++ depends on (CC_IS_GCC && GCC_VERSION >= 130000) || (CC_IS_CLANG && CLANG_VERSION >= 150500)
++ select X86_P6_NOP
++ help
++
++ Select this for thirteenth-generation processors in the Raptor Lake family.
++
++ Enables -march=raptorlake
++
++config MMETEORLAKE
++ bool "Intel Meteor Lake"
++ depends on (CC_IS_GCC && GCC_VERSION >= 130000) || (CC_IS_CLANG && CLANG_VERSION >= 150500)
++ select X86_P6_NOP
++ help
++
++ Select this for fourteenth-generation processors in the Meteor Lake family.
++
++ Enables -march=meteorlake
++
++config MEMERALDRAPIDS
++ bool "Intel Emerald Rapids"
++ depends on (CC_IS_GCC && GCC_VERSION > 130000) || (CC_IS_CLANG && CLANG_VERSION >= 150500)
++ select X86_P6_NOP
++ help
++
++ Select this for fifth-generation 10 nm process processors in the Emerald Rapids family.
++
++ Enables -march=emeraldrapids
++
config GENERIC_CPU
bool "Generic-x86-64"
depends on X86_64
-@@ -294,6 +558,50 @@ config GENERIC_CPU
+@@ -294,6 +596,50 @@ config GENERIC_CPU
Generic x86-64 CPU.
Run equally well on all x86-64 CPUs.
@@ -480,66 +517,132 @@ index 542377cd419d..22b919cdb6d1 100644
endchoice
config X86_GENERIC
-@@ -318,7 +626,7 @@ config X86_INTERNODE_CACHE_SHIFT
+@@ -318,9 +664,17 @@ config X86_INTERNODE_CACHE_SHIFT
config X86_L1_CACHE_SHIFT
int
default "7" if MPENTIUM4 || MPSC
- default "6" if MK7 || MK8 || MPENTIUMM || MCORE2 || MATOM || MVIAC7 || X86_GENERIC || GENERIC_CPU
-+ default "6" if MK7 || MK8 || MPENTIUMM || MCORE2 || MATOM || MVIAC7 || MK8SSE3 || MK10 || MBARCELONA || MBOBCAT || MJAGUAR || MBULLDOZER || MPILEDRIVER || MSTEAMROLLER || MEXCAVATOR || MZEN || MZEN2 || MZEN3 || MNEHALEM || MWESTMERE || MSILVERMONT || MGOLDMONT || MGOLDMONTPLUS || MSANDYBRIDGE || MIVYBRIDGE || MHASWELL || MBROADWELL || MSKYLAKE || MSKYLAKEX || MCANNONLAKE || MICELAKE || MCASCADELAKE || MCOOPERLAKE || MTIGERLAKE || MSAPPHIRERAPIDS || MROCKETLAKE || MALDERLAKE || MNATIVE_INTEL || MNATIVE_AMD || X86_GENERIC || GENERIC_CPU || GENERIC_CPU2 || GENERIC_CPU3 || GENERIC_CPU4
++ default "6" if MK7 || MK8 || MPENTIUMM || MCORE2 || MATOM || MVIAC7 || MK8SSE3 || MK10 \
++ || MBARCELONA || MBOBCAT || MJAGUAR || MBULLDOZER || MPILEDRIVER || MSTEAMROLLER \
++ || MEXCAVATOR || MZEN || MZEN2 || MZEN3 || MZEN4 || MNEHALEM || MWESTMERE || MSILVERMONT \
++ || MGOLDMONT || MGOLDMONTPLUS || MSANDYBRIDGE || MIVYBRIDGE || MHASWELL || MBROADWELL \
++ || MSKYLAKE || MSKYLAKEX || MCANNONLAKE || MICELAKE || MCASCADELAKE || MCOOPERLAKE \
++ || MTIGERLAKE || MSAPPHIRERAPIDS || MROCKETLAKE || MALDERLAKE || MRAPTORLAKE || MMETEORLAKE \
++ || MEMERALDRAPIDS || MNATIVE_INTEL || MNATIVE_AMD || X86_GENERIC || GENERIC_CPU || GENERIC_CPU2 \
++ || GENERIC_CPU3 || GENERIC_CPU4
default "4" if MELAN || M486SX || M486 || MGEODEGX1
- default "5" if MWINCHIP3D || MWINCHIPC6 || MCRUSOE || MEFFICEON || MCYRIXIII || MK6 || MPENTIUMIII || MPENTIUMII || M686 || M586MMX || M586TSC || M586 || MVIAC3_2 || MGEODE_LX
+- default "5" if MWINCHIP3D || MWINCHIPC6 || MCRUSOE || MEFFICEON || MCYRIXIII || MK6 || MPENTIUMIII || MPENTIUMII || M686 || M586MMX || M586TSC || M586 || MVIAC3_2 || MGEODE_LX
++ default "5" if MWINCHIP3D || MWINCHIPC6 || MCRUSOE || MEFFICEON || MCYRIXIII || MK6 || MPENTIUMIII \
++ || MPENTIUMII || M686 || M586MMX || M586TSC || M586 || MVIAC3_2 || MGEODE_LX
-@@ -336,11 +644,11 @@ config X86_ALIGNMENT_16
+ config X86_F00F_BUG
+ def_bool y
+@@ -332,15 +686,27 @@ config X86_INVD_BUG
+
+ config X86_ALIGNMENT_16
+ def_bool y
+- depends on MWINCHIP3D || MWINCHIPC6 || MCYRIXIII || MELAN || MK6 || M586MMX || M586TSC || M586 || M486SX || M486 || MVIAC3_2 || MGEODEGX1
++ depends on MWINCHIP3D || MWINCHIPC6 || MCYRIXIII || MELAN || MK6 || M586MMX || M586TSC \
++ || M586 || M486SX || M486 || MVIAC3_2 || MGEODEGX1
config X86_INTEL_USERCOPY
def_bool y
- depends on MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M586MMX || X86_GENERIC || MK8 || MK7 || MEFFICEON || MCORE2
-+ depends on MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M586MMX || X86_GENERIC || MK8 || MK7 || MEFFICEON || MCORE2 || MNEHALEM || MWESTMERE || MSILVERMONT || MGOLDMONT || MGOLDMONTPLUS || MSANDYBRIDGE || MIVYBRIDGE || MHASWELL || MBROADWELL || MSKYLAKE || MSKYLAKEX || MCANNONLAKE || MICELAKE || MCASCADELAKE || MCOOPERLAKE || MTIGERLAKE || MSAPPHIRERAPIDS || MROCKETLAKE || MALDERLAKE || MNATIVE_INTEL
++ depends on MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M586MMX || X86_GENERIC \
++ || MK8 || MK7 || MEFFICEON || MCORE2 || MNEHALEM || MWESTMERE || MSILVERMONT || MGOLDMONT \
++ || MGOLDMONTPLUS || MSANDYBRIDGE || MIVYBRIDGE || MHASWELL || MBROADWELL || MSKYLAKE || MSKYLAKEX \
++ || MCANNONLAKE || MICELAKE || MCASCADELAKE || MCOOPERLAKE || MTIGERLAKE || MSAPPHIRERAPIDS \
++ || MROCKETLAKE || MALDERLAKE || MRAPTORLAKE || MMETEORLAKE || MEMERALDRAPIDS || MNATIVE_INTEL
config X86_USE_PPRO_CHECKSUM
def_bool y
- depends on MWINCHIP3D || MWINCHIPC6 || MCYRIXIII || MK7 || MK6 || MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M686 || MK8 || MVIAC3_2 || MVIAC7 || MEFFICEON || MGEODE_LX || MCORE2 || MATOM
-+ depends on MWINCHIP3D || MWINCHIPC6 || MCYRIXIII || MK7 || MK6 || MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M686 || MK8 || MVIAC3_2 || MVIAC7 || MEFFICEON || MGEODE_LX || MCORE2 || MATOM || MK8SSE3 || MK10 || MBARCELONA || MBOBCAT || MJAGUAR || MBULLDOZER || MPILEDRIVER || MSTEAMROLLER || MEXCAVATOR || MZEN || MZEN2 || MZEN3 || MNEHALEM || MWESTMERE || MSILVERMONT || MGOLDMONT || MGOLDMONTPLUS || MSANDYBRIDGE || MIVYBRIDGE || MHASWELL || MBROADWELL || MSKYLAKE || MSKYLAKEX || MCANNONLAKE || MICELAKE || MCASCADELAKE || MCOOPERLAKE || MTIGERLAKE || MSAPPHIRERAPIDS || MROCKETLAKE || MALDERLAKE || MNATIVE_INTEL || MNATIVE_AMD
++ depends on MWINCHIP3D || MWINCHIPC6 || MCYRIXIII || MK7 || MK6 || MPENTIUM4 || MPENTIUMM \
++ || MPENTIUMIII || MPENTIUMII || M686 || MK8 || MVIAC3_2 || MVIAC7 || MEFFICEON || MGEODE_LX \
++ || MCORE2 || MATOM || MK8SSE3 || MK10 || MBARCELONA || MBOBCAT || MJAGUAR || MBULLDOZER \
++ || MPILEDRIVER || MSTEAMROLLER || MEXCAVATOR || MZEN || MZEN2 || MZEN3 || MZEN4 || MNEHALEM \
++ || MWESTMERE || MSILVERMONT || MGOLDMONT || MGOLDMONTPLUS || MSANDYBRIDGE || MIVYBRIDGE \
++ || MHASWELL || MBROADWELL || MSKYLAKE || MSKYLAKEX || MCANNONLAKE || MICELAKE \
++ || MCASCADELAKE || MCOOPERLAKE || MTIGERLAKE || MSAPPHIRERAPIDS || MROCKETLAKE \
++ || MALDERLAKE || MRAPTORLAKE || MMETEORLAKE || MEMERALDRAPIDS || MNATIVE_INTEL || MNATIVE_AMD
#
# P6_NOPs are a relatively minor optimization that require a family >=
-@@ -356,26 +664,26 @@ config X86_USE_PPRO_CHECKSUM
+@@ -356,32 +722,63 @@ config X86_USE_PPRO_CHECKSUM
config X86_P6_NOP
def_bool y
depends on X86_64
- depends on (MCORE2 || MPENTIUM4 || MPSC)
-+ depends on (MCORE2 || MPENTIUM4 || MPSC || MNEHALEM || MWESTMERE || MSILVERMONT || MGOLDMONT || MGOLDMONTPLUS || MSANDYBRIDGE || MIVYBRIDGE || MHASWELL || MBROADWELL || MSKYLAKE || MSKYLAKEX || MCANNONLAKE || MICELAKE || MCASCADELAKE || MCOOPERLAKE || MTIGERLAKE || MSAPPHIRERAPIDS || MROCKETLAKE || MALDERLAKE || MNATIVE_INTEL)
++ depends on (MCORE2 || MPENTIUM4 || MPSC || MNEHALEM || MWESTMERE || MSILVERMONT || MGOLDMONT \
++ || MGOLDMONTPLUS || MSANDYBRIDGE || MIVYBRIDGE || MHASWELL || MBROADWELL || MSKYLAKE \
++ || MSKYLAKEX || MCANNONLAKE || MICELAKE || MCASCADELAKE || MCOOPERLAKE || MTIGERLAKE \
++ || MSAPPHIRERAPIDS || MROCKETLAKE || MALDERLAKE || MRAPTORLAKE || MMETEORLAKE || MEMERALDRAPIDS \
++ || MNATIVE_INTEL)
config X86_TSC
def_bool y
- depends on (MWINCHIP3D || MCRUSOE || MEFFICEON || MCYRIXIII || MK7 || MK6 || MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M686 || M586MMX || M586TSC || MK8 || MVIAC3_2 || MVIAC7 || MGEODEGX1 || MGEODE_LX || MCORE2 || MATOM) || X86_64
-+ depends on (MWINCHIP3D || MCRUSOE || MEFFICEON || MCYRIXIII || MK7 || MK6 || MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M686 || M586MMX || M586TSC || MK8 || MVIAC3_2 || MVIAC7 || MGEODEGX1 || MGEODE_LX || MCORE2 || MATOM || MK8SSE3 || MK10 || MBARCELONA || MBOBCAT || MJAGUAR || MBULLDOZER || MPILEDRIVER || MSTEAMROLLER || MEXCAVATOR || MZEN || MZEN2 || MZEN3 || MNEHALEM || MWESTMERE || MSILVERMONT || MGOLDMONT || MGOLDMONTPLUS || MSANDYBRIDGE || MIVYBRIDGE || MHASWELL || MBROADWELL || MSKYLAKE || MSKYLAKEX || MCANNONLAKE || MICELAKE || MCASCADELAKE || MCOOPERLAKE || MTIGERLAKE || MSAPPHIRERAPIDS || MROCKETLAKE || MALDERLAKE || MNATIVE_INTEL || MNATIVE_AMD) || X86_64
++ depends on (MWINCHIP3D || MCRUSOE || MEFFICEON || MCYRIXIII || MK7 || MK6 || MPENTIUM4 || MPENTIUMM \
++ || MPENTIUMIII || MPENTIUMII || M686 || M586MMX || M586TSC || MK8 || MVIAC3_2 || MVIAC7 || MGEODEGX1 \
++ || MGEODE_LX || MCORE2 || MATOM || MK8SSE3 || MK10 || MBARCELONA || MBOBCAT || MJAGUAR || MBULLDOZER \
++ || MPILEDRIVER || MSTEAMROLLER || MEXCAVATOR || MZEN || MZEN2 || MZEN3 || MZEN4 || MNEHALEM \
++ || MWESTMERE || MSILVERMONT || MGOLDMONT || MGOLDMONTPLUS || MSANDYBRIDGE || MIVYBRIDGE || MHASWELL \
++ || MBROADWELL || MSKYLAKE || MSKYLAKEX || MCANNONLAKE || MICELAKE || MCASCADELAKE || MCOOPERLAKE \
++ || MTIGERLAKE || MSAPPHIRERAPIDS || MROCKETLAKE || MALDERLAKE || MRAPTORLAKE || MMETEORLAKE || MEMERALDRAPIDS \
++ || MNATIVE_INTEL || MNATIVE_AMD) || X86_64
config X86_CMPXCHG64
def_bool y
- depends on X86_PAE || X86_64 || MCORE2 || MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M686 || M586TSC || M586MMX || MATOM || MGEODE_LX || MGEODEGX1 || MK6 || MK7 || MK8
-+ depends on X86_PAE || X86_64 || MCORE2 || MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M686 || M586TSC || M586MMX || MATOM || MGEODE_LX || MGEODEGX1 || MK6 || MK7 || MK8 || MK8SSE3 || MK10 || MBARCELONA || MBOBCAT || MJAGUAR || MBULLDOZER || MPILEDRIVER || MSTEAMROLLER || MEXCAVATOR || MZEN || MZEN2 || MZEN3 || MNEHALEM || MWESTMERE || MSILVERMONT || MGOLDMONT || MGOLDMONTPLUS || MSANDYBRIDGE || MIVYBRIDGE || MHASWELL || MBROADWELL || MSKYLAKE || MSKYLAKEX || MCANNONLAKE || MICELAKE || MCASCADELAKE || MCOOPERLAKE || MTIGERLAKE || MSAPPHIRERAPIDS || MROCKETLAKE || MALDERLAKE || MNATIVE_INTEL || MNATIVE_AMD
++ depends on X86_PAE || X86_64 || MCORE2 || MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M686 \
++ || M586TSC || M586MMX || MATOM || MGEODE_LX || MGEODEGX1 || MK6 || MK7 || MK8 || MK8SSE3 || MK10 \
++ || MBARCELONA || MBOBCAT || MJAGUAR || MBULLDOZER || MPILEDRIVER || MSTEAMROLLER || MEXCAVATOR || MZEN \
++ || MZEN2 || MZEN3 || MZEN4 || MNEHALEM || MWESTMERE || MSILVERMONT || MGOLDMONT || MGOLDMONTPLUS \
++ || MSANDYBRIDGE || MIVYBRIDGE || MHASWELL || MBROADWELL || MSKYLAKE || MSKYLAKEX || MCANNONLAKE \
++ || MICELAKE || MCASCADELAKE || MCOOPERLAKE || MTIGERLAKE || MSAPPHIRERAPIDS || MROCKETLAKE \
++ || MALDERLAKE || MRAPTORLAKE || MMETEORLAKE || MEMERALDRAPIDS || MNATIVE_INTEL || MNATIVE_AMD
# this should be set for all -march=.. options where the compiler
# generates cmov.
config X86_CMOV
def_bool y
- depends on (MK8 || MK7 || MCORE2 || MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M686 || MVIAC3_2 || MVIAC7 || MCRUSOE || MEFFICEON || X86_64 || MATOM || MGEODE_LX)
-+ depends on (MK8 || MK7 || MCORE2 || MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M686 || MVIAC3_2 || MVIAC7 || MCRUSOE || MEFFICEON || X86_64 || MATOM || MGEODE_LX || MK8SSE3 || MK10 || MBARCELONA || MBOBCAT || MJAGUAR || MBULLDOZER || MPILEDRIVER || MSTEAMROLLER || MEXCAVATOR || MZEN || MZEN2 || MZEN3 || MNEHALEM || MWESTMERE || MSILVERMONT || MGOLDMONT || MGOLDMONTPLUS || MSANDYBRIDGE || MIVYBRIDGE || MHASWELL || MBROADWELL || MSKYLAKE || MSKYLAKEX || MCANNONLAKE || MICELAKE || MCASCADELAKE || MCOOPERLAKE || MTIGERLAKE || MSAPPHIRERAPIDS || MROCKETLAKE || MALDERLAKE || MNATIVE_INTEL || MNATIVE_AMD)
++ depends on (MK8 || MK7 || MCORE2 || MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M686 \
++ || MVIAC3_2 || MVIAC7 || MCRUSOE || MEFFICEON || X86_64 || MATOM || MGEODE_LX || MK8SSE3 || MK10 \
++ || MBARCELONA || MBOBCAT || MJAGUAR || MBULLDOZER || MPILEDRIVER || MSTEAMROLLER || MEXCAVATOR \
++ || MZEN || MZEN2 || MZEN3 || MZEN4 || MNEHALEM || MWESTMERE || MSILVERMONT || MGOLDMONT \
++ || MGOLDMONTPLUS || MSANDYBRIDGE || MIVYBRIDGE || MHASWELL || MBROADWELL || MSKYLAKE || MSKYLAKEX \
++ || MCANNONLAKE || MICELAKE || MCASCADELAKE || MCOOPERLAKE || MTIGERLAKE || MSAPPHIRERAPIDS \
++ || MROCKETLAKE || MALDERLAKE || MRAPTORLAKE || MMETEORLAKE || MEMERALDRAPIDS || MNATIVE_INTEL || MNATIVE_AMD)
config X86_MINIMUM_CPU_FAMILY
int
default "64" if X86_64
- default "6" if X86_32 && (MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M686 || MVIAC3_2 || MVIAC7 || MEFFICEON || MATOM || MCRUSOE || MCORE2 || MK7 || MK8)
-+ default "6" if X86_32 && (MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M686 || MVIAC3_2 || MVIAC7 || MEFFICEON || MATOM || MCRUSOE || MCORE2 || MK7 || MK8 || MK8SSE3 || MK10 || MBARCELONA || MBOBCAT || MJAGUAR || MBULLDOZER || MPILEDRIVER || MSTEAMROLLER || MEXCAVATOR || MZEN || MZEN2 || MZEN3 || MNEHALEM || MWESTMERE || MSILVERMONT || MGOLDMONT || MGOLDMONTPLUS || MSANDYBRIDGE || MIVYBRIDGE || MHASWELL || MBROADWELL || MSKYLAKE || MSKYLAKEX || MCANNONLAKE || MICELAKE || MCASCADELAKE || MCOOPERLAKE || MTIGERLAKE || MSAPPHIRERAPIDS || MROCKETLAKE || MALDERLAKE || MNATIVE_INTEL || MNATIVE_AMD)
++ default "6" if X86_32 && (MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M686 \
++ || MVIAC3_2 || MVIAC7 || MEFFICEON || MATOM || MCRUSOE || MCORE2 || MK7 || MK8 || MK8SSE3 \
++ || MK10 || MBARCELONA || MBOBCAT || MJAGUAR || MBULLDOZER || MPILEDRIVER || MSTEAMROLLER \
++ || MEXCAVATOR || MZEN || MZEN2 || MZEN3 || MZEN4 || MNEHALEM || MWESTMERE || MSILVERMONT \
++ || MGOLDMONT || MGOLDMONTPLUS || MSANDYBRIDGE || MIVYBRIDGE || MHASWELL || MBROADWELL \
++ || MSKYLAKE || MSKYLAKEX || MCANNONLAKE || MICELAKE || MCASCADELAKE || MCOOPERLAKE \
++ || MTIGERLAKE || MSAPPHIRERAPIDS || MROCKETLAKE || MALDERLAKE || MRAPTORLAKE || MRAPTORLAKE \
++ || MNATIVE_INTEL || MNATIVE_AMD)
default "5" if X86_32 && X86_CMPXCHG64
default "4"
+ config X86_DEBUGCTLMSR
+ def_bool y
+- depends on !(MK6 || MWINCHIPC6 || MWINCHIP3D || MCYRIXIII || M586MMX || M586TSC || M586 || M486SX || M486) && !UML
++ depends on !(MK6 || MWINCHIPC6 || MWINCHIP3D || MCYRIXIII || M586MMX || M586TSC || M586 \
++ || M486SX || M486) && !UML
+
+ config IA32_FEAT_CTL
+ def_bool y
diff --git a/arch/x86/Makefile b/arch/x86/Makefile
-index e84cdd409b64..7d3bbf060079 100644
+index 415a5d138de4..17b1e039d955 100644
--- a/arch/x86/Makefile
+++ b/arch/x86/Makefile
-@@ -131,8 +131,44 @@ else
+@@ -151,8 +151,48 @@ else
# FIXME - should be integrated in Makefile.cpu (Makefile_32.cpu)
cflags-$(CONFIG_MK8) += -march=k8
cflags-$(CONFIG_MPSC) += -march=nocona
@@ -557,6 +660,7 @@ index e84cdd409b64..7d3bbf060079 100644
+ cflags-$(CONFIG_MZEN) += -march=znver1
+ cflags-$(CONFIG_MZEN2) += -march=znver2
+ cflags-$(CONFIG_MZEN3) += -march=znver3
++ cflags-$(CONFIG_MZEN4) += -march=znver4
+ cflags-$(CONFIG_MNATIVE_INTEL) += -march=native
+ cflags-$(CONFIG_MNATIVE_AMD) += -march=native
+ cflags-$(CONFIG_MATOM) += -march=bonnell
@@ -580,6 +684,9 @@ index e84cdd409b64..7d3bbf060079 100644
+ cflags-$(CONFIG_MSAPPHIRERAPIDS) += -march=sapphirerapids
+ cflags-$(CONFIG_MROCKETLAKE) += -march=rocketlake
+ cflags-$(CONFIG_MALDERLAKE) += -march=alderlake
++ cflags-$(CONFIG_MRAPTORLAKE) += -march=raptorlake
++ cflags-$(CONFIG_MMETEORLAKE) += -march=meteorlake
++ cflags-$(CONFIG_MEMERALDRAPIDS) += -march=emeraldrapids
+ cflags-$(CONFIG_GENERIC_CPU2) += -march=x86-64-v2
+ cflags-$(CONFIG_GENERIC_CPU3) += -march=x86-64-v3
+ cflags-$(CONFIG_GENERIC_CPU4) += -march=x86-64-v4
@@ -587,10 +694,10 @@ index e84cdd409b64..7d3bbf060079 100644
KBUILD_CFLAGS += $(cflags-y)
diff --git a/arch/x86/include/asm/vermagic.h b/arch/x86/include/asm/vermagic.h
-index 75884d2cdec3..4e6a08d4c7e5 100644
+index 75884d2cdec3..02c1386eb653 100644
--- a/arch/x86/include/asm/vermagic.h
+++ b/arch/x86/include/asm/vermagic.h
-@@ -17,6 +17,48 @@
+@@ -17,6 +17,54 @@
#define MODULE_PROC_FAMILY "586MMX "
#elif defined CONFIG_MCORE2
#define MODULE_PROC_FAMILY "CORE2 "
@@ -636,10 +743,16 @@ index 75884d2cdec3..4e6a08d4c7e5 100644
+#define MODULE_PROC_FAMILY "ROCKETLAKE "
+#elif defined CONFIG_MALDERLAKE
+#define MODULE_PROC_FAMILY "ALDERLAKE "
++#elif defined CONFIG_MRAPTORLAKE
++#define MODULE_PROC_FAMILY "RAPTORLAKE "
++#elif defined CONFIG_MMETEORLAKE
++#define MODULE_PROC_FAMILY "METEORLAKE "
++#elif defined CONFIG_MEMERALDRAPIDS
++#define MODULE_PROC_FAMILY "EMERALDRAPIDS "
#elif defined CONFIG_MATOM
#define MODULE_PROC_FAMILY "ATOM "
#elif defined CONFIG_M686
-@@ -35,6 +77,30 @@
+@@ -35,6 +83,32 @@
#define MODULE_PROC_FAMILY "K7 "
#elif defined CONFIG_MK8
#define MODULE_PROC_FAMILY "K8 "
@@ -667,9 +780,11 @@ index 75884d2cdec3..4e6a08d4c7e5 100644
+#define MODULE_PROC_FAMILY "ZEN2 "
+#elif defined CONFIG_MZEN3
+#define MODULE_PROC_FAMILY "ZEN3 "
++#elif defined CONFIG_MZEN4
++#define MODULE_PROC_FAMILY "ZEN4 "
#elif defined CONFIG_MELAN
#define MODULE_PROC_FAMILY "ELAN "
#elif defined CONFIG_MCRUSOE
--
-2.35.1
+2.39.0