diff options
author | Taijian | 2023-05-09 13:31:24 +0200 |
---|---|---|
committer | Taijian | 2023-05-09 13:31:24 +0200 |
commit | 49aeaf6639822a0d281567420bd8d1666f3d1bd8 (patch) | |
tree | 81e8d1ce4c3a08ada6f28509e2b7a06559f06012 | |
parent | 2bbfe28010ae41a3b1c86d9c25a6f290c684d73c (diff) | |
download | aur-49aeaf6639822a0d281567420bd8d1666f3d1bd8.tar.gz |
update to 6.3.1
23 files changed, 1733 insertions, 2131 deletions
@@ -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, <r_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 - @@ -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}" "$@" @@ -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 |