summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorEvgeny Myandin2022-04-07 08:26:06 +0300
committerEvgeny Myandin2022-04-07 08:26:06 +0300
commit161ed61a0dcca5ec8007c5126dd07e766f589abf (patch)
tree7a169ae257aa93edbf6a6be189ca4eebf474f376
parent6fe36e5d1d776bd2025cd3ad56454bf93f43db21 (diff)
downloadaur-161ed61a0dcca5ec8007c5126dd07e766f589abf.tar.gz
release kernel 5.17.1
-rw-r--r--.SRCINFO30
-rw-r--r--0002-Btintel_Fix_bdaddress_comparison_with_garbage_value.patch58
-rw-r--r--0003_Bluetooth_Read_codec_capabilities_only_if_supported.patch54
-rw-r--r--0004_Bluetooth_fix_deadlock_for_RFCOMM_sk_state_change.patch229
-rw-r--r--0005_mt76_mt7921_add_support_for_PCIe_ID_0x0608-0x0616.patch27
-rw-r--r--0006_mt76_mt7921_reduce_log_severity_levels_for_informative_messages.patch43
-rw-r--r--0007_Revert_NFSv4.1_query_for_fs_location_attr_on_a_new_file_system.patch234
-rw-r--r--0101-ZEN_Add_sysctl_and_CONFIG_to_disallow_unprivileged_CLONE_NEWUSER.patch (renamed from 0001-ZEN-Add-sysctl-and-CONFIG-to-disallow-unprivileged-CLONE_NEWUSER.patch)106
-rw-r--r--0101-i2c-nuvoton-nc677x-hwmon-driver.patch745
-rw-r--r--0102-random-treat_bootloader_trust_toggle_the_same_way_as_cpu_trust_toggle.patch91
-rw-r--r--0103-Revert-swiotlb-rework-fix_info_leak_with_DMA_FROM_DEVICE.patch192
-rw-r--r--0105-quirk-kernel-org-bug-210681-firmware_rome_error.patch12
-rw-r--r--PKGBUILD31
-rw-r--r--config186
-rw-r--r--modules.list2
15 files changed, 506 insertions, 1534 deletions
diff --git a/.SRCINFO b/.SRCINFO
index ac7441fc6dbf..b2860ecee88e 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -20,15 +20,9 @@ pkgbase = linux-acs-manjaro
source = https://www.kernel.org/pub/linux/kernel/v5.x/linux-5.16.tar.xz
source = https://www.kernel.org/pub/linux/kernel/v5.x/patch-5.16.18.xz
source = config
- source = 0001-ZEN-Add-sysctl-and-CONFIG-to-disallow-unprivileged-CLONE_NEWUSER.patch
- source = 0002-Btintel_Fix_bdaddress_comparison_with_garbage_value.patch
- source = 0003_Bluetooth_Read_codec_capabilities_only_if_supported.patch
- source = 0004_Bluetooth_fix_deadlock_for_RFCOMM_sk_state_change.patch
- source = 0005_mt76_mt7921_add_support_for_PCIe_ID_0x0608-0x0616.patch
- source = 0006_mt76_mt7921_reduce_log_severity_levels_for_informative_messages.patch
- source = 0007_Revert_NFSv4.1_query_for_fs_location_attr_on_a_new_file_system.patch
- source = 0101-i2c-nuvoton-nc677x-hwmon-driver.patch
- source = 0105-quirk-kernel-org-bug-210681-firmware_rome_error.patch
+ source = 0101-ZEN_Add_sysctl_and_CONFIG_to_disallow_unprivileged_CLONE_NEWUSER.patch
+ source = 0102-random-treat_bootloader_trust_toggle_the_same_way_as_cpu_trust_toggle.patch
+ source = 0103-Revert-swiotlb-rework-fix_info_leak_with_DMA_FROM_DEVICE.patch
source = 0301-revert-fbcon-remove-now-unusued-softback_lines-cursor-argument.patch
source = 0302-revert-fbcon-remove-no-op-fbcon_set_origin.patch
source = 0303-revert-fbcon-remove-soft-scrollback-code.patch
@@ -46,18 +40,12 @@ pkgbase = linux-acs-manjaro
source = 0412-bootsplash.patch
source = 0413-bootsplash.gitpatch
source = 0999-acs.gitpatch
- sha256sums = 027d7e8988bb69ac12ee92406c3be1fe13f990b1ca2249e226225cd1573308bb
- sha256sums = 3bb88aa87c3f7788ad84ca5cbf3946ed9fbb3fddb9fca2458944fba5ebd2ab16
- sha256sums = 67ea8810d3e58c1b661ff1372886aa8b560f97938ff62a3d12a6ff60784aeccf
- sha256sums = 986f8d802f37b72a54256f0ab84da83cb229388d58c0b6750f7c770818a18421
- sha256sums = b89188b1bc3516d54965dd36def6a2af3d81379e53ff7e527bbd91f77c6f191b
- sha256sums = adfabecb2e23cfaebe1d493a54119a967a97930dac677e20f26d4bcaa1b80f3c
- sha256sums = 7aa2293dff32463665c2a35054c5164470e24075ddda181715d4079ca126cbbd
- sha256sums = 9c67c62e9e744eaeae43c80d83c9eb61b486406cf18cd057427bdbc44f8e4e10
- sha256sums = f8fc51c0c644ae743154c37b77ade50fa5a950980c9dd56d8752e4d6b5dfb153
- sha256sums = 24fc6f087aa82a72905f0fb6b9f3f5f18741187d5a425f5ec845dab436ab1c58
- sha256sums = 7823d7488f42bc4ed7dfae6d1014dbde679d8b862c9a3697a39ba0dae5918978
- sha256sums = 5e804e1f241ce542f3f0e83d274ede6aa4b0539e510fb9376f8106e8732ce69b
+ sha256sums = 555fef61dddb591a83d62dd04e252792f9af4ba9ef14683f64840e46fa20b1b1
+ sha256sums = 24c982d6b7b704b31a6b4bc0a59cbf2135697a58d5d6030532ae07856da36944
+ sha256sums = a94d5d374f4cdb439f3958b50f7af0f4e024fa17d7df3f30e548f40314e210c0
+ sha256sums = f85b07d73b2f4ad8bb6b59ee6624b2dd06a03824fc7b00131a01df36c8d899fe
+ sha256sums = fc9223bf2d430ab1c122daada4f51d835a74f56c007c82842eeca3acd2d788be
+ sha256sums = edd40fa0d23e9cbbf5ed7f37b2e0ed8e84798701b08a0dc262afd751acf17e04
sha256sums = 2b11905b63b05b25807dd64757c779da74dd4c37e36d3f7a46485b1ee5a9d326
sha256sums = 94a8538251ad148f1025cc3de446ce64f73dc32b01815426fb159c722e8fa5bc
sha256sums = 1f18c5c10a3c63e41ecd05ad34cd9f6653ba96e9f1049ce2b7bb6da2578ae710
diff --git a/0002-Btintel_Fix_bdaddress_comparison_with_garbage_value.patch b/0002-Btintel_Fix_bdaddress_comparison_with_garbage_value.patch
deleted file mode 100644
index 80cd663cd131..000000000000
--- a/0002-Btintel_Fix_bdaddress_comparison_with_garbage_value.patch
+++ /dev/null
@@ -1,58 +0,0 @@
-From efbb86e8bf678eb5a376deaa3b693fb7a21b8e41 Mon Sep 17 00:00:00 2001
-From: Kiran K <kiran.k@intel.com>
-Date: Wed, 13 Oct 2021 13:35:11 +0530
-Subject: [PATCH] Bluetooth: btintel: Fix bdaddress comparison with garbage
- value
-
-Intel Read Verision(TLV) data is parsed into a local structure variable
-and it contains a field for bd address. Bd address is returned only in
-bootloader mode and hence bd address in TLV structure needs to be validated
-only if controller is present in boot loader mode.
-
-Signed-off-by: Kiran K <kiran.k@intel.com>
-Reviewed-by: Tedd Ho-Jeong An <tedd.an@intel.com>
----
- drivers/bluetooth/btintel.c | 22 ++++++++++++++--------
- 1 file changed, 14 insertions(+), 8 deletions(-)
-
-diff --git a/drivers/bluetooth/btintel.c b/drivers/bluetooth/btintel.c
-index 9359bff4729659..8f9109b40961f4 100644
---- a/drivers/bluetooth/btintel.c
-+++ b/drivers/bluetooth/btintel.c
-@@ -2081,14 +2081,16 @@ static int btintel_prepare_fw_download_tlv(struct hci_dev *hdev,
- if (ver->img_type == 0x03) {
- btintel_clear_flag(hdev, INTEL_BOOTLOADER);
- btintel_check_bdaddr(hdev);
-- }
--
-- /* If the OTP has no valid Bluetooth device address, then there will
-- * also be no valid address for the operational firmware.
-- */
-- if (!bacmp(&ver->otp_bd_addr, BDADDR_ANY)) {
-- bt_dev_info(hdev, "No device address configured");
-- set_bit(HCI_QUIRK_INVALID_BDADDR, &hdev->quirks);
-+ } else {
-+ /*
-+ * Check for valid bd address in boot loader mode. Device
-+ * will be marked as unconfigured if empty bd address is
-+ * found.
-+ */
-+ if (!bacmp(&ver->otp_bd_addr, BDADDR_ANY)) {
-+ bt_dev_info(hdev, "No device address configured");
-+ set_bit(HCI_QUIRK_INVALID_BDADDR, &hdev->quirks);
-+ }
- }
-
- btintel_get_fw_name_tlv(ver, fwname, sizeof(fwname), "sfi");
-@@ -2466,6 +2468,10 @@ static int btintel_setup_combined(struct hci_dev *hdev)
- goto exit_error;
- }
-
-+ /* memset ver_tlv to start with clean state as few fields are exclusive
-+ * to bootloader mode and are not populated in operational mode
-+ */
-+ memset(&ver_tlv, 0, sizeof(ver_tlv));
- /* For TLV type device, parse the tlv data */
- err = btintel_parse_version_tlv(hdev, &ver_tlv, skb);
- if (err) {
-
diff --git a/0003_Bluetooth_Read_codec_capabilities_only_if_supported.patch b/0003_Bluetooth_Read_codec_capabilities_only_if_supported.patch
deleted file mode 100644
index 2eb057be96a5..000000000000
--- a/0003_Bluetooth_Read_codec_capabilities_only_if_supported.patch
+++ /dev/null
@@ -1,54 +0,0 @@
-From 002d105f8a78b19624fc5e3eccbb77af8b1a3a77 Mon Sep 17 00:00:00 2001
-From: Kiran K <kiran.k@intel.com>
-Date: Tue, 5 Oct 2021 20:15:56 +0530
-Subject: [PATCH] Bluetooth: Read codec capabilities only if supported
-
-Read codec capabilities only if HCI_READ_LOCAL_CODEC_CAPABILITIES
-command is supported. If capablities are not supported, then
-cache codec data without caps.
-
-Signed-off-by: Kiran K <kiran.k@intel.com>
-Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
-For: https://bugs.archlinux.org/task/73454
----
- net/bluetooth/hci_codec.c | 18 ++++++++++++++++--
- 1 file changed, 16 insertions(+), 2 deletions(-)
-
-diff --git a/net/bluetooth/hci_codec.c b/net/bluetooth/hci_codec.c
-index f0421d0edaa377..38201532f58e82 100644
---- a/net/bluetooth/hci_codec.c
-+++ b/net/bluetooth/hci_codec.c
-@@ -25,9 +25,11 @@ static int hci_codec_list_add(struct list_head *list,
- }
- entry->transport = sent->transport;
- entry->len = len;
-- entry->num_caps = rp->num_caps;
-- if (rp->num_caps)
-+ entry->num_caps = 0;
-+ if (rp) {
-+ entry->num_caps = rp->num_caps;
- memcpy(entry->caps, caps, len);
-+ }
- list_add(&entry->list, list);
-
- return 0;
-@@ -58,6 +60,18 @@ static void hci_read_codec_capabilities(struct hci_dev *hdev, __u8 transport,
- __u32 len;
-
- cmd->transport = i;
-+
-+ /* If Read_Codec_Capabilities command is not supported
-+ * then just add codec to the list without caps
-+ */
-+ if (!(hdev->commands[45] & 0x08)) {
-+ hci_dev_lock(hdev);
-+ hci_codec_list_add(&hdev->local_codecs, cmd,
-+ NULL, NULL, 0);
-+ hci_dev_unlock(hdev);
-+ continue;
-+ }
-+
- skb = __hci_cmd_sync(hdev, HCI_OP_READ_LOCAL_CODEC_CAPS,
- sizeof(*cmd), cmd,
- HCI_CMD_TIMEOUT);
-
diff --git a/0004_Bluetooth_fix_deadlock_for_RFCOMM_sk_state_change.patch b/0004_Bluetooth_fix_deadlock_for_RFCOMM_sk_state_change.patch
deleted file mode 100644
index 2959cfbb03f1..000000000000
--- a/0004_Bluetooth_fix_deadlock_for_RFCOMM_sk_state_change.patch
+++ /dev/null
@@ -1,229 +0,0 @@
-
-From 57146857cb0f54f36038f7270ac4ab5d2f3f9ed8 Mon Sep 17 00:00:00 2001
-From: Desmond Cheong Zhi Xi <desmondcheongzx@gmail.com>
-Date: Mon, 4 Oct 2021 14:07:34 -0400
-Subject: [PATCH] Bluetooth: fix deadlock for RFCOMM sk state change
-
-Syzbot reports the following task hang [1]:
-
-INFO: task syz-executor255:8499 blocked for more than 143 seconds.
- Not tainted 5.14.0-rc7-syzkaller #0
-
-Call Trace:
- context_switch kernel/sched/core.c:4681 [inline]
- __schedule+0x93a/0x26f0 kernel/sched/core.c:5938
- schedule+0xd3/0x270 kernel/sched/core.c:6017
- __lock_sock+0x13d/0x260 net/core/sock.c:2644
- lock_sock_nested+0xf6/0x120 net/core/sock.c:3185
- lock_sock include/net/sock.h:1612 [inline]
- rfcomm_sk_state_change+0xb4/0x390 net/bluetooth/rfcomm/sock.c:73
- __rfcomm_dlc_close+0x1b6/0x8a0 net/bluetooth/rfcomm/core.c:489
- rfcomm_dlc_close+0x1ea/0x240 net/bluetooth/rfcomm/core.c:520
- __rfcomm_sock_close+0xac/0x260 net/bluetooth/rfcomm/sock.c:220
- rfcomm_sock_shutdown+0xe9/0x210 net/bluetooth/rfcomm/sock.c:931
- rfcomm_sock_release+0x5f/0x140 net/bluetooth/rfcomm/sock.c:951
- __sock_release+0xcd/0x280 net/socket.c:649
- sock_close+0x18/0x20 net/socket.c:1314
- __fput+0x288/0x920 fs/file_table.c:280
- task_work_run+0xdd/0x1a0 kernel/task_work.c:164
- exit_task_work include/linux/task_work.h:32 [inline]
- do_exit+0xbd4/0x2a60 kernel/exit.c:825
- do_group_exit+0x125/0x310 kernel/exit.c:922
- get_signal+0x47f/0x2160 kernel/signal.c:2808
- arch_do_signal_or_restart+0x2a9/0x1c40 arch/x86/kernel/signal.c:865
- handle_signal_work kernel/entry/common.c:148 [inline]
- exit_to_user_mode_loop kernel/entry/common.c:172 [inline]
- exit_to_user_mode_prepare+0x17d/0x290 kernel/entry/common.c:209
- __syscall_exit_to_user_mode_work kernel/entry/common.c:291 [inline]
- syscall_exit_to_user_mode+0x19/0x60 kernel/entry/common.c:302
- do_syscall_64+0x42/0xb0 arch/x86/entry/common.c:86
- entry_SYSCALL_64_after_hwframe+0x44/0xae
-
-Showing all locks held in the system:
-1 lock held by khungtaskd/1653:
- #0: ffffffff8b97c280 (rcu_read_lock){....}-{1:2}, at:
- debug_show_all_locks+0x53/0x260 kernel/locking/lockdep.c:6446
-1 lock held by krfcommd/4781:
- #0: ffffffff8d306528 (rfcomm_mutex){+.+.}-{3:3}, at:
- rfcomm_process_sessions net/bluetooth/rfcomm/core.c:1979 [inline]
- #0: ffffffff8d306528 (rfcomm_mutex){+.+.}-{3:3}, at:
- rfcomm_run+0x2ed/0x4a20 net/bluetooth/rfcomm/core.c:2086
-2 locks held by in:imklog/8206:
- #0: ffff8880182ce5f0 (&f->f_pos_lock){+.+.}-{3:3}, at:
- __fdget_pos+0xe9/0x100 fs/file.c:974
- #1: ffff8880b9c51a58 (&rq->__lock){-.-.}-{2:2}, at:
- raw_spin_rq_lock_nested kernel/sched/core.c:460 [inline]
- #1: ffff8880b9c51a58 (&rq->__lock){-.-.}-{2:2}, at: raw_spin_rq_lock
- kernel/sched/sched.h:1307 [inline]
- #1: ffff8880b9c51a58 (&rq->__lock){-.-.}-{2:2}, at: rq_lock
- kernel/sched/sched.h:1610 [inline]
- #1: ffff8880b9c51a58 (&rq->__lock){-.-.}-{2:2}, at:
- __schedule+0x233/0x26f0 kernel/sched/core.c:5852
-4 locks held by syz-executor255/8499:
- #0: ffff888039a83690 (&sb->s_type->i_mutex_key#13){+.+.}-{3:3}, at:
- inode_lock include/linux/fs.h:774 [inline]
- #0: ffff888039a83690 (&sb->s_type->i_mutex_key#13){+.+.}-{3:3}, at:
- __sock_release+0x86/0x280 net/socket.c:648
- #1:
- ffff88802fa31120 (sk_lock-AF_BLUETOOTH-BTPROTO_RFCOMM){+.+.}-{0:0},
- at: lock_sock include/net/sock.h:1612 [inline]
- #1:
- ffff88802fa31120 (sk_lock-AF_BLUETOOTH-BTPROTO_RFCOMM){+.+.}-{0:0},
- at: rfcomm_sock_shutdown+0x54/0x210 net/bluetooth/rfcomm/sock.c:928
- #2: ffffffff8d306528 (rfcomm_mutex){+.+.}-{3:3}, at:
- rfcomm_dlc_close+0x34/0x240 net/bluetooth/rfcomm/core.c:507
- #3: ffff888141bd6d28 (&d->lock){+.+.}-{3:3}, at:
- __rfcomm_dlc_close+0x162/0x8a0 net/bluetooth/rfcomm/core.c:487
-==================================================================
-
-The task hangs because of a deadlock that occurs when lock_sock() is
-called in rfcomm_sk_state_change(). One such call stack is:
-
- rfcomm_sock_shutdown():
- lock_sock();
- __rfcomm_sock_close():
- rfcomm_dlc_close():
- __rfcomm_dlc_close():
- rfcomm_dlc_lock();
- rfcomm_sk_state_change():
- lock_sock();
-
-lock_sock() has to be called when the sk state is changed because the
-lock is not always held when rfcomm_sk_state_change() is
-called. However, besides the recursive deadlock, there is also an
-issue of a lock hierarchy inversion between rfcomm_dlc_lock() and
-lock_sock() if the socket is locked in rfcomm_sk_state_change().
-
-To avoid these issues, we can instead schedule the sk state change in
-the global workqueue. This is already the implicit assumption about
-how sk state changes happen. For example, in rfcomm_sock_shutdown(),
-the call to __rfcomm_sock_close() is followed by
-bt_sock_wait_state().
-
-Additionally, the call to rfcomm_sock_kill() inside
-rfcomm_sk_state_change() should be removed. The socket shouldn't be
-killed here because only rfcomm_sock_release() calls sock_orphan(),
-which it already follows up with a call to rfcomm_sock_kill().
-
-Fixes: b7ce436a5d79 ("Bluetooth: switch to lock_sock in RFCOMM")
-Link: https://syzkaller.appspot.com/bug?extid=7d51f807c81b190a127d [1]
-Reported-by: syzbot+7d51f807c81b190a127d@syzkaller.appspotmail.com
-Tested-by: syzbot+7d51f807c81b190a127d@syzkaller.appspotmail.com
-Signed-off-by: Desmond Cheong Zhi Xi <desmondcheongzx@gmail.com>
-Cc: Hillf Danton <hdanton@sina.com>
----
- include/net/bluetooth/rfcomm.h | 3 +++
- net/bluetooth/rfcomm/core.c | 2 ++
- net/bluetooth/rfcomm/sock.c | 34 ++++++++++++++++++++++------------
- 3 files changed, 27 insertions(+), 12 deletions(-)
-
-diff --git a/include/net/bluetooth/rfcomm.h b/include/net/bluetooth/rfcomm.h
-index 99d26879b02a53..a92799fc5e74d0 100644
---- a/include/net/bluetooth/rfcomm.h
-+++ b/include/net/bluetooth/rfcomm.h
-@@ -171,6 +171,7 @@ struct rfcomm_dlc {
- struct rfcomm_session *session;
- struct sk_buff_head tx_queue;
- struct timer_list timer;
-+ struct work_struct state_change_work;
-
- struct mutex lock;
- unsigned long state;
-@@ -186,6 +187,7 @@ struct rfcomm_dlc {
- u8 sec_level;
- u8 role_switch;
- u32 defer_setup;
-+ int err;
-
- uint mtu;
- uint cfc;
-@@ -310,6 +312,7 @@ struct rfcomm_pinfo {
- u8 role_switch;
- };
-
-+void __rfcomm_sk_state_change(struct work_struct *work);
- int rfcomm_init_sockets(void);
- void rfcomm_cleanup_sockets(void);
-
-diff --git a/net/bluetooth/rfcomm/core.c b/net/bluetooth/rfcomm/core.c
-index 7324764384b677..c6494e85cd68b2 100644
---- a/net/bluetooth/rfcomm/core.c
-+++ b/net/bluetooth/rfcomm/core.c
-@@ -289,6 +289,7 @@ static void rfcomm_dlc_clear_state(struct rfcomm_dlc *d)
- d->flags = 0;
- d->mscex = 0;
- d->sec_level = BT_SECURITY_LOW;
-+ d->err = 0;
- d->mtu = RFCOMM_DEFAULT_MTU;
- d->v24_sig = RFCOMM_V24_RTC | RFCOMM_V24_RTR | RFCOMM_V24_DV;
-
-@@ -306,6 +307,7 @@ struct rfcomm_dlc *rfcomm_dlc_alloc(gfp_t prio)
- timer_setup(&d->timer, rfcomm_dlc_timeout, 0);
-
- skb_queue_head_init(&d->tx_queue);
-+ INIT_WORK(&d->state_change_work, __rfcomm_sk_state_change);
- mutex_init(&d->lock);
- refcount_set(&d->refcnt, 1);
-
-diff --git a/net/bluetooth/rfcomm/sock.c b/net/bluetooth/rfcomm/sock.c
-index 4bf4ea6cbb5eee..4850dafbaa05fb 100644
---- a/net/bluetooth/rfcomm/sock.c
-+++ b/net/bluetooth/rfcomm/sock.c
-@@ -61,19 +61,22 @@ static void rfcomm_sk_data_ready(struct rfcomm_dlc *d, struct sk_buff *skb)
- rfcomm_dlc_throttle(d);
- }
-
--static void rfcomm_sk_state_change(struct rfcomm_dlc *d, int err)
-+void __rfcomm_sk_state_change(struct work_struct *work)
- {
-+ struct rfcomm_dlc *d = container_of(work, struct rfcomm_dlc,
-+ state_change_work);
- struct sock *sk = d->owner, *parent;
-
- if (!sk)
- return;
-
-- BT_DBG("dlc %p state %ld err %d", d, d->state, err);
--
- lock_sock(sk);
-+ rfcomm_dlc_lock(d);
-
-- if (err)
-- sk->sk_err = err;
-+ BT_DBG("dlc %p state %ld err %d", d, d->state, d->err);
-+
-+ if (d->err)
-+ sk->sk_err = d->err;
-
- sk->sk_state = d->state;
-
-@@ -91,15 +94,22 @@ static void rfcomm_sk_state_change(struct rfcomm_dlc *d, int err)
- sk->sk_state_change(sk);
- }
-
-+ rfcomm_dlc_unlock(d);
- release_sock(sk);
-+ sock_put(sk);
-+}
-
-- if (parent && sock_flag(sk, SOCK_ZAPPED)) {
-- /* We have to drop DLC lock here, otherwise
-- * rfcomm_sock_destruct() will dead lock. */
-- rfcomm_dlc_unlock(d);
-- rfcomm_sock_kill(sk);
-- rfcomm_dlc_lock(d);
-- }
-+static void rfcomm_sk_state_change(struct rfcomm_dlc *d, int err)
-+{
-+ struct sock *sk = d->owner;
-+
-+ if (!sk)
-+ return;
-+
-+ d->err = err;
-+ sock_hold(sk);
-+ if (!schedule_work(&d->state_change_work))
-+ sock_put(sk);
- }
-
- /* ---- Socket functions ---- */
diff --git a/0005_mt76_mt7921_add_support_for_PCIe_ID_0x0608-0x0616.patch b/0005_mt76_mt7921_add_support_for_PCIe_ID_0x0608-0x0616.patch
deleted file mode 100644
index 3abc9e31c623..000000000000
--- a/0005_mt76_mt7921_add_support_for_PCIe_ID_0x0608-0x0616.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-
-From 5c3de90cea9024359e4c78d2dc52b4b8043e9ee3 Mon Sep 17 00:00:00 2001
-From: Deren Wu <deren.wu@mediatek.com>
-Date: Sun, 14 Nov 2021 10:46:57 +0800
-Subject: [PATCH] mt76: mt7921: add support for PCIe ID 0x0608/0x0616
-
-New mt7921 serials chip support
-
-Signed-off-by: Deren Wu <deren.wu@mediatek.com>
-Signed-off-by: Felix Fietkau <nbd@nbd.name>
----
- drivers/net/wireless/mediatek/mt76/mt7921/pci.c | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/drivers/net/wireless/mediatek/mt76/mt7921/pci.c b/drivers/net/wireless/mediatek/mt76/mt7921/pci.c
-index 40186e6cd865e9..1212b803b1c8d7 100644
---- a/drivers/net/wireless/mediatek/mt76/mt7921/pci.c
-+++ b/drivers/net/wireless/mediatek/mt76/mt7921/pci.c
-@@ -15,6 +15,8 @@
- static const struct pci_device_id mt7921_pci_device_table[] = {
- { PCI_DEVICE(PCI_VENDOR_ID_MEDIATEK, 0x7961) },
- { PCI_DEVICE(PCI_VENDOR_ID_MEDIATEK, 0x7922) },
-+ { PCI_DEVICE(PCI_VENDOR_ID_MEDIATEK, 0x0608) },
-+ { PCI_DEVICE(PCI_VENDOR_ID_MEDIATEK, 0x0616) },
- { },
- };
-
diff --git a/0006_mt76_mt7921_reduce_log_severity_levels_for_informative_messages.patch b/0006_mt76_mt7921_reduce_log_severity_levels_for_informative_messages.patch
deleted file mode 100644
index 70e2f2bbb2d2..000000000000
--- a/0006_mt76_mt7921_reduce_log_severity_levels_for_informative_messages.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-
-From 3f214da518342648eee58bb01645d5e768f8120c Mon Sep 17 00:00:00 2001
-From: Tzung-Bi Shih <tzungbi@google.com>
-Date: Fri, 10 Dec 2021 17:17:46 +0800
-Subject: [PATCH] mt76: mt7921: reduce log severity levels for informative
- messages
-
-"ASIC revision" and "Firmware init done" shouldn't be error messages.
-Reduces the severity levels.
-
-Signed-off-by: Tzung-Bi Shih <tzungbi@google.com>
-Signed-off-by: Felix Fietkau <nbd@nbd.name>
----
- drivers/net/wireless/mediatek/mt76/mt7921/mcu.c | 2 +-
- drivers/net/wireless/mediatek/mt76/mt7921/pci.c | 2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/net/wireless/mediatek/mt76/mt7921/mcu.c b/drivers/net/wireless/mediatek/mt76/mt7921/mcu.c
-index 4c6adbb9695503..ea4edf187e0a12 100644
---- a/drivers/net/wireless/mediatek/mt76/mt7921/mcu.c
-+++ b/drivers/net/wireless/mediatek/mt76/mt7921/mcu.c
-@@ -869,7 +869,7 @@ static int mt7921_load_firmware(struct mt7921_dev *dev)
- dev->mt76.hw->wiphy->wowlan = &mt76_connac_wowlan_support;
- #endif /* CONFIG_PM */
-
-- dev_err(dev->mt76.dev, "Firmware init done\n");
-+ dev_dbg(dev->mt76.dev, "Firmware init done\n");
-
- return 0;
- }
-diff --git a/drivers/net/wireless/mediatek/mt76/mt7921/pci.c b/drivers/net/wireless/mediatek/mt76/mt7921/pci.c
-index 1212b803b1c8d7..9dae2f5972bf98 100644
---- a/drivers/net/wireless/mediatek/mt76/mt7921/pci.c
-+++ b/drivers/net/wireless/mediatek/mt76/mt7921/pci.c
-@@ -190,7 +190,7 @@ static int mt7921_pci_probe(struct pci_dev *pdev,
- tasklet_init(&dev->irq_tasklet, mt7921_irq_tasklet, (unsigned long)dev);
- mdev->rev = (mt7921_l1_rr(dev, MT_HW_CHIPID) << 16) |
- (mt7921_l1_rr(dev, MT_HW_REV) & 0xff);
-- dev_err(mdev->dev, "ASIC revision: %04x\n", mdev->rev);
-+ dev_info(mdev->dev, "ASIC revision: %04x\n", mdev->rev);
-
- mt76_wr(dev, MT_WFDMA0_HOST_INT_ENA, 0);
-
diff --git a/0007_Revert_NFSv4.1_query_for_fs_location_attr_on_a_new_file_system.patch b/0007_Revert_NFSv4.1_query_for_fs_location_attr_on_a_new_file_system.patch
deleted file mode 100644
index 64459571f9b9..000000000000
--- a/0007_Revert_NFSv4.1_query_for_fs_location_attr_on_a_new_file_system.patch
+++ /dev/null
@@ -1,234 +0,0 @@
-
-From 546ff90cf9e006e9b08d93159b4883ff877654ed Mon Sep 17 00:00:00 2001
-From: "Jan Alexander Steffens (heftig)" <heftig@archlinux.org>
-Date: Thu, 24 Feb 2022 03:14:51 +0100
-Subject: [PATCH] Revert "NFSv4.1 query for fs_location attr on a new file
- system"
-
-This reverts commit 55b35b43a16ebed88df3ffac11e17ad0909bdf19.
-
-For: https://bugs.archlinux.org/task/73838
-For: https://bugs.archlinux.org/task/73860
----
- fs/nfs/client.c | 7 ----
- fs/nfs/nfs4_fs.h | 9 +++--
- fs/nfs/nfs4proc.c | 76 ++++++-----------------------------------
- fs/nfs/nfs4state.c | 3 +-
- include/linux/nfs_xdr.h | 1 -
- 5 files changed, 15 insertions(+), 81 deletions(-)
-
-diff --git a/fs/nfs/client.c b/fs/nfs/client.c
-index a1e87419f3a42d..2d2f2c091c65a6 100644
---- a/fs/nfs/client.c
-+++ b/fs/nfs/client.c
-@@ -860,13 +860,6 @@ static int nfs_probe_fsinfo(struct nfs_server *server, struct nfs_fh *mntfh, str
- server->namelen = pathinfo.max_namelen;
- }
-
-- if (clp->rpc_ops->discover_trunking != NULL &&
-- (server->caps & NFS_CAP_FS_LOCATIONS)) {
-- error = clp->rpc_ops->discover_trunking(server, mntfh);
-- if (error < 0)
-- return error;
-- }
--
- return 0;
- }
-
-diff --git a/fs/nfs/nfs4_fs.h b/fs/nfs/nfs4_fs.h
-index 85c5d08dfa9ccd..2364661a6a081c 100644
---- a/fs/nfs/nfs4_fs.h
-+++ b/fs/nfs/nfs4_fs.h
-@@ -260,8 +260,8 @@ struct nfs4_state_maintenance_ops {
- };
-
- struct nfs4_mig_recovery_ops {
-- int (*get_locations)(struct nfs_server *, struct nfs_fh *,
-- struct nfs4_fs_locations *, struct page *, const struct cred *);
-+ int (*get_locations)(struct inode *, struct nfs4_fs_locations *,
-+ struct page *, const struct cred *);
- int (*fsid_present)(struct inode *, const struct cred *);
- };
-
-@@ -303,9 +303,8 @@ extern int nfs4_do_close(struct nfs4_state *state, gfp_t gfp_mask, int wait);
- extern int nfs4_server_capabilities(struct nfs_server *server, struct nfs_fh *fhandle);
- extern int nfs4_proc_fs_locations(struct rpc_clnt *, struct inode *, const struct qstr *,
- struct nfs4_fs_locations *, struct page *);
--extern int nfs4_proc_get_locations(struct nfs_server *, struct nfs_fh *,
-- struct nfs4_fs_locations *,
-- struct page *page, const struct cred *);
-+extern int nfs4_proc_get_locations(struct inode *, struct nfs4_fs_locations *,
-+ struct page *page, const struct cred *);
- extern int nfs4_proc_fsid_present(struct inode *, const struct cred *);
- extern struct rpc_clnt *nfs4_proc_lookup_mountpoint(struct inode *,
- struct dentry *,
-diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c
-index 0abbbf5d2bdf18..ba3aa4575d2510 100644
---- a/fs/nfs/nfs4proc.c
-+++ b/fs/nfs/nfs4proc.c
-@@ -3933,60 +3933,6 @@ int nfs4_server_capabilities(struct nfs_server *server, struct nfs_fh *fhandle)
- return err;
- }
-
--static int _nfs4_discover_trunking(struct nfs_server *server,
-- struct nfs_fh *fhandle)
--{
-- struct nfs4_fs_locations *locations = NULL;
-- struct page *page;
-- const struct cred *cred;
-- struct nfs_client *clp = server->nfs_client;
-- const struct nfs4_state_maintenance_ops *ops =
-- clp->cl_mvops->state_renewal_ops;
-- int status = -ENOMEM;
--
-- cred = ops->get_state_renewal_cred(clp);
-- if (cred == NULL) {
-- cred = nfs4_get_clid_cred(clp);
-- if (cred == NULL)
-- return -ENOKEY;
-- }
--
-- page = alloc_page(GFP_KERNEL);
-- locations = kmalloc(sizeof(struct nfs4_fs_locations), GFP_KERNEL);
-- if (page == NULL || locations == NULL)
-- goto out;
--
-- status = nfs4_proc_get_locations(server, fhandle, locations, page,
-- cred);
-- if (status)
-- goto out;
--out:
-- if (page)
-- __free_page(page);
-- kfree(locations);
-- return status;
--}
--
--static int nfs4_discover_trunking(struct nfs_server *server,
-- struct nfs_fh *fhandle)
--{
-- struct nfs4_exception exception = {
-- .interruptible = true,
-- };
-- struct nfs_client *clp = server->nfs_client;
-- int err = 0;
--
-- if (!nfs4_has_session(clp))
-- goto out;
-- do {
-- err = nfs4_handle_exception(server,
-- _nfs4_discover_trunking(server, fhandle),
-- &exception);
-- } while (exception.retry);
--out:
-- return err;
--}
--
- static int _nfs4_lookup_root(struct nfs_server *server, struct nfs_fh *fhandle,
- struct nfs_fsinfo *info)
- {
-@@ -7873,18 +7819,18 @@ int nfs4_proc_fs_locations(struct rpc_clnt *client, struct inode *dir,
- * appended to this compound to identify the client ID which is
- * performing recovery.
- */
--static int _nfs40_proc_get_locations(struct nfs_server *server,
-- struct nfs_fh *fhandle,
-+static int _nfs40_proc_get_locations(struct inode *inode,
- struct nfs4_fs_locations *locations,
- struct page *page, const struct cred *cred)
- {
-+ struct nfs_server *server = NFS_SERVER(inode);
- struct rpc_clnt *clnt = server->client;
- u32 bitmask[2] = {
- [0] = FATTR4_WORD0_FSID | FATTR4_WORD0_FS_LOCATIONS,
- };
- struct nfs4_fs_locations_arg args = {
- .clientid = server->nfs_client->cl_clientid,
-- .fh = fhandle,
-+ .fh = NFS_FH(inode),
- .page = page,
- .bitmask = bitmask,
- .migration = 1, /* skip LOOKUP */
-@@ -7930,17 +7876,17 @@ static int _nfs40_proc_get_locations(struct nfs_server *server,
- * When the client supports GETATTR(fs_locations_info), it can
- * be plumbed in here.
- */
--static int _nfs41_proc_get_locations(struct nfs_server *server,
-- struct nfs_fh *fhandle,
-+static int _nfs41_proc_get_locations(struct inode *inode,
- struct nfs4_fs_locations *locations,
- struct page *page, const struct cred *cred)
- {
-+ struct nfs_server *server = NFS_SERVER(inode);
- struct rpc_clnt *clnt = server->client;
- u32 bitmask[2] = {
- [0] = FATTR4_WORD0_FSID | FATTR4_WORD0_FS_LOCATIONS,
- };
- struct nfs4_fs_locations_arg args = {
-- .fh = fhandle,
-+ .fh = NFS_FH(inode),
- .page = page,
- .bitmask = bitmask,
- .migration = 1, /* skip LOOKUP */
-@@ -7989,11 +7935,11 @@ static int _nfs41_proc_get_locations(struct nfs_server *server,
- * -NFS4ERR_LEASE_MOVED is returned if the server still has leases
- * from this client that require migration recovery.
- */
--int nfs4_proc_get_locations(struct nfs_server *server,
-- struct nfs_fh *fhandle,
-+int nfs4_proc_get_locations(struct inode *inode,
- struct nfs4_fs_locations *locations,
- struct page *page, const struct cred *cred)
- {
-+ struct nfs_server *server = NFS_SERVER(inode);
- struct nfs_client *clp = server->nfs_client;
- const struct nfs4_mig_recovery_ops *ops =
- clp->cl_mvops->mig_recovery_ops;
-@@ -8006,11 +7952,10 @@ int nfs4_proc_get_locations(struct nfs_server *server,
- (unsigned long long)server->fsid.major,
- (unsigned long long)server->fsid.minor,
- clp->cl_hostname);
-- nfs_display_fhandle(fhandle, __func__);
-+ nfs_display_fhandle(NFS_FH(inode), __func__);
-
- do {
-- status = ops->get_locations(server, fhandle, locations, page,
-- cred);
-+ status = ops->get_locations(inode, locations, page, cred);
- if (status != -NFS4ERR_DELAY)
- break;
- nfs4_handle_exception(server, status, &exception);
-@@ -10479,7 +10424,6 @@ const struct nfs_rpc_ops nfs_v4_clientops = {
- .free_client = nfs4_free_client,
- .create_server = nfs4_create_server,
- .clone_server = nfs_clone_server,
-- .discover_trunking = nfs4_discover_trunking,
- };
-
- static const struct xattr_handler nfs4_xattr_nfs4_acl_handler = {
-diff --git a/fs/nfs/nfs4state.c b/fs/nfs/nfs4state.c
-index 499bef9fe11863..f3265575c28d20 100644
---- a/fs/nfs/nfs4state.c
-+++ b/fs/nfs/nfs4state.c
-@@ -2098,8 +2098,7 @@ static int nfs4_try_migration(struct nfs_server *server, const struct cred *cred
- }
-
- inode = d_inode(server->super->s_root);
-- result = nfs4_proc_get_locations(server, NFS_FH(inode), locations,
-- page, cred);
-+ result = nfs4_proc_get_locations(inode, locations, page, cred);
- if (result) {
- dprintk("<-- %s: failed to retrieve fs_locations: %d\n",
- __func__, result);
-diff --git a/include/linux/nfs_xdr.h b/include/linux/nfs_xdr.h
-index 695fa84611b667..967a0098f0a979 100644
---- a/include/linux/nfs_xdr.h
-+++ b/include/linux/nfs_xdr.h
-@@ -1795,7 +1795,6 @@ struct nfs_rpc_ops {
- struct nfs_server *(*create_server)(struct fs_context *);
- struct nfs_server *(*clone_server)(struct nfs_server *, struct nfs_fh *,
- struct nfs_fattr *, rpc_authflavor_t);
-- int (*discover_trunking)(struct nfs_server *, struct nfs_fh *);
- };
-
- /*
diff --git a/0001-ZEN-Add-sysctl-and-CONFIG-to-disallow-unprivileged-CLONE_NEWUSER.patch b/0101-ZEN_Add_sysctl_and_CONFIG_to_disallow_unprivileged_CLONE_NEWUSER.patch
index 5301464f63c0..cc7b28782422 100644
--- a/0001-ZEN-Add-sysctl-and-CONFIG-to-disallow-unprivileged-CLONE_NEWUSER.patch
+++ b/0101-ZEN_Add_sysctl_and_CONFIG_to_disallow_unprivileged_CLONE_NEWUSER.patch
@@ -1,25 +1,48 @@
---- a/include/linux/sysctl.h 2020-06-12 19:27:22.382363840 +0200
-+++ b/include/linux/sysctl.h 2020-06-12 19:27:04.715697333 +0200
-@@ -204,6 +204,10 @@ extern int unaligned_enabled;
- extern int unaligned_dump_stack;
- extern int no_unaligned_warning;
-
-+#ifdef CONFIG_USER_NS
+From ba9638ad03df373965160a5bdb4173b544381767 Mon Sep 17 00:00:00 2001
+From: "Jan Alexander Steffens (heftig)" <jan.steffens@gmail.com>
+Date: Mon, 16 Sep 2019 04:53:20 +0200
+Subject: [PATCH] ZEN: Add sysctl and CONFIG to disallow unprivileged
+ CLONE_NEWUSER
+
+Our default behavior continues to match the vanilla kernel.
+---
+ include/linux/user_namespace.h | 4 ++++
+ init/Kconfig | 16 ++++++++++++++++
+ kernel/fork.c | 14 ++++++++++++++
+ kernel/sysctl.c | 12 ++++++++++++
+ kernel/user_namespace.c | 7 +++++++
+ 5 files changed, 53 insertions(+)
+
+diff --git a/include/linux/user_namespace.h b/include/linux/user_namespace.h
+index 33a4240e6a6f17..82213f9c4c17fb 100644
+--- a/include/linux/user_namespace.h
++++ b/include/linux/user_namespace.h
+@@ -139,6 +139,8 @@ static inline void set_rlimit_ucount_max(struct user_namespace *ns,
+
+ #ifdef CONFIG_USER_NS
+
+extern int unprivileged_userns_clone;
-+#endif
+
- extern struct ctl_table sysctl_mount_point[];
- extern struct ctl_table random_table[];
- extern struct ctl_table firmware_config_table[];
+ static inline struct user_namespace *get_user_ns(struct user_namespace *ns)
+ {
+ if (ns)
+@@ -172,6 +174,8 @@ extern bool current_in_userns(const struct user_namespace *target_ns);
+ struct ns_common *ns_get_owner(struct ns_common *ns);
+ #else
++#define unprivileged_userns_clone 0
++
+ static inline struct user_namespace *get_user_ns(struct user_namespace *ns)
+ {
+ return &init_user_ns;
diff --git a/init/Kconfig b/init/Kconfig
-index bd7d650d4a99..658f9c052151 100644
+index e9119bf54b1f32..a1a5a68aea0708 100644
--- a/init/Kconfig
+++ b/init/Kconfig
-@@ -1091,6 +1091,22 @@ config USER_NS
-
+@@ -1231,6 +1231,22 @@ config USER_NS
+
If unsure, say N.
-
+
+config USER_NS_UNPRIVILEGED
+ bool "Allow unprivileged users to create namespaces"
+ default y
@@ -40,25 +63,24 @@ index bd7d650d4a99..658f9c052151 100644
bool "PID Namespaces"
default y
diff --git a/kernel/fork.c b/kernel/fork.c
-index 541fd805fb88..ffd57c812153 100644
+index f1e89007f22889..49144b49a3d128 100644
--- a/kernel/fork.c
+++ b/kernel/fork.c
-@@ -106,6 +106,11 @@
-
- #define CREATE_TRACE_POINTS
- #include <trace/events/task.h>
+@@ -98,6 +98,10 @@
+ #include <linux/io_uring.h>
+ #include <linux/bpf.h>
+
+#ifdef CONFIG_USER_NS
-+extern int unprivileged_userns_clone;
-+#else
-+#define unprivileged_userns_clone 0
++#include <linux/user_namespace.h>
+#endif
-
- /*
- * Minimum number of threads to boot the kernel
-@@ -1788,6 +1793,10 @@ static __latent_entropy struct task_struct *copy_process(
++
+ #include <asm/pgalloc.h>
+ #include <linux/uaccess.h>
+ #include <asm/mmu_context.h>
+@@ -1922,6 +1926,10 @@ static __latent_entropy struct task_struct *copy_process(
if ((clone_flags & (CLONE_NEWUSER|CLONE_FS)) == (CLONE_NEWUSER|CLONE_FS))
return ERR_PTR(-EINVAL);
-
+
+ if ((clone_flags & CLONE_NEWUSER) && !unprivileged_userns_clone)
+ if (!capable(CAP_SYS_ADMIN))
+ return ERR_PTR(-EPERM);
@@ -66,10 +88,10 @@ index 541fd805fb88..ffd57c812153 100644
/*
* Thread groups must share signals as well, and detached threads
* can only be started up within the thread group.
-@@ -2819,6 +2828,12 @@ int ksys_unshare(unsigned long unshare_flags)
+@@ -3036,6 +3044,12 @@ int ksys_unshare(unsigned long unshare_flags)
if (unshare_flags & CLONE_NEWNS)
unshare_flags |= CLONE_FS;
-
+
+ if ((unshare_flags & CLONE_NEWUSER) && !unprivileged_userns_clone) {
+ err = -EPERM;
+ if (!capable(CAP_SYS_ADMIN))
@@ -80,13 +102,23 @@ index 541fd805fb88..ffd57c812153 100644
if (err)
goto bad_unshare_out;
diff --git a/kernel/sysctl.c b/kernel/sysctl.c
-index 078950d9605b..baead3605bbe 100644
+index 730ab56d9e92e6..6cf4e5c36ec925 100644
--- a/kernel/sysctl.c
+++ b/kernel/sysctl.c
-@@ -545,6 +548,15 @@ static struct ctl_table kern_table[] = {
+@@ -91,6 +91,9 @@
+ #if defined(CONFIG_PROVE_LOCKING) || defined(CONFIG_LOCK_STAT)
+ #include <linux/lockdep.h>
+ #endif
++#ifdef CONFIG_USER_NS
++#include <linux/user_namespace.h>
++#endif
+
+ #if defined(CONFIG_SYSCTL)
+
+@@ -1814,6 +1817,15 @@ static struct ctl_table kern_table[] = {
+ .mode = 0644,
.proc_handler = proc_dointvec,
},
- #endif
+#ifdef CONFIG_USER_NS
+ {
+ .procname = "unprivileged_userns_clone",
@@ -100,13 +132,13 @@ index 078950d9605b..baead3605bbe 100644
{
.procname = "tainted",
diff --git a/kernel/user_namespace.c b/kernel/user_namespace.c
-index 8eadadc478f9..c36ecd19562c 100644
+index 5481ba44a8d684..423ab2563ad757 100644
--- a/kernel/user_namespace.c
+++ b/kernel/user_namespace.c
@@ -21,6 +21,13 @@
#include <linux/bsearch.h>
#include <linux/sort.h>
-
+
+/* sysctl */
+#ifdef CONFIG_USER_NS_UNPRIVILEGED
+int unprivileged_userns_clone = 1;
@@ -116,7 +148,3 @@ index 8eadadc478f9..c36ecd19562c 100644
+
static struct kmem_cache *user_ns_cachep __read_mostly;
static DEFINE_MUTEX(userns_state_mutex);
-
---
-cgit v1.2.1-1-g437b
-
diff --git a/0101-i2c-nuvoton-nc677x-hwmon-driver.patch b/0101-i2c-nuvoton-nc677x-hwmon-driver.patch
deleted file mode 100644
index 85f86d0da22d..000000000000
--- a/0101-i2c-nuvoton-nc677x-hwmon-driver.patch
+++ /dev/null
@@ -1,745 +0,0 @@
-From 994279ebfc0d19e185792fb11cacb63e6750e22e Mon Sep 17 00:00:00 2001
-From: "Jan Alexander Steffens (heftig)" <heftig@archlinux.org>
-Date: Mon, 3 Aug 2020 21:18:53 +0200
-Subject: [PATCH] ZEN: Add OpenRGB patches
-
-Squashed commit of the following:
-
-commit 942ded8f8652a4b4e6b46d04938bb66f1eac4c78
-Author: Steven Barrett <steven@liquorix.net>
-Date: Sat Jul 4 21:28:54 2020 -0500
-
- openrgb: Deduplicate piix4 setup for HUDSON2/KERNCZ SMBUS
-
- In the original OpenRGB patches, the initialization code for CZ
- secondary SMBus controllers was copied. Later, an upstream commit
- landed in 5.7 stable that combined the initialization code for both
- primary/secondary smbus channels.
-
- Combine the initialization code ahead of time so upstream merges
- correctly with OpenRGB.
-
- Fixes: https://github.com/zen-kernel/zen-kernel/issues/176
-
-commit a65e3ecf90b24fd44689cc0713af602965ffaf4e
-Author: Steven Barrett <steven@liquorix.net>
-Date: Wed Jun 17 14:24:20 2020 -0500
-
- Add OpenRGB patch - 0c45e26c
-
- Source:
- https://gitlab.com/CalcProgrammer1/OpenRGB/-/raw/master/OpenRGB.patch
-
- History:
- https://gitlab.com/CalcProgrammer1/OpenRGB/-/commits/master/OpenRGB.patch
----
- drivers/i2c/busses/Kconfig | 9 +
- drivers/i2c/busses/Makefile | 1 +
- drivers/i2c/busses/i2c-nct6775.c | 647 +++++++++++++++++++++++++++++++
- drivers/i2c/busses/i2c-piix4.c | 4 +-
- 4 files changed, 659 insertions(+), 2 deletions(-)
- create mode 100644 drivers/i2c/busses/i2c-nct6775.c
-
-diff --git a/drivers/i2c/busses/Kconfig b/drivers/i2c/busses/Kconfig
-index 735bf31a3fdff..3bf00363cd769 100644
---- a/drivers/i2c/busses/Kconfig
-+++ b/drivers/i2c/busses/Kconfig
-@@ -217,6 +217,15 @@ config I2C_CHT_WC
- combined with a FUSB302 Type-C port-controller as such it is advised
- to also select CONFIG_TYPEC_FUSB302=m.
-
-+config I2C_NCT6775
-+ tristate "Nuvoton NCT6775 and compatible SMBus controller"
-+ help
-+ If you say yes to this option, support will be included for the
-+ Nuvoton NCT6775 and compatible SMBus controllers.
-+
-+ This driver can also be built as a module. If so, the module
-+ will be called i2c-nct6775.
-+
- config I2C_NFORCE2
- tristate "Nvidia nForce2, nForce3 and nForce4"
- depends on PCI
-diff --git a/drivers/i2c/busses/Makefile b/drivers/i2c/busses/Makefile
-index 306d5dc3f417f..7e75d45c64e5b 100644
---- a/drivers/i2c/busses/Makefile
-+++ b/drivers/i2c/busses/Makefile
-@@ -17,6 +17,7 @@ obj-$(CONFIG_I2C_CHT_WC) += i2c-cht-wc.o
- obj-$(CONFIG_I2C_I801) += i2c-i801.o
- obj-$(CONFIG_I2C_ISCH) += i2c-isch.o
- obj-$(CONFIG_I2C_ISMT) += i2c-ismt.o
-+obj-$(CONFIG_I2C_NCT6775) += i2c-nct6775.o
- obj-$(CONFIG_I2C_NFORCE2) += i2c-nforce2.o
- obj-$(CONFIG_I2C_NFORCE2_S4985) += i2c-nforce2-s4985.o
- obj-$(CONFIG_I2C_NVIDIA_GPU) += i2c-nvidia-gpu.o
-diff --git a/drivers/i2c/busses/i2c-nct6775.c b/drivers/i2c/busses/i2c-nct6775.c
-new file mode 100644
-index 0000000000000..0462f09520431
---- /dev/null
-+++ b/drivers/i2c/busses/i2c-nct6775.c
-@@ -0,0 +1,647 @@
-+/*
-+ * i2c-nct6775 - Driver for the SMBus master functionality of
-+ * Nuvoton NCT677x Super-I/O chips
-+ *
-+ * Copyright (C) 2019 Adam Honse <calcprogrammer1@gmail.com>
-+ *
-+ * Derived from nct6775 hwmon driver
-+ * Copyright (C) 2012 Guenter Roeck <linux@roeck-us.net>
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-+ * GNU General Public License for more details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, write to the Free Software
-+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-+ *
-+ */
-+
-+#include <linux/module.h>
-+#include <linux/init.h>
-+#include <linux/slab.h>
-+#include <linux/jiffies.h>
-+#include <linux/platform_device.h>
-+#include <linux/hwmon.h>
-+#include <linux/hwmon-sysfs.h>
-+#include <linux/hwmon-vid.h>
-+#include <linux/err.h>
-+#include <linux/mutex.h>
-+#include <linux/delay.h>
-+#include <linux/ioport.h>
-+#include <linux/i2c.h>
-+#include <linux/acpi.h>
-+#include <linux/bitops.h>
-+#include <linux/dmi.h>
-+#include <linux/io.h>
-+#include <linux/nospec.h>
-+
-+#define DRVNAME "i2c-nct6775"
-+
-+/* Nuvoton SMBus address offsets */
-+#define SMBHSTDAT (0 + nuvoton_nct6793d_smba)
-+#define SMBBLKSZ (1 + nuvoton_nct6793d_smba)
-+#define SMBHSTCMD (2 + nuvoton_nct6793d_smba)
-+#define SMBHSTIDX (3 + nuvoton_nct6793d_smba) //Index field is the Command field on other controllers
-+#define SMBHSTCTL (4 + nuvoton_nct6793d_smba)
-+#define SMBHSTADD (5 + nuvoton_nct6793d_smba)
-+#define SMBHSTERR (9 + nuvoton_nct6793d_smba)
-+#define SMBHSTSTS (0xE + nuvoton_nct6793d_smba)
-+
-+/* Command register */
-+#define NCT6793D_READ_BYTE 0
-+#define NCT6793D_READ_WORD 1
-+#define NCT6793D_READ_BLOCK 2
-+#define NCT6793D_BLOCK_WRITE_READ_PROC_CALL 3
-+#define NCT6793D_PROC_CALL 4
-+#define NCT6793D_WRITE_BYTE 8
-+#define NCT6793D_WRITE_WORD 9
-+#define NCT6793D_WRITE_BLOCK 10
-+
-+/* Control register */
-+#define NCT6793D_MANUAL_START 128
-+#define NCT6793D_SOFT_RESET 64
-+
-+/* Error register */
-+#define NCT6793D_NO_ACK 32
-+
-+/* Status register */
-+#define NCT6793D_FIFO_EMPTY 1
-+#define NCT6793D_FIFO_FULL 2
-+#define NCT6793D_MANUAL_ACTIVE 4
-+
-+#define NCT6775_LD_SMBUS 0x0B
-+
-+/* Other settings */
-+#define MAX_RETRIES 400
-+
-+enum kinds { nct6106, nct6775, nct6776, nct6779, nct6791, nct6792, nct6793,
-+ nct6795, nct6796, nct6798 };
-+
-+struct nct6775_sio_data {
-+ int sioreg;
-+ enum kinds kind;
-+};
-+
-+/* used to set data->name = nct6775_device_names[data->sio_kind] */
-+static const char * const nct6775_device_names[] = {
-+ "nct6106",
-+ "nct6775",
-+ "nct6776",
-+ "nct6779",
-+ "nct6791",
-+ "nct6792",
-+ "nct6793",
-+ "nct6795",
-+ "nct6796",
-+ "nct6798",
-+};
-+
-+static const char * const nct6775_sio_names[] __initconst = {
-+ "NCT6106D",
-+ "NCT6775F",
-+ "NCT6776D/F",
-+ "NCT6779D",
-+ "NCT6791D",
-+ "NCT6792D",
-+ "NCT6793D",
-+ "NCT6795D",
-+ "NCT6796D",
-+ "NCT6798D",
-+};
-+
-+#define SIO_REG_LDSEL 0x07 /* Logical device select */
-+#define SIO_REG_DEVID 0x20 /* Device ID (2 bytes) */
-+#define SIO_REG_SMBA 0x62 /* SMBus base address register */
-+
-+#define SIO_NCT6106_ID 0xc450
-+#define SIO_NCT6775_ID 0xb470
-+#define SIO_NCT6776_ID 0xc330
-+#define SIO_NCT6779_ID 0xc560
-+#define SIO_NCT6791_ID 0xc800
-+#define SIO_NCT6792_ID 0xc910
-+#define SIO_NCT6793_ID 0xd120
-+#define SIO_NCT6795_ID 0xd350
-+#define SIO_NCT6796_ID 0xd420
-+#define SIO_NCT6798_ID 0xd428
-+#define SIO_ID_MASK 0xFFF0
-+
-+static inline void
-+superio_outb(int ioreg, int reg, int val)
-+{
-+ outb(reg, ioreg);
-+ outb(val, ioreg + 1);
-+}
-+
-+static inline int
-+superio_inb(int ioreg, int reg)
-+{
-+ outb(reg, ioreg);
-+ return inb(ioreg + 1);
-+}
-+
-+static inline void
-+superio_select(int ioreg, int ld)
-+{
-+ outb(SIO_REG_LDSEL, ioreg);
-+ outb(ld, ioreg + 1);
-+}
-+
-+static inline int
-+superio_enter(int ioreg)
-+{
-+ /*
-+ * Try to reserve <ioreg> and <ioreg + 1> for exclusive access.
-+ */
-+ if (!request_muxed_region(ioreg, 2, DRVNAME))
-+ return -EBUSY;
-+
-+ outb(0x87, ioreg);
-+ outb(0x87, ioreg);
-+
-+ return 0;
-+}
-+
-+static inline void
-+superio_exit(int ioreg)
-+{
-+ outb(0xaa, ioreg);
-+ outb(0x02, ioreg);
-+ outb(0x02, ioreg + 1);
-+ release_region(ioreg, 2);
-+}
-+
-+/*
-+ * ISA constants
-+ */
-+
-+#define IOREGION_ALIGNMENT (~7)
-+#define IOREGION_LENGTH 2
-+#define ADDR_REG_OFFSET 0
-+#define DATA_REG_OFFSET 1
-+
-+#define NCT6775_REG_BANK 0x4E
-+#define NCT6775_REG_CONFIG 0x40
-+
-+static struct i2c_adapter *nct6775_adapter;
-+
-+struct i2c_nct6775_adapdata {
-+ unsigned short smba;
-+};
-+
-+/* Return negative errno on error. */
-+static s32 nct6775_access(struct i2c_adapter * adap, u16 addr,
-+ unsigned short flags, char read_write,
-+ u8 command, int size, union i2c_smbus_data * data)
-+{
-+ struct i2c_nct6775_adapdata *adapdata = i2c_get_adapdata(adap);
-+ unsigned short nuvoton_nct6793d_smba = adapdata->smba;
-+ int i, len, cnt;
-+ union i2c_smbus_data tmp_data;
-+ int timeout = 0;
-+
-+ tmp_data.word = 0;
-+ cnt = 0;
-+ len = 0;
-+
-+ outb_p(NCT6793D_SOFT_RESET, SMBHSTCTL);
-+
-+ switch (size) {
-+ case I2C_SMBUS_QUICK:
-+ outb_p((addr << 1) | read_write,
-+ SMBHSTADD);
-+ break;
-+ case I2C_SMBUS_BYTE_DATA:
-+ tmp_data.byte = data->byte;
-+ case I2C_SMBUS_BYTE:
-+ outb_p((addr << 1) | read_write,
-+ SMBHSTADD);
-+ outb_p(command, SMBHSTIDX);
-+ if (read_write == I2C_SMBUS_WRITE) {
-+ outb_p(tmp_data.byte, SMBHSTDAT);
-+ outb_p(NCT6793D_WRITE_BYTE, SMBHSTCMD);
-+ }
-+ else {
-+ outb_p(NCT6793D_READ_BYTE, SMBHSTCMD);
-+ }
-+ break;
-+ case I2C_SMBUS_WORD_DATA:
-+ outb_p((addr << 1) | read_write,
-+ SMBHSTADD);
-+ outb_p(command, SMBHSTIDX);
-+ if (read_write == I2C_SMBUS_WRITE) {
-+ outb_p(data->word & 0xff, SMBHSTDAT);
-+ outb_p((data->word & 0xff00) >> 8, SMBHSTDAT);
-+ outb_p(NCT6793D_WRITE_WORD, SMBHSTCMD);
-+ }
-+ else {
-+ outb_p(NCT6793D_READ_WORD, SMBHSTCMD);
-+ }
-+ break;
-+ case I2C_SMBUS_BLOCK_DATA:
-+ outb_p((addr << 1) | read_write,
-+ SMBHSTADD);
-+ outb_p(command, SMBHSTIDX);
-+ if (read_write == I2C_SMBUS_WRITE) {
-+ len = data->block[0];
-+ if (len == 0 || len > I2C_SMBUS_BLOCK_MAX)
-+ return -EINVAL;
-+ outb_p(len, SMBBLKSZ);
-+
-+ cnt = 1;
-+ if (len >= 4) {
-+ for (i = cnt; i <= 4; i++) {
-+ outb_p(data->block[i], SMBHSTDAT);
-+ }
-+
-+ len -= 4;
-+ cnt += 4;
-+ }
-+ else {
-+ for (i = cnt; i <= len; i++ ) {
-+ outb_p(data->block[i], SMBHSTDAT);
-+ }
-+
-+ len = 0;
-+ }
-+
-+ outb_p(NCT6793D_WRITE_BLOCK, SMBHSTCMD);
-+ }
-+ else {
-+ return -ENOTSUPP;
-+ }
-+ break;
-+ default:
-+ dev_warn(&adap->dev, "Unsupported transaction %d\n", size);
-+ return -EOPNOTSUPP;
-+ }
-+
-+ outb_p(NCT6793D_MANUAL_START, SMBHSTCTL);
-+
-+ while ((size == I2C_SMBUS_BLOCK_DATA) && (len > 0)) {
-+ if (read_write == I2C_SMBUS_WRITE) {
-+ timeout = 0;
-+ while ((inb_p(SMBHSTSTS) & NCT6793D_FIFO_EMPTY) == 0)
-+ {
-+ if(timeout > MAX_RETRIES)
-+ {
-+ return -ETIMEDOUT;
-+ }
-+ usleep_range(250, 500);
-+ timeout++;
-+ }
-+
-+ //Load more bytes into FIFO
-+ if (len >= 4) {
-+ for (i = cnt; i <= (cnt + 4); i++) {
-+ outb_p(data->block[i], SMBHSTDAT);
-+ }
-+
-+ len -= 4;
-+ cnt += 4;
-+ }
-+ else {
-+ for (i = cnt; i <= (cnt + len); i++) {
-+ outb_p(data->block[i], SMBHSTDAT);
-+ }
-+
-+ len = 0;
-+ }
-+ }
-+ else {
-+ return -ENOTSUPP;
-+ }
-+
-+ }
-+
-+ //wait for manual mode to complete
-+ timeout = 0;
-+ while ((inb_p(SMBHSTSTS) & NCT6793D_MANUAL_ACTIVE) != 0)
-+ {
-+ if(timeout > MAX_RETRIES)
-+ {
-+ return -ETIMEDOUT;
-+ }
-+ usleep_range(250, 500);
-+ timeout++;
-+ }
-+
-+ if ((inb_p(SMBHSTERR) & NCT6793D_NO_ACK) != 0) {
-+ return -ENXIO;
-+ }
-+ else if ((read_write == I2C_SMBUS_WRITE) || (size == I2C_SMBUS_QUICK)) {
-+ return 0;
-+ }
-+
-+ switch (size) {
-+ case I2C_SMBUS_QUICK:
-+ case I2C_SMBUS_BYTE_DATA:
-+ data->byte = inb_p(SMBHSTDAT);
-+ break;
-+ case I2C_SMBUS_WORD_DATA:
-+ data->word = inb_p(SMBHSTDAT) + (inb_p(SMBHSTDAT) << 8);
-+ break;
-+ }
-+ return 0;
-+}
-+
-+static u32 nct6775_func(struct i2c_adapter *adapter)
-+{
-+ return I2C_FUNC_SMBUS_QUICK | I2C_FUNC_SMBUS_BYTE |
-+ I2C_FUNC_SMBUS_BYTE_DATA | I2C_FUNC_SMBUS_WORD_DATA |
-+ I2C_FUNC_SMBUS_BLOCK_DATA;
-+}
-+
-+static const struct i2c_algorithm smbus_algorithm = {
-+ .smbus_xfer = nct6775_access,
-+ .functionality = nct6775_func,
-+};
-+
-+static int nct6775_add_adapter(unsigned short smba, const char *name, struct i2c_adapter **padap)
-+{
-+ struct i2c_adapter *adap;
-+ struct i2c_nct6775_adapdata *adapdata;
-+ int retval;
-+
-+ adap = kzalloc(sizeof(*adap), GFP_KERNEL);
-+ if (adap == NULL) {
-+ return -ENOMEM;
-+ }
-+
-+ adap->owner = THIS_MODULE;
-+ adap->class = I2C_CLASS_HWMON | I2C_CLASS_SPD;
-+ adap->algo = &smbus_algorithm;
-+
-+ adapdata = kzalloc(sizeof(*adapdata), GFP_KERNEL);
-+ if (adapdata == NULL) {
-+ kfree(adap);
-+ return -ENOMEM;
-+ }
-+
-+ adapdata->smba = smba;
-+
-+ snprintf(adap->name, sizeof(adap->name),
-+ "SMBus NCT67xx adapter%s at %04x", name, smba);
-+
-+ i2c_set_adapdata(adap, adapdata);
-+
-+ retval = i2c_add_adapter(adap);
-+ if (retval) {
-+ kfree(adapdata);
-+ kfree(adap);
-+ return retval;
-+ }
-+
-+ *padap = adap;
-+ return 0;
-+}
-+
-+static void nct6775_remove_adapter(struct i2c_adapter *adap)
-+{
-+ struct i2c_nct6775_adapdata *adapdata = i2c_get_adapdata(adap);
-+
-+ if (adapdata->smba) {
-+ i2c_del_adapter(adap);
-+ kfree(adapdata);
-+ kfree(adap);
-+ }
-+}
-+
-+//static SIMPLE_DEV_PM_OPS(nct6775_dev_pm_ops, nct6775_suspend, nct6775_resume);
-+
-+/*
-+ * when Super-I/O functions move to a separate file, the Super-I/O
-+ * bus will manage the lifetime of the device and this module will only keep
-+ * track of the nct6775 driver. But since we use platform_device_alloc(), we
-+ * must keep track of the device
-+ */
-+static struct platform_device *pdev[2];
-+
-+static int nct6775_probe(struct platform_device *pdev)
-+{
-+ struct device *dev = &pdev->dev;
-+ struct nct6775_sio_data *sio_data = dev_get_platdata(dev);
-+ struct resource *res;
-+
-+ res = platform_get_resource(pdev, IORESOURCE_IO, 0);
-+ if (!devm_request_region(&pdev->dev, res->start, IOREGION_LENGTH,
-+ DRVNAME))
-+ return -EBUSY;
-+
-+ switch (sio_data->kind) {
-+ case nct6791:
-+ case nct6792:
-+ case nct6793:
-+ case nct6795:
-+ case nct6796:
-+ case nct6798:
-+ nct6775_add_adapter(res->start, "", &nct6775_adapter);
-+ break;
-+ default:
-+ return -ENODEV;
-+ }
-+
-+ return 0;
-+}
-+/*
-+static void nct6791_enable_io_mapping(int sioaddr)
-+{
-+ int val;
-+
-+ val = superio_inb(sioaddr, NCT6791_REG_HM_IO_SPACE_LOCK_ENABLE);
-+ if (val & 0x10) {
-+ pr_info("Enabling hardware monitor logical device mappings.\n");
-+ superio_outb(sioaddr, NCT6791_REG_HM_IO_SPACE_LOCK_ENABLE,
-+ val & ~0x10);
-+ }
-+}*/
-+
-+static struct platform_driver i2c_nct6775_driver = {
-+ .driver = {
-+ .name = DRVNAME,
-+// .pm = &nct6775_dev_pm_ops,
-+ },
-+ .probe = nct6775_probe,
-+};
-+
-+static void __exit i2c_nct6775_exit(void)
-+{
-+ int i;
-+
-+ if(nct6775_adapter)
-+ nct6775_remove_adapter(nct6775_adapter);
-+
-+ for (i = 0; i < ARRAY_SIZE(pdev); i++) {
-+ if (pdev[i])
-+ platform_device_unregister(pdev[i]);
-+ }
-+ platform_driver_unregister(&i2c_nct6775_driver);
-+}
-+
-+/* nct6775_find() looks for a '627 in the Super-I/O config space */
-+static int __init nct6775_find(int sioaddr, struct nct6775_sio_data *sio_data)
-+{
-+ u16 val;
-+ int err;
-+ int addr;
-+
-+ err = superio_enter(sioaddr);
-+ if (err)
-+ return err;
-+
-+ val = (superio_inb(sioaddr, SIO_REG_DEVID) << 8) |
-+ superio_inb(sioaddr, SIO_REG_DEVID + 1);
-+
-+ switch (val & SIO_ID_MASK) {
-+ case SIO_NCT6106_ID:
-+ sio_data->kind = nct6106;
-+ break;
-+ case SIO_NCT6775_ID:
-+ sio_data->kind = nct6775;
-+ break;
-+ case SIO_NCT6776_ID:
-+ sio_data->kind = nct6776;
-+ break;
-+ case SIO_NCT6779_ID:
-+ sio_data->kind = nct6779;
-+ break;
-+ case SIO_NCT6791_ID:
-+ sio_data->kind = nct6791;
-+ break;
-+ case SIO_NCT6792_ID:
-+ sio_data->kind = nct6792;
-+ break;
-+ case SIO_NCT6793_ID:
-+ sio_data->kind = nct6793;
-+ break;
-+ case SIO_NCT6795_ID:
-+ sio_data->kind = nct6795;
-+ break;
-+ case SIO_NCT6796_ID:
-+ sio_data->kind = nct6796;
-+ break;
-+ case SIO_NCT6798_ID:
-+ sio_data->kind = nct6798;
-+ break;
-+ default:
-+ if (val != 0xffff)
-+ pr_debug("unsupported chip ID: 0x%04x\n", val);
-+ superio_exit(sioaddr);
-+ return -ENODEV;
-+ }
-+
-+ /* We have a known chip, find the SMBus I/O address */
-+ superio_select(sioaddr, NCT6775_LD_SMBUS);
-+ val = (superio_inb(sioaddr, SIO_REG_SMBA) << 8)
-+ | superio_inb(sioaddr, SIO_REG_SMBA + 1);
-+ addr = val & IOREGION_ALIGNMENT;
-+ if (addr == 0) {
-+ pr_err("Refusing to enable a Super-I/O device with a base I/O port 0\n");
-+ superio_exit(sioaddr);
-+ return -ENODEV;
-+ }
-+
-+ //if (sio_data->kind == nct6791 || sio_data->kind == nct6792 ||
-+ // sio_data->kind == nct6793 || sio_data->kind == nct6795 ||
-+ // sio_data->kind == nct6796)
-+ // nct6791_enable_io_mapping(sioaddr);
-+
-+ superio_exit(sioaddr);
-+ pr_info("Found %s or compatible chip at %#x:%#x\n",
-+ nct6775_sio_names[sio_data->kind], sioaddr, addr);
-+ sio_data->sioreg = sioaddr;
-+
-+ return addr;
-+}
-+
-+static int __init i2c_nct6775_init(void)
-+{
-+ int i, err;
-+ bool found = false;
-+ int address;
-+ struct resource res;
-+ struct nct6775_sio_data sio_data;
-+ int sioaddr[2] = { 0x2e, 0x4e };
-+
-+ err = platform_driver_register(&i2c_nct6775_driver);
-+ if (err)
-+ return err;
-+
-+ /*
-+ * initialize sio_data->kind and sio_data->sioreg.
-+ *
-+ * when Super-I/O functions move to a separate file, the Super-I/O
-+ * driver will probe 0x2e and 0x4e and auto-detect the presence of a
-+ * nct6775 hardware monitor, and call probe()
-+ */
-+ for (i = 0; i < ARRAY_SIZE(pdev); i++) {
-+ address = nct6775_find(sioaddr[i], &sio_data);
-+ if (address <= 0)
-+ continue;
-+
-+ found = true;
-+
-+ pdev[i] = platform_device_alloc(DRVNAME, address);
-+ if (!pdev[i]) {
-+ err = -ENOMEM;
-+ goto exit_device_unregister;
-+ }
-+
-+ err = platform_device_add_data(pdev[i], &sio_data,
-+ sizeof(struct nct6775_sio_data));
-+ if (err)
-+ goto exit_device_put;
-+
-+ memset(&res, 0, sizeof(res));
-+ res.name = DRVNAME;
-+ res.start = address;
-+ res.end = address + IOREGION_LENGTH - 1;
-+ res.flags = IORESOURCE_IO;
-+
-+ err = acpi_check_resource_conflict(&res);
-+ if (err) {
-+ platform_device_put(pdev[i]);
-+ pdev[i] = NULL;
-+ continue;
-+ }
-+
-+ err = platform_device_add_resources(pdev[i], &res, 1);
-+ if (err)
-+ goto exit_device_put;
-+
-+ /* platform_device_add calls probe() */
-+ err = platform_device_add(pdev[i]);
-+ if (err)
-+ goto exit_device_put;
-+ }
-+ if (!found) {
-+ err = -ENODEV;
-+ goto exit_unregister;
-+ }
-+
-+ return 0;
-+
-+exit_device_put:
-+ platform_device_put(pdev[i]);
-+exit_device_unregister:
-+ while (--i >= 0) {
-+ if (pdev[i])
-+ platform_device_unregister(pdev[i]);
-+ }
-+exit_unregister:
-+ platform_driver_unregister(&i2c_nct6775_driver);
-+ return err;
-+}
-+
-+MODULE_AUTHOR("Adam Honse <calcprogrammer1@gmail.com>");
-+MODULE_DESCRIPTION("SMBus driver for NCT6775F and compatible chips");
-+MODULE_LICENSE("GPL");
-+
-+module_init(i2c_nct6775_init);
-+module_exit(i2c_nct6775_exit);
-diff --git a/drivers/i2c/busses/i2c-piix4.c b/drivers/i2c/busses/i2c-piix4.c
-index 69740a4ff1db2..b70738fbe72a4 100644
---- a/drivers/i2c/busses/i2c-piix4.c
-+++ b/drivers/i2c/busses/i2c-piix4.c
-@@ -467,11 +467,11 @@ static int piix4_transaction(struct i2c_adapter *piix4_adapter)
- if (srvrworks_csb5_delay) /* Extra delay for SERVERWORKS_CSB5 */
- usleep_range(2000, 2100);
- else
-- usleep_range(250, 500);
-+ usleep_range(25, 50);
-
- while ((++timeout < MAX_TIMEOUT) &&
- ((temp = inb_p(SMBHSTSTS)) & 0x01))
-- usleep_range(250, 500);
-+ usleep_range(25, 50);
-
- /* If the SMBus is still busy, we give up */
- if (timeout == MAX_TIMEOUT) {
diff --git a/0102-random-treat_bootloader_trust_toggle_the_same_way_as_cpu_trust_toggle.patch b/0102-random-treat_bootloader_trust_toggle_the_same_way_as_cpu_trust_toggle.patch
new file mode 100644
index 000000000000..1b31d8c2743d
--- /dev/null
+++ b/0102-random-treat_bootloader_trust_toggle_the_same_way_as_cpu_trust_toggle.patch
@@ -0,0 +1,91 @@
+From 22365749abd27f2cb582a049da42b7c7a02b6bfe Mon Sep 17 00:00:00 2001
+From: "Jason A. Donenfeld" <Jason@zx2c4.com>
+Date: Wed, 23 Mar 2022 23:09:30 -0600
+Subject: [PATCH] random: treat bootloader trust toggle the same way as cpu
+ trust toggle
+
+If CONFIG_RANDOM_TRUST_CPU is set, the RNG initializes using RDRAND.
+But, the user can disable (or enable) this behavior by setting
+`random.trust_cpu=0/1` on the kernel command line. This allows system
+builders to do reasonable things while avoiding howls from tinfoil
+hatters. (Or vice versa.)
+
+CONFIG_RANDOM_TRUST_BOOTLOADER is basically the same thing, but regards
+the seed passed via EFI or device tree, which might come from RDRAND or
+a TPM or somewhere else. In order to allow distros to more easily enable
+this while avoiding those same howls (or vice versa), this commit adds
+the corresponding `random.trust_bootloader=0/1` toggle.
+
+Cc: Theodore Ts'o <tytso@mit.edu>
+Cc: Graham Christensen <graham@grahamc.com>
+Reviewed-by: Ard Biesheuvel <ardb@kernel.org>
+Reviewed-by: Dominik Brodowski <linux@dominikbrodowski.net>
+Link: https://github.com/NixOS/nixpkgs/pull/165355
+Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
+---
+ Documentation/admin-guide/kernel-parameters.txt | 6 ++++++
+ drivers/char/Kconfig | 3 ++-
+ drivers/char/random.c | 8 +++++++-
+ 3 files changed, 15 insertions(+), 2 deletions(-)
+
+diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentation/admin-guide/kernel-parameters.txt
+index 7123524a86b8b4..973e1de5f29e91 100644
+--- a/Documentation/admin-guide/kernel-parameters.txt
++++ b/Documentation/admin-guide/kernel-parameters.txt
+@@ -4356,6 +4356,12 @@
+ fully seed the kernel's CRNG. Default is controlled
+ by CONFIG_RANDOM_TRUST_CPU.
+
++ random.trust_bootloader={on,off}
++ [KNL] Enable or disable trusting the use of the
++ a seed passed by the bootloader (if available) to
++ fully seed the kernel's CRNG. Default is controlled
++ by CONFIG_RANDOM_TRUST_BOOTLOADER.
++
+ randomize_kstack_offset=
+ [KNL] Enable or disable kernel stack offset
+ randomization, which provides roughly 5 bits of
+diff --git a/drivers/char/Kconfig b/drivers/char/Kconfig
+index 740811893c5705..55f48375e3fe54 100644
+--- a/drivers/char/Kconfig
++++ b/drivers/char/Kconfig
+@@ -449,6 +449,7 @@ config RANDOM_TRUST_BOOTLOADER
+ device randomness. Say Y here to assume the entropy provided by the
+ booloader is trustworthy so it will be added to the kernel's entropy
+ pool. Otherwise, say N here so it will be regarded as device input that
+- only mixes the entropy pool.
++ only mixes the entropy pool. This can also be configured at boot with
++ "random.trust_bootloader=on/off".
+
+ endmenu
+diff --git a/drivers/char/random.c b/drivers/char/random.c
+index 3404a91edf2929..19bf14e253f70c 100644
+--- a/drivers/char/random.c
++++ b/drivers/char/random.c
+@@ -738,11 +738,17 @@ static void invalidate_batched_entropy(void);
+ static void numa_crng_init(void);
+
+ static bool trust_cpu __ro_after_init = IS_ENABLED(CONFIG_RANDOM_TRUST_CPU);
++static bool trust_bootloader __ro_after_init = IS_ENABLED(CONFIG_RANDOM_TRUST_BOOTLOADER);
+ static int __init parse_trust_cpu(char *arg)
+ {
+ return kstrtobool(arg, &trust_cpu);
+ }
++static int __init parse_trust_bootloader(char *arg)
++{
++ return kstrtobool(arg, &trust_bootloader);
++}
+ early_param("random.trust_cpu", parse_trust_cpu);
++early_param("random.trust_bootloader", parse_trust_bootloader);
+
+ static bool crng_init_try_arch(struct crng_state *crng)
+ {
+@@ -2229,7 +2235,7 @@ EXPORT_SYMBOL_GPL(add_hwgenerator_randomness);
+ */
+ void add_bootloader_randomness(const void *buf, unsigned int size)
+ {
+- if (IS_ENABLED(CONFIG_RANDOM_TRUST_BOOTLOADER))
++ if (trust_bootloader)
+ add_hwgenerator_randomness(buf, size, size * 8);
+ else
+ add_device_randomness(buf, size);
diff --git a/0103-Revert-swiotlb-rework-fix_info_leak_with_DMA_FROM_DEVICE.patch b/0103-Revert-swiotlb-rework-fix_info_leak_with_DMA_FROM_DEVICE.patch
new file mode 100644
index 000000000000..d05c5d1c976a
--- /dev/null
+++ b/0103-Revert-swiotlb-rework-fix_info_leak_with_DMA_FROM_DEVICE.patch
@@ -0,0 +1,192 @@
+From 29f850827951966fefbea50555995775129f9516 Mon Sep 17 00:00:00 2001
+From: Linus Torvalds <torvalds@linux-foundation.org>
+Date: Sat, 26 Mar 2022 10:42:04 -0700
+Subject: [PATCH] Revert "swiotlb: rework "fix info leak with DMA_FROM_DEVICE""
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+commit bddac7c1e02ba47f0570e494c9289acea3062cc1 upstream.
+
+This reverts commit aa6f8dcbab473f3a3c7454b74caa46d36cdc5d13.
+
+It turns out this breaks at least the ath9k wireless driver, and
+possibly others.
+
+What the ath9k driver does on packet receive is to set up the DMA
+transfer with:
+
+ int ath_rx_init(..)
+ ..
+ bf->bf_buf_addr = dma_map_single(sc->dev, skb->data,
+ common->rx_bufsize,
+ DMA_FROM_DEVICE);
+
+and then the receive logic (through ath_rx_tasklet()) will fetch
+incoming packets
+
+ static bool ath_edma_get_buffers(..)
+ ..
+ dma_sync_single_for_cpu(sc->dev, bf->bf_buf_addr,
+ common->rx_bufsize, DMA_FROM_DEVICE);
+
+ ret = ath9k_hw_process_rxdesc_edma(ah, rs, skb->data);
+ if (ret == -EINPROGRESS) {
+ /*let device gain the buffer again*/
+ dma_sync_single_for_device(sc->dev, bf->bf_buf_addr,
+ common->rx_bufsize, DMA_FROM_DEVICE);
+ return false;
+ }
+
+and it's worth noting how that first DMA sync:
+
+ dma_sync_single_for_cpu(..DMA_FROM_DEVICE);
+
+is there to make sure the CPU can read the DMA buffer (possibly by
+copying it from the bounce buffer area, or by doing some cache flush).
+The iommu correctly turns that into a "copy from bounce bufer" so that
+the driver can look at the state of the packets.
+
+In the meantime, the device may continue to write to the DMA buffer, but
+we at least have a snapshot of the state due to that first DMA sync.
+
+But that _second_ DMA sync:
+
+ dma_sync_single_for_device(..DMA_FROM_DEVICE);
+
+is telling the DMA mapping that the CPU wasn't interested in the area
+because the packet wasn't there. In the case of a DMA bounce buffer,
+that is a no-op.
+
+Note how it's not a sync for the CPU (the "for_device()" part), and it's
+not a sync for data written by the CPU (the "DMA_FROM_DEVICE" part).
+
+Or rather, it _should_ be a no-op. That's what commit aa6f8dcbab47
+broke: it made the code bounce the buffer unconditionally, and changed
+the DMA_FROM_DEVICE to just unconditionally and illogically be
+DMA_TO_DEVICE.
+
+[ Side note: purely within the confines of the swiotlb driver it wasn't
+ entirely illogical: The reason it did that odd DMA_FROM_DEVICE ->
+ DMA_TO_DEVICE conversion thing is because inside the swiotlb driver,
+ it uses just a swiotlb_bounce() helper that doesn't care about the
+ whole distinction of who the sync is for - only which direction to
+ bounce.
+
+ So it took the "sync for device" to mean that the CPU must have been
+ the one writing, and thought it meant DMA_TO_DEVICE. ]
+
+Also note how the commentary in that commit was wrong, probably due to
+that whole confusion, claiming that the commit makes the swiotlb code
+
+ "bounce unconditionally (that is, also
+ when dir == DMA_TO_DEVICE) in order do avoid synchronising back stale
+ data from the swiotlb buffer"
+
+which is nonsensical for two reasons:
+
+ - that "also when dir == DMA_TO_DEVICE" is nonsensical, as that was
+ exactly when it always did - and should do - the bounce.
+
+ - since this is a sync for the device (not for the CPU), we're clearly
+ fundamentally not coping back stale data from the bounce buffers at
+ all, because we'd be copying *to* the bounce buffers.
+
+So that commit was just very confused. It confused the direction of the
+synchronization (to the device, not the cpu) with the direction of the
+DMA (from the device).
+
+Reported-and-bisected-by: Oleksandr Natalenko <oleksandr@natalenko.name>
+Reported-by: Olha Cherevyk <olha.cherevyk@gmail.com>
+Cc: Halil Pasic <pasic@linux.ibm.com>
+Cc: Christoph Hellwig <hch@lst.de>
+Cc: Kalle Valo <kvalo@kernel.org>
+Cc: Robin Murphy <robin.murphy@arm.com>
+Cc: Toke Høiland-Jørgensen <toke@toke.dk>
+Cc: Maxime Bizon <mbizon@freebox.fr>
+Cc: Johannes Berg <johannes@sipsolutions.net>
+Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+Backported-for: https://bugs.archlinux.org/task/74187
+---
+ Documentation/core-api/dma-attributes.rst | 8 ++++++++
+ include/linux/dma-mapping.h | 8 ++++++++
+ kernel/dma/swiotlb.c | 23 ++++++++---------------
+ 3 files changed, 24 insertions(+), 15 deletions(-)
+
+diff --git a/Documentation/core-api/dma-attributes.rst b/Documentation/core-api/dma-attributes.rst
+index 1887d92e8e9269..17706dc91ec9fc 100644
+--- a/Documentation/core-api/dma-attributes.rst
++++ b/Documentation/core-api/dma-attributes.rst
+@@ -130,3 +130,11 @@ accesses to DMA buffers in both privileged "supervisor" and unprivileged
+ subsystem that the buffer is fully accessible at the elevated privilege
+ level (and ideally inaccessible or at least read-only at the
+ lesser-privileged levels).
++
++DMA_ATTR_OVERWRITE
++------------------
++
++This is a hint to the DMA-mapping subsystem that the device is expected to
++overwrite the entire mapped size, thus the caller does not require any of the
++previous buffer contents to be preserved. This allows bounce-buffering
++implementations to optimise DMA_FROM_DEVICE transfers.
+diff --git a/include/linux/dma-mapping.h b/include/linux/dma-mapping.h
+index dca2b1355bb133..6150d11a607e1c 100644
+--- a/include/linux/dma-mapping.h
++++ b/include/linux/dma-mapping.h
+@@ -61,6 +61,14 @@
+ */
+ #define DMA_ATTR_PRIVILEGED (1UL << 9)
+
++/*
++ * This is a hint to the DMA-mapping subsystem that the device is expected
++ * to overwrite the entire mapped size, thus the caller does not require any
++ * of the previous buffer contents to be preserved. This allows
++ * bounce-buffering implementations to optimise DMA_FROM_DEVICE transfers.
++ */
++#define DMA_ATTR_OVERWRITE (1UL << 10)
++
+ /*
+ * A dma_addr_t can hold any valid DMA or bus address for the platform. It can
+ * be given to a device to use as a DMA source or target. It is specific to a
+diff --git a/kernel/dma/swiotlb.c b/kernel/dma/swiotlb.c
+index 6db1c475ec8277..bfc56cb217059e 100644
+--- a/kernel/dma/swiotlb.c
++++ b/kernel/dma/swiotlb.c
+@@ -627,14 +627,10 @@ phys_addr_t swiotlb_tbl_map_single(struct device *dev, phys_addr_t orig_addr,
+ for (i = 0; i < nr_slots(alloc_size + offset); i++)
+ mem->slots[index + i].orig_addr = slot_addr(orig_addr, i);
+ tlb_addr = slot_addr(mem->start, index) + offset;
+- /*
+- * When dir == DMA_FROM_DEVICE we could omit the copy from the orig
+- * to the tlb buffer, if we knew for sure the device will
+- * overwirte the entire current content. But we don't. Thus
+- * unconditional bounce may prevent leaking swiotlb content (i.e.
+- * kernel memory) to user-space.
+- */
+- swiotlb_bounce(dev, tlb_addr, mapping_size, DMA_TO_DEVICE);
++ if (!(attrs & DMA_ATTR_SKIP_CPU_SYNC) &&
++ (!(attrs & DMA_ATTR_OVERWRITE) || dir == DMA_TO_DEVICE ||
++ dir == DMA_BIDIRECTIONAL))
++ swiotlb_bounce(dev, tlb_addr, mapping_size, DMA_TO_DEVICE);
+ return tlb_addr;
+ }
+
+@@ -701,13 +697,10 @@ void swiotlb_tbl_unmap_single(struct device *dev, phys_addr_t tlb_addr,
+ void swiotlb_sync_single_for_device(struct device *dev, phys_addr_t tlb_addr,
+ size_t size, enum dma_data_direction dir)
+ {
+- /*
+- * Unconditional bounce is necessary to avoid corruption on
+- * sync_*_for_cpu or dma_ummap_* when the device didn't overwrite
+- * the whole lengt of the bounce buffer.
+- */
+- swiotlb_bounce(dev, tlb_addr, size, DMA_TO_DEVICE);
+- BUG_ON(!valid_dma_direction(dir));
++ if (dir == DMA_TO_DEVICE || dir == DMA_BIDIRECTIONAL)
++ swiotlb_bounce(dev, tlb_addr, size, DMA_TO_DEVICE);
++ else
++ BUG_ON(dir != DMA_FROM_DEVICE);
+ }
+
+ void swiotlb_sync_single_for_cpu(struct device *dev, phys_addr_t tlb_addr,
diff --git a/0105-quirk-kernel-org-bug-210681-firmware_rome_error.patch b/0105-quirk-kernel-org-bug-210681-firmware_rome_error.patch
deleted file mode 100644
index 7f46da7672da..000000000000
--- a/0105-quirk-kernel-org-bug-210681-firmware_rome_error.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff --git a/drivers/bluetooth/btusb.c b/drivers/bluetooth/btusb.c
-index 03b83aa91277..dfc6c7d1b0e7 100644
---- a/drivers/bluetooth/btusb.c
-+++ b/drivers/bluetooth/btusb.c
-@@ -4070,6 +4070,7 @@ static int btusb_setup_qca(struct hci_dev *hdev)
- }
- if (!info) {
- bt_dev_err(hdev, "don't support firmware rome 0x%x", ver_rom);
-+ if (ver_rom & ~0xffffU) return 0;
- return -ENODEV;
- }
-
diff --git a/PKGBUILD b/PKGBUILD
index 462e4f565ae1..42b51c15435f 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -36,16 +36,11 @@ source=("https://www.kernel.org/pub/linux/kernel/v5.x/linux-${_basekernel}.tar.x
"https://www.kernel.org/pub/linux/kernel/v5.x/patch-${pkgver}.xz"
'config'
# ARCH Patches
- '0001-ZEN-Add-sysctl-and-CONFIG-to-disallow-unprivileged-CLONE_NEWUSER.patch'
- '0002-Btintel_Fix_bdaddress_comparison_with_garbage_value.patch'
- '0003_Bluetooth_Read_codec_capabilities_only_if_supported.patch'
- '0004_Bluetooth_fix_deadlock_for_RFCOMM_sk_state_change.patch'
- '0005_mt76_mt7921_add_support_for_PCIe_ID_0x0608-0x0616.patch'
- '0006_mt76_mt7921_reduce_log_severity_levels_for_informative_messages.patch'
- '0007_Revert_NFSv4.1_query_for_fs_location_attr_on_a_new_file_system.patch'
+ '0101-ZEN_Add_sysctl_and_CONFIG_to_disallow_unprivileged_CLONE_NEWUSER.patch'
+ '0102-random-treat_bootloader_trust_toggle_the_same_way_as_cpu_trust_toggle.patch'
+ '0103-Revert-swiotlb-rework-fix_info_leak_with_DMA_FROM_DEVICE.patch'
# MANJARO Patches
- '0101-i2c-nuvoton-nc677x-hwmon-driver.patch'
- '0105-quirk-kernel-org-bug-210681-firmware_rome_error.patch'
+
# Bootsplash
'0301-revert-fbcon-remove-now-unusued-softback_lines-cursor-argument.patch'
'0302-revert-fbcon-remove-no-op-fbcon_set_origin.patch'
@@ -65,18 +60,12 @@ source=("https://www.kernel.org/pub/linux/kernel/v5.x/linux-${_basekernel}.tar.x
'0413-bootsplash.gitpatch'
# ACS override patch
'0999-acs.gitpatch')
-sha256sums=('027d7e8988bb69ac12ee92406c3be1fe13f990b1ca2249e226225cd1573308bb'
- '3bb88aa87c3f7788ad84ca5cbf3946ed9fbb3fddb9fca2458944fba5ebd2ab16'
- '67ea8810d3e58c1b661ff1372886aa8b560f97938ff62a3d12a6ff60784aeccf'
- '986f8d802f37b72a54256f0ab84da83cb229388d58c0b6750f7c770818a18421'
- 'b89188b1bc3516d54965dd36def6a2af3d81379e53ff7e527bbd91f77c6f191b'
- 'adfabecb2e23cfaebe1d493a54119a967a97930dac677e20f26d4bcaa1b80f3c'
- '7aa2293dff32463665c2a35054c5164470e24075ddda181715d4079ca126cbbd'
- '9c67c62e9e744eaeae43c80d83c9eb61b486406cf18cd057427bdbc44f8e4e10'
- 'f8fc51c0c644ae743154c37b77ade50fa5a950980c9dd56d8752e4d6b5dfb153'
- '24fc6f087aa82a72905f0fb6b9f3f5f18741187d5a425f5ec845dab436ab1c58'
- '7823d7488f42bc4ed7dfae6d1014dbde679d8b862c9a3697a39ba0dae5918978'
- '5e804e1f241ce542f3f0e83d274ede6aa4b0539e510fb9376f8106e8732ce69b'
+sha256sums=('555fef61dddb591a83d62dd04e252792f9af4ba9ef14683f64840e46fa20b1b1'
+ '24c982d6b7b704b31a6b4bc0a59cbf2135697a58d5d6030532ae07856da36944'
+ 'a94d5d374f4cdb439f3958b50f7af0f4e024fa17d7df3f30e548f40314e210c0'
+ 'f85b07d73b2f4ad8bb6b59ee6624b2dd06a03824fc7b00131a01df36c8d899fe'
+ 'fc9223bf2d430ab1c122daada4f51d835a74f56c007c82842eeca3acd2d788be'
+ 'edd40fa0d23e9cbbf5ed7f37b2e0ed8e84798701b08a0dc262afd751acf17e04'
'2b11905b63b05b25807dd64757c779da74dd4c37e36d3f7a46485b1ee5a9d326'
'94a8538251ad148f1025cc3de446ce64f73dc32b01815426fb159c722e8fa5bc'
'1f18c5c10a3c63e41ecd05ad34cd9f6653ba96e9f1049ce2b7bb6da2578ae710'
diff --git a/config b/config
index 6f7d14b5d005..c51ce85a6096 100644
--- a/config
+++ b/config
@@ -1,6 +1,6 @@
#
# Automatically generated file; DO NOT EDIT.
-# Linux/x86 5.16.16-1 Kernel Configuration
+# Linux/x86 5.17.1-3 Kernel Configuration
#
CONFIG_CC_VERSION_TEXT="gcc (GCC) 11.2.0"
CONFIG_CC_IS_GCC=y
@@ -165,7 +165,6 @@ CONFIG_RCU_STALL_COMMON=y
CONFIG_RCU_NEED_SEGCBLIST=y
CONFIG_RCU_FANOUT=64
CONFIG_RCU_FANOUT_LEAF=16
-CONFIG_RCU_FAST_NO_HZ=y
CONFIG_RCU_BOOST=y
CONFIG_RCU_BOOST_DELAY=500
# CONFIG_RCU_NOCB_CPU is not set
@@ -285,6 +284,7 @@ CONFIG_KCMP=y
CONFIG_RSEQ=y
# CONFIG_EMBEDDED is not set
CONFIG_HAVE_PERF_EVENTS=y
+CONFIG_GUEST_PERF_EVENTS=y
#
# Kernel Performance Events And Counters
@@ -327,9 +327,6 @@ CONFIG_ARCH_MAY_HAVE_PC_FDC=y
CONFIG_GENERIC_CALIBRATE_DELAY=y
CONFIG_ARCH_HAS_CPU_RELAX=y
CONFIG_ARCH_HAS_FILTER_PGPROT=y
-CONFIG_HAVE_SETUP_PER_CPU_AREA=y
-CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y
-CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK=y
CONFIG_ARCH_HIBERNATION_POSSIBLE=y
CONFIG_ARCH_NR_GPIO=1024
CONFIG_ARCH_SUSPEND_POSSIBLE=y
@@ -451,6 +448,7 @@ CONFIG_X86_CPUID=y
CONFIG_X86_5LEVEL=y
CONFIG_X86_DIRECT_GBPAGES=y
CONFIG_X86_CPA_STATISTICS=y
+CONFIG_X86_MEM_ENCRYPT=y
CONFIG_AMD_MEM_ENCRYPT=y
# CONFIG_AMD_MEM_ENCRYPT_ACTIVE_BY_DEFAULT is not set
CONFIG_NUMA=y
@@ -521,7 +519,6 @@ CONFIG_HAVE_LIVEPATCH=y
CONFIG_ARCH_HAS_ADD_PAGES=y
CONFIG_ARCH_MHP_MEMMAP_ON_MEMORY_ENABLE=y
-CONFIG_USE_PERCPU_NUMA_NODE_ID=y
#
# Power management and ACPI options
@@ -554,6 +551,7 @@ CONFIG_ACPI=y
CONFIG_ACPI_LEGACY_TABLES_LOOKUP=y
CONFIG_ARCH_MIGHT_HAVE_ACPI_PDC=y
CONFIG_ACPI_SYSTEM_POWER_STATES_SUPPORT=y
+CONFIG_ACPI_TABLE_LIB=y
# CONFIG_ACPI_DEBUGGER is not set
CONFIG_ACPI_SPCR_TABLE=y
CONFIG_ACPI_FPDT=y
@@ -608,6 +606,8 @@ CONFIG_ACPI_WATCHDOG=y
CONFIG_ACPI_EXTLOG=m
CONFIG_ACPI_ADXL=y
CONFIG_ACPI_CONFIGFS=m
+# CONFIG_ACPI_PFRUT is not set
+CONFIG_ACPI_PCC=y
CONFIG_PMIC_OPREGION=y
CONFIG_BYTCRC_PMIC_OPREGION=y
CONFIG_CHTCRC_PMIC_OPREGION=y
@@ -643,6 +643,7 @@ CONFIG_CPU_FREQ_GOV_SCHEDUTIL=y
#
CONFIG_X86_INTEL_PSTATE=y
CONFIG_X86_PCC_CPUFREQ=m
+CONFIG_X86_AMD_PSTATE=y
CONFIG_X86_ACPI_CPUFREQ=m
CONFIG_X86_ACPI_CPUFREQ_CPB=y
CONFIG_X86_POWERNOW_K8=m
@@ -693,9 +694,11 @@ CONFIG_SYSVIPC_COMPAT=y
# end of Binary Emulations
CONFIG_HAVE_KVM=y
+CONFIG_HAVE_KVM_PFNCACHE=y
CONFIG_HAVE_KVM_IRQCHIP=y
CONFIG_HAVE_KVM_IRQFD=y
CONFIG_HAVE_KVM_IRQ_ROUTING=y
+CONFIG_HAVE_KVM_DIRTY_RING=y
CONFIG_HAVE_KVM_EVENTFD=y
CONFIG_KVM_MMIO=y
CONFIG_KVM_ASYNC_PF=y
@@ -815,6 +818,7 @@ CONFIG_HAVE_ARCH_MMAP_RND_COMPAT_BITS=y
CONFIG_ARCH_MMAP_RND_COMPAT_BITS=8
CONFIG_HAVE_ARCH_COMPAT_MMAP_BASES=y
CONFIG_PAGE_SIZE_LESS_THAN_64KB=y
+CONFIG_PAGE_SIZE_LESS_THAN_256KB=y
CONFIG_HAVE_STACK_VALIDATION=y
CONFIG_HAVE_RELIABLE_STACKTRACE=y
CONFIG_ISA_BUS_API=y
@@ -839,9 +843,11 @@ CONFIG_HAVE_STATIC_CALL_INLINE=y
CONFIG_HAVE_PREEMPT_DYNAMIC=y
CONFIG_ARCH_WANT_LD_ORPHAN_WARN=y
CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
+CONFIG_ARCH_SUPPORTS_PAGE_TABLE_CHECK=y
CONFIG_ARCH_HAS_ELFCORE_COMPAT=y
CONFIG_ARCH_HAS_PARANOID_L1D_FLUSH=y
CONFIG_DYNAMIC_SIGFRAME=y
+CONFIG_HAVE_ARCH_NODE_DEV_GROUP=y
#
# GCOV-based kernel profiling
@@ -878,6 +884,7 @@ CONFIG_MODULE_SIG_HASH="sha512"
# CONFIG_MODULE_COMPRESS_GZIP is not set
CONFIG_MODULE_COMPRESS_XZ=y
# CONFIG_MODULE_COMPRESS_ZSTD is not set
+# CONFIG_MODULE_DECOMPRESS is not set
CONFIG_MODULE_ALLOW_MISSING_NAMESPACE_IMPORTS=y
CONFIG_MODPROBE_PATH="/sbin/modprobe"
CONFIG_MODULES_TREE_LOOKUP=y
@@ -885,6 +892,7 @@ CONFIG_BLOCK=y
CONFIG_BLK_RQ_ALLOC_TIME=y
CONFIG_BLK_CGROUP_RWSTAT=y
CONFIG_BLK_DEV_BSG_COMMON=y
+CONFIG_BLK_ICQ=y
CONFIG_BLK_DEV_BSGLIB=y
CONFIG_BLK_DEV_INTEGRITY=y
CONFIG_BLK_DEV_INTEGRITY_T10=y
@@ -1018,7 +1026,10 @@ CONFIG_TRANSPARENT_HUGEPAGE=y
CONFIG_TRANSPARENT_HUGEPAGE_MADVISE=y
CONFIG_ARCH_WANTS_THP_SWAP=y
CONFIG_THP_SWAP=y
-CONFIG_CLEANCACHE=y
+CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y
+CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK=y
+CONFIG_USE_PERCPU_NUMA_NODE_ID=y
+CONFIG_HAVE_SETUP_PER_CPU_AREA=y
CONFIG_FRONTSWAP=y
CONFIG_CMA=y
# CONFIG_CMA_DEBUG is not set
@@ -1065,6 +1076,7 @@ CONFIG_READ_ONLY_THP_FOR_FS=y
CONFIG_ARCH_HAS_PTE_SPECIAL=y
CONFIG_MAPPING_DIRTY_HELPERS=y
CONFIG_SECRETMEM=y
+# CONFIG_ANON_VMA_NAME is not set
#
# Data Access Monitoring
@@ -1269,7 +1281,6 @@ CONFIG_NF_TABLES_NETDEV=y
CONFIG_NFT_NUMGEN=m
CONFIG_NFT_CT=m
CONFIG_NFT_FLOW_OFFLOAD=m
-CONFIG_NFT_COUNTER=m
CONFIG_NFT_CONNLIMIT=m
CONFIG_NFT_LOG=m
CONFIG_NFT_LIMIT=m
@@ -1469,7 +1480,6 @@ CONFIG_NFT_REJECT_IPV4=m
CONFIG_NFT_DUP_IPV4=m
CONFIG_NFT_FIB_IPV4=m
CONFIG_NF_TABLES_ARP=y
-CONFIG_NF_FLOW_TABLE_IPV4=m
CONFIG_NF_DUP_IPV4=m
CONFIG_NF_LOG_ARP=m
CONFIG_NF_LOG_IPV4=m
@@ -1509,7 +1519,6 @@ CONFIG_NF_TABLES_IPV6=y
CONFIG_NFT_REJECT_IPV6=m
CONFIG_NFT_DUP_IPV6=m
CONFIG_NFT_FIB_IPV6=m
-CONFIG_NF_FLOW_TABLE_IPV6=m
CONFIG_NF_DUP_IPV6=m
CONFIG_NF_REJECT_IPV6=m
CONFIG_NF_LOG_IPV6=m
@@ -1931,6 +1940,7 @@ CONFIG_BT_INTEL=m
CONFIG_BT_BCM=m
CONFIG_BT_RTL=m
CONFIG_BT_QCA=m
+CONFIG_BT_MTK=m
CONFIG_BT_HCIBTUSB=m
CONFIG_BT_HCIBTUSB_AUTOSUSPEND=y
CONFIG_BT_HCIBTUSB_BCM=y
@@ -2013,6 +2023,7 @@ CONFIG_RFKILL_LEDS=y
CONFIG_RFKILL_INPUT=y
CONFIG_RFKILL_GPIO=m
CONFIG_NET_9P=m
+CONFIG_NET_9P_FD=m
CONFIG_NET_9P_VIRTIO=m
CONFIG_NET_9P_XEN=m
CONFIG_NET_9P_RDMA=m
@@ -2197,6 +2208,7 @@ CONFIG_AUXILIARY_BUS=y
# CONFIG_UEVENT_HELPER is not set
CONFIG_DEVTMPFS=y
CONFIG_DEVTMPFS_MOUNT=y
+# CONFIG_DEVTMPFS_SAFE is not set
CONFIG_STANDALONE=y
CONFIG_PREVENT_FIRMWARE_BUILD=y
@@ -2317,6 +2329,7 @@ CONFIG_GNSS_SERIAL=m
CONFIG_GNSS_MTK_SERIAL=m
CONFIG_GNSS_SIRF_SERIAL=m
CONFIG_GNSS_UBX_SERIAL=m
+# CONFIG_GNSS_USB is not set
CONFIG_MTD=m
# CONFIG_MTD_TESTS is not set
@@ -2498,7 +2511,6 @@ CONFIG_XEN_BLKDEV_FRONTEND=m
CONFIG_XEN_BLKDEV_BACKEND=m
CONFIG_VIRTIO_BLK=m
CONFIG_BLK_DEV_RBD=m
-CONFIG_BLK_DEV_RSXX=m
CONFIG_BLK_DEV_RNBD=y
CONFIG_BLK_DEV_RNBD_CLIENT=m
CONFIG_BLK_DEV_RNBD_SERVER=m
@@ -2796,7 +2808,6 @@ CONFIG_ATA_BMDMA=y
CONFIG_ATA_PIIX=m
CONFIG_SATA_DWC=m
# CONFIG_SATA_DWC_OLD_DMA is not set
-# CONFIG_SATA_DWC_DEBUG is not set
CONFIG_SATA_MV=m
CONFIG_SATA_NV=m
CONFIG_SATA_PROMISE=m
@@ -3175,6 +3186,8 @@ CONFIG_BE2NET_BE2=y
CONFIG_BE2NET_BE3=y
CONFIG_BE2NET_LANCER=y
CONFIG_BE2NET_SKYHAWK=y
+CONFIG_NET_VENDOR_ENGLEDER=y
+# CONFIG_TSNEP is not set
CONFIG_NET_VENDOR_EZCHIP=y
CONFIG_NET_VENDOR_FUJITSU=y
CONFIG_PCMCIA_FMVJ18X=m
@@ -3206,6 +3219,7 @@ CONFIG_IAVF=m
CONFIG_I40EVF=m
CONFIG_ICE=m
CONFIG_ICE_SWITCHDEV=y
+CONFIG_ICE_HWTS=y
CONFIG_FM10K=m
CONFIG_IGC=m
CONFIG_NET_VENDOR_MICROSOFT=y
@@ -3377,6 +3391,7 @@ CONFIG_TEHUTI=m
CONFIG_NET_VENDOR_TI=y
# CONFIG_TI_CPSW_PHY_SEL is not set
CONFIG_TLAN=m
+# CONFIG_NET_VENDOR_VERTEXCOM is not set
CONFIG_NET_VENDOR_VIA=y
CONFIG_VIA_RHINE=m
CONFIG_VIA_RHINE_MMIO=y
@@ -3692,6 +3707,7 @@ CONFIG_IWLWIFI_DEBUGFS=y
CONFIG_IWLWIFI_DEVICE_TRACING=y
# end of Debugging Options
+# CONFIG_IWLMEI is not set
CONFIG_WLAN_VENDOR_INTERSIL=y
CONFIG_HOSTAP=m
CONFIG_HOSTAP_FIRMWARE=y
@@ -3882,6 +3898,7 @@ CONFIG_IEEE802154_HWSIM=m
# Wireless WAN
#
CONFIG_WWAN=y
+CONFIG_WWAN_DEBUGFS=y
CONFIG_WWAN_HWSIM=m
CONFIG_MHI_WWAN_CTRL=m
CONFIG_MHI_WWAN_MBIM=m
@@ -4297,6 +4314,7 @@ CONFIG_SERIAL_8250_DW=m
CONFIG_SERIAL_8250_RT288X=y
CONFIG_SERIAL_8250_LPSS=y
CONFIG_SERIAL_8250_MID=y
+CONFIG_SERIAL_8250_PERICOM=y
#
# Non-8250 serial port support
@@ -4460,7 +4478,6 @@ CONFIG_I2C_ISCH=m
CONFIG_I2C_ISMT=m
CONFIG_I2C_PIIX4=m
CONFIG_I2C_CHT_WC=m
-# CONFIG_I2C_NCT6775 is not set
CONFIG_I2C_NFORCE2=m
CONFIG_I2C_NFORCE2_S4985=m
CONFIG_I2C_NVIDIA_GPU=m
@@ -4616,6 +4633,12 @@ CONFIG_PINCTRL_MCP23S08_I2C=m
CONFIG_PINCTRL_MCP23S08_SPI=m
CONFIG_PINCTRL_MCP23S08=m
CONFIG_PINCTRL_SX150X=y
+CONFIG_PINCTRL_MADERA=m
+CONFIG_PINCTRL_CS47L15=y
+CONFIG_PINCTRL_CS47L35=y
+CONFIG_PINCTRL_CS47L85=y
+CONFIG_PINCTRL_CS47L90=y
+CONFIG_PINCTRL_CS47L92=y
#
# Intel pinctrl drivers
@@ -4645,12 +4668,6 @@ CONFIG_PINCTRL_TIGERLAKE=y
#
# end of Renesas pinctrl drivers
-CONFIG_PINCTRL_MADERA=m
-CONFIG_PINCTRL_CS47L15=y
-CONFIG_PINCTRL_CS47L35=y
-CONFIG_PINCTRL_CS47L85=y
-CONFIG_PINCTRL_CS47L90=y
-CONFIG_PINCTRL_CS47L92=y
CONFIG_GPIOLIB=y
CONFIG_GPIOLIB_FASTPATH_LIMIT=512
CONFIG_GPIO_ACPI=y
@@ -4764,6 +4781,7 @@ CONFIG_GPIO_VIPERBOARD=m
CONFIG_GPIO_AGGREGATOR=m
CONFIG_GPIO_MOCKUP=m
CONFIG_GPIO_VIRTIO=m
+# CONFIG_GPIO_SIM is not set
# end of Virtual GPIO drivers
CONFIG_W1=m
@@ -4860,6 +4878,7 @@ CONFIG_CHARGER_LT3651=m
CONFIG_CHARGER_LTC4162L=m
CONFIG_CHARGER_MAX14577=m
CONFIG_CHARGER_MAX77693=m
+CONFIG_CHARGER_MAX77976=y
CONFIG_CHARGER_MAX8997=m
CONFIG_CHARGER_MAX8998=m
CONFIG_CHARGER_MP2629=m
@@ -5010,6 +5029,7 @@ CONFIG_SENSORS_NCT7802=m
CONFIG_SENSORS_NCT7904=m
CONFIG_SENSORS_NPCM7XX=m
CONFIG_SENSORS_NZXT_KRAKEN2=m
+CONFIG_SENSORS_NZXT_SMART2=m
CONFIG_SENSORS_PCF8591=m
CONFIG_PMBUS=m
CONFIG_SENSORS_PMBUS=m
@@ -5017,6 +5037,7 @@ CONFIG_SENSORS_ADM1266=m
CONFIG_SENSORS_ADM1275=m
CONFIG_SENSORS_BEL_PFE=m
CONFIG_SENSORS_BPA_RS600=m
+CONFIG_SENSORS_DELTA_AHE50DC_FAN=m
CONFIG_SENSORS_FSP_3Y=m
CONFIG_SENSORS_IBM_CFFPS=m
CONFIG_SENSORS_DPS920AB=m
@@ -5024,6 +5045,7 @@ CONFIG_SENSORS_INSPUR_IPSPS=m
CONFIG_SENSORS_IR35221=m
CONFIG_SENSORS_IR36021=m
CONFIG_SENSORS_IR38064=m
+# CONFIG_SENSORS_IR38064_REGULATOR is not set
CONFIG_SENSORS_IRPS5401=m
CONFIG_SENSORS_ISL68137=m
CONFIG_SENSORS_LM25066=m
@@ -5040,6 +5062,7 @@ CONFIG_SENSORS_MAX34440=m
CONFIG_SENSORS_MAX8688=m
CONFIG_SENSORS_MP2888=m
CONFIG_SENSORS_MP2975=m
+# CONFIG_SENSORS_MP5023 is not set
CONFIG_SENSORS_PIM4328=m
CONFIG_SENSORS_PM6764TR=m
CONFIG_SENSORS_PXE1610=m
@@ -5077,6 +5100,7 @@ CONFIG_SENSORS_ADS7871=m
CONFIG_SENSORS_AMC6821=m
CONFIG_SENSORS_INA209=m
CONFIG_SENSORS_INA2XX=m
+# CONFIG_SENSORS_INA238 is not set
CONFIG_SENSORS_INA3221=m
CONFIG_SENSORS_TC74=m
CONFIG_SENSORS_THMC50=m
@@ -5111,6 +5135,8 @@ CONFIG_SENSORS_INTEL_M10_BMC_HWMON=m
#
CONFIG_SENSORS_ACPI_POWER=m
CONFIG_SENSORS_ATK0110=m
+CONFIG_SENSORS_ASUS_WMI=m
+CONFIG_SENSORS_ASUS_WMI_EC=m
CONFIG_THERMAL=y
CONFIG_THERMAL_NETLINK=y
# CONFIG_THERMAL_STATISTICS is not set
@@ -5233,6 +5259,7 @@ CONFIG_SBC_EPX_C3_WATCHDOG=m
CONFIG_INTEL_MEI_WDT=m
CONFIG_NI903X_WDT=m
CONFIG_NIC7018_WDT=m
+# CONFIG_SIEMENS_SIMATIC_IPC_WDT is not set
CONFIG_MEN_A21_WDT=m
CONFIG_XEN_WDT=m
@@ -5318,7 +5345,6 @@ CONFIG_MFD_INTEL_LPSS=m
CONFIG_MFD_INTEL_LPSS_ACPI=m
CONFIG_MFD_INTEL_LPSS_PCI=m
CONFIG_MFD_INTEL_PMC_BXT=m
-CONFIG_MFD_INTEL_PMT=m
CONFIG_MFD_IQS62X=m
CONFIG_MFD_JANZ_CMODIO=m
CONFIG_MFD_KEMPLD=m
@@ -5442,6 +5468,7 @@ CONFIG_REGULATOR_MAX8925=m
CONFIG_REGULATOR_MAX8952=m
CONFIG_REGULATOR_MAX8997=m
CONFIG_REGULATOR_MAX8998=m
+# CONFIG_REGULATOR_MAX20086 is not set
CONFIG_REGULATOR_MAX77693=m
CONFIG_REGULATOR_MAX77826=m
CONFIG_REGULATOR_MC13XXX_CORE=m
@@ -5486,6 +5513,7 @@ CONFIG_REGULATOR_TPS6524X=m
CONFIG_REGULATOR_TPS6586X=m
CONFIG_REGULATOR_TPS65910=m
CONFIG_REGULATOR_TPS65912=m
+# CONFIG_REGULATOR_TPS68470 is not set
CONFIG_REGULATOR_TWL4030=m
CONFIG_REGULATOR_WM831X=m
CONFIG_REGULATOR_WM8350=m
@@ -5984,6 +6012,7 @@ CONFIG_VIDEO_OV5648=m
CONFIG_VIDEO_OV6650=m
CONFIG_VIDEO_OV5670=m
CONFIG_VIDEO_OV5675=m
+# CONFIG_VIDEO_OV5693 is not set
CONFIG_VIDEO_OV5695=m
CONFIG_VIDEO_OV7251=m
CONFIG_VIDEO_OV772X=m
@@ -6269,7 +6298,7 @@ CONFIG_VGA_ARB=y
CONFIG_VGA_ARB_MAX_GPUS=10
CONFIG_VGA_SWITCHEROO=y
CONFIG_DRM=y
-CONFIG_DRM_MIPI_DBI=m
+CONFIG_DRM_MIPI_DBI=y
CONFIG_DRM_MIPI_DSI=y
CONFIG_DRM_DP_AUX_CHARDEV=y
# CONFIG_DRM_DEBUG_MM is not set
@@ -6283,7 +6312,6 @@ CONFIG_DRM_TTM=m
CONFIG_DRM_VRAM_HELPER=m
CONFIG_DRM_TTM_HELPER=m
CONFIG_DRM_GEM_CMA_HELPER=y
-CONFIG_DRM_KMS_CMA_HELPER=y
CONFIG_DRM_GEM_SHMEM_HELPER=y
CONFIG_DRM_SCHED=m
@@ -6385,6 +6413,7 @@ CONFIG_DRM_CIRRUS_QEMU=m
CONFIG_DRM_GM12U320=m
CONFIG_DRM_SIMPLEDRM=y
CONFIG_TINYDRM_HX8357D=m
+CONFIG_TINYDRM_ILI9163=y
CONFIG_TINYDRM_ILI9225=m
CONFIG_TINYDRM_ILI9341=m
CONFIG_TINYDRM_ILI9486=m
@@ -6399,6 +6428,8 @@ CONFIG_DRM_GUD=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
#
# Frame buffer Devices
@@ -6686,6 +6717,9 @@ CONFIG_SND_HDA_RECONFIG=y
CONFIG_SND_HDA_INPUT_BEEP=y
CONFIG_SND_HDA_INPUT_BEEP_MODE=0
CONFIG_SND_HDA_PATCH_LOADER=y
+CONFIG_SND_HDA_SCODEC_CS35L41=m
+CONFIG_SND_HDA_SCODEC_CS35L41_I2C=m
+CONFIG_SND_HDA_SCODEC_CS35L41_SPI=m
CONFIG_SND_HDA_CODEC_REALTEK=m
CONFIG_SND_HDA_CODEC_ANALOG=m
CONFIG_SND_HDA_CODEC_SIGMATEL=m
@@ -6764,6 +6798,7 @@ CONFIG_SND_SOC_AMD_RENOIR_MACH=m
CONFIG_SND_SOC_AMD_ACP5x=m
# CONFIG_SND_SOC_AMD_VANGOGH_MACH is not set
# CONFIG_SND_SOC_AMD_ACP6x is not set
+CONFIG_SND_AMD_ACP_CONFIG=m
# CONFIG_SND_SOC_AMD_ACP_COMMON is not set
CONFIG_SND_ATMEL_SOC=m
# CONFIG_SND_BCM63XX_I2S_WHISTLER is not set
@@ -6856,6 +6891,7 @@ CONFIG_SND_SOC_INTEL_SOF_RT5682_MACH=m
CONFIG_SND_SOC_INTEL_SOF_CS42L42_MACH=m
CONFIG_SND_SOC_INTEL_SOF_PCM512x_MACH=m
CONFIG_SND_SOC_INTEL_SOF_ES8336_MACH=m
+CONFIG_SND_SOC_INTEL_SOF_NAU8825_MACH=m
CONFIG_SND_SOC_INTEL_CML_LP_DA7219_MAX98357A_MACH=m
CONFIG_SND_SOC_INTEL_SOF_CML_RT1011_RT5682_MACH=m
CONFIG_SND_SOC_INTEL_SOF_DA7219_MAX98373_MACH=m
@@ -6870,6 +6906,9 @@ CONFIG_SND_SOC_SOF_ACPI_DEV=m
# CONFIG_SND_SOC_SOF_DEBUG_PROBES is not set
CONFIG_SND_SOC_SOF=m
CONFIG_SND_SOC_SOF_PROBE_WORK_QUEUE=y
+CONFIG_SND_SOC_SOF_AMD_TOPLEVEL=m
+CONFIG_SND_SOC_SOF_AMD_COMMON=m
+CONFIG_SND_SOC_SOF_AMD_RENOIR=m
CONFIG_SND_SOC_SOF_INTEL_TOPLEVEL=y
CONFIG_SND_SOC_SOF_INTEL_HIFI_EP_IPC=m
CONFIG_SND_SOC_SOF_INTEL_ATOM_HIFI_EP=m
@@ -6932,6 +6971,7 @@ CONFIG_SND_SOC_ADAU7118_HW=m
CONFIG_SND_SOC_ADAU7118_I2C=m
CONFIG_SND_SOC_AK4104=m
CONFIG_SND_SOC_AK4118=m
+CONFIG_SND_SOC_AK4375=m
CONFIG_SND_SOC_AK4458=m
CONFIG_SND_SOC_AK4554=m
CONFIG_SND_SOC_AK4613=m
@@ -6947,6 +6987,7 @@ CONFIG_SND_SOC_CS35L33=m
CONFIG_SND_SOC_CS35L34=m
CONFIG_SND_SOC_CS35L35=m
CONFIG_SND_SOC_CS35L36=m
+CONFIG_SND_SOC_CS35L41_LIB=m
# CONFIG_SND_SOC_CS35L41_SPI is not set
# CONFIG_SND_SOC_CS35L41_I2C is not set
CONFIG_SND_SOC_CS42L42=m
@@ -7081,6 +7122,7 @@ CONFIG_SND_SOC_TAS6424=m
CONFIG_SND_SOC_TDA7419=m
CONFIG_SND_SOC_TFA9879=m
CONFIG_SND_SOC_TFA989X=m
+CONFIG_SND_SOC_TLV320ADC3XXX=m
CONFIG_SND_SOC_TLV320AIC23=m
CONFIG_SND_SOC_TLV320AIC23_I2C=m
CONFIG_SND_SOC_TLV320AIC23_SPI=m
@@ -7219,6 +7261,7 @@ CONFIG_HID_KENSINGTON=m
CONFIG_HID_LCPOWER=m
CONFIG_HID_LED=m
CONFIG_HID_LENOVO=m
+CONFIG_HID_LETSKETCH=m
CONFIG_HID_LOGITECH=m
CONFIG_HID_LOGITECH_DJ=m
CONFIG_HID_LOGITECH_HIDPP=m
@@ -7380,6 +7423,7 @@ CONFIG_USB_R8A66597_HCD=m
CONFIG_USB_HCD_BCMA=m
CONFIG_USB_HCD_SSB=m
# CONFIG_USB_HCD_TEST_MODE is not set
+# CONFIG_USB_XEN_HCD is not set
#
# USB Device Class drivers
@@ -7875,6 +7919,11 @@ CONFIG_LEDS_TRIGGER_NETDEV=m
CONFIG_LEDS_TRIGGER_PATTERN=m
CONFIG_LEDS_TRIGGER_AUDIO=m
CONFIG_LEDS_TRIGGER_TTY=m
+
+#
+# Simple LED drivers
+#
+CONFIG_LEDS_SIEMENS_SIMATIC_IPC=y
CONFIG_ACCESSIBILITY=y
CONFIG_A11Y_BRAILLE_CONSOLE=y
@@ -8393,6 +8442,7 @@ CONFIG_PEAQ_WMI=m
CONFIG_NVIDIA_WMI_EC_BACKLIGHT=m
CONFIG_XIAOMI_WMI=m
CONFIG_GIGABYTE_WMI=m
+CONFIG_YOGABOOK_WMI=m
CONFIG_ACERHDF=m
CONFIG_ACER_WIRELESS=m
CONFIG_ACER_WMI=m
@@ -8403,6 +8453,7 @@ CONFIG_ASUS_LAPTOP=m
CONFIG_ASUS_WIRELESS=m
CONFIG_ASUS_WMI=m
CONFIG_ASUS_NB_WMI=m
+CONFIG_ASUS_TF103C_DOCK=y
CONFIG_MERAKI_MX100=m
CONFIG_EEEPC_LAPTOP=m
CONFIG_EEEPC_WMI=m
@@ -8473,6 +8524,7 @@ CONFIG_INTEL_RST=m
CONFIG_INTEL_SMARTCONNECT=m
CONFIG_INTEL_TURBO_MAX_3=y
CONFIG_INTEL_UNCORE_FREQ_CONTROL=m
+CONFIG_INTEL_VSEC=y
CONFIG_MSI_LAPTOP=m
CONFIG_MSI_WMI=m
CONFIG_PCENGINES_APU2=m
@@ -8494,6 +8546,7 @@ CONFIG_TOPSTAR_LAPTOP=m
CONFIG_I2C_MULTI_INSTANTIATE=m
CONFIG_MLX_PLATFORM=m
CONFIG_TOUCHSCREEN_DMI=y
+CONFIG_X86_ANDROID_TABLETS=y
CONFIG_FW_ATTR_CLASS=m
CONFIG_INTEL_IPS=m
CONFIG_INTEL_SCU_IPC=y
@@ -8501,6 +8554,7 @@ CONFIG_INTEL_SCU=y
CONFIG_INTEL_SCU_PCI=y
CONFIG_INTEL_SCU_PLATFORM=m
CONFIG_INTEL_SCU_IPC_UTIL=m
+CONFIG_SIEMENS_SIMATIC_IPC=y
CONFIG_PMC_ATOM=y
CONFIG_CHROME_PLATFORMS=y
CONFIG_CHROMEOS_LAPTOP=m
@@ -8554,6 +8608,7 @@ CONFIG_COMMON_CLK_SI5341=m
CONFIG_COMMON_CLK_SI5351=m
CONFIG_COMMON_CLK_SI544=m
CONFIG_COMMON_CLK_CDCE706=m
+CONFIG_COMMON_CLK_TPS68470=m
CONFIG_COMMON_CLK_CS2000_CP=m
CONFIG_CLK_TWL6040=m
CONFIG_COMMON_CLK_PALMAS=m
@@ -8843,6 +8898,9 @@ CONFIG_TI_ADC128S052=m
CONFIG_TI_ADC161S626=m
CONFIG_TI_ADS1015=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_TLC4541=m
@@ -8854,6 +8912,12 @@ CONFIG_XILINX_XADC=m
# end of Analog to digital converters
#
+# Analog to digital and digital to analog converters
+#
+# CONFIG_AD74413R is not set
+# end of Analog to digital and digital to analog converters
+
+#
# Analog Front Ends
#
# end of Analog Front Ends
@@ -8927,6 +8991,7 @@ CONFIG_IIO_ST_SENSORS_CORE=m
#
# Digital to analog converters
#
+# CONFIG_AD3552R is not set
CONFIG_AD5064=m
CONFIG_AD5360=m
CONFIG_AD5380=m
@@ -8948,6 +9013,7 @@ CONFIG_AD5764=m
CONFIG_AD5766=m
CONFIG_AD5770R=m
CONFIG_AD5791=m
+# CONFIG_AD7293 is not set
CONFIG_AD7303=m
CONFIG_AD8801=m
CONFIG_DS4424=m
@@ -8955,6 +9021,7 @@ CONFIG_LTC1660=m
CONFIG_LTC2632=m
CONFIG_M62332=m
CONFIG_MAX517=m
+# CONFIG_MAX5821 is not set
CONFIG_MCP4725=m
CONFIG_MCP4922=m
CONFIG_TI_DAC082S085=m
@@ -8970,6 +9037,12 @@ CONFIG_TI_DAC7612=m
# end of IIO dummy driver
#
+# Filters
+#
+# CONFIG_ADMV8818 is not set
+# end of Filters
+
+#
# Frequency Synthesizers DDS/PLL
#
@@ -8984,6 +9057,7 @@ CONFIG_AD9523=m
#
CONFIG_ADF4350=m
CONFIG_ADF4371=m
+# CONFIG_ADMV1013 is not set
# CONFIG_ADRF6780 is not set
# end of Phase-Locked Loop (PLL) frequency synthesizers
# end of Frequency Synthesizers DDS/PLL
@@ -9387,14 +9461,12 @@ CONFIG_BTT=y
CONFIG_ND_PFN=m
CONFIG_NVDIMM_PFN=y
CONFIG_NVDIMM_DAX=y
-CONFIG_DAX_DRIVER=y
CONFIG_DAX=y
CONFIG_DEV_DAX=m
CONFIG_DEV_DAX_PMEM=m
CONFIG_DEV_DAX_HMEM=m
CONFIG_DEV_DAX_HMEM_DEVICES=y
CONFIG_DEV_DAX_KMEM=m
-CONFIG_DEV_DAX_PMEM_COMPAT=m
CONFIG_NVMEM=y
CONFIG_NVMEM_SYSFS=y
CONFIG_RAVE_SP_EEPROM=m
@@ -9587,6 +9659,7 @@ CONFIG_FSCACHE_STATS=y
# CONFIG_FSCACHE_DEBUG is not set
CONFIG_CACHEFILES=m
# CONFIG_CACHEFILES_DEBUG is not set
+# CONFIG_CACHEFILES_ERROR_INJECTION is not set
# end of Caches
#
@@ -9799,7 +9872,7 @@ CONFIG_CIFS_DEBUG=y
CONFIG_CIFS_DFS_UPCALL=y
CONFIG_CIFS_SWN_UPCALL=y
# CONFIG_CIFS_SMB_DIRECT is not set
-CONFIG_CIFS_FSCACHE=y
+# CONFIG_CIFS_FSCACHE is not set
CONFIG_SMB_SERVER=m
CONFIG_SMB_SERVER_SMBDIRECT=y
CONFIG_SMB_SERVER_CHECK_CAP_NET_ADMIN=y
@@ -10140,6 +10213,7 @@ CONFIG_CRYPTO_DRBG_HASH=y
CONFIG_CRYPTO_DRBG_CTR=y
CONFIG_CRYPTO_DRBG=y
CONFIG_CRYPTO_JITTERENTROPY=y
+CONFIG_CRYPTO_KDF800108_CTR=y
CONFIG_CRYPTO_USER_API=m
CONFIG_CRYPTO_USER_API_HASH=m
CONFIG_CRYPTO_USER_API_SKCIPHER=m
@@ -10149,29 +10223,6 @@ CONFIG_CRYPTO_USER_API_AEAD=m
# CONFIG_CRYPTO_USER_API_ENABLE_OBSOLETE is not set
CONFIG_CRYPTO_STATS=y
CONFIG_CRYPTO_HASH_INFO=y
-
-#
-# Crypto library routines
-#
-CONFIG_CRYPTO_LIB_AES=y
-CONFIG_CRYPTO_LIB_ARC4=m
-CONFIG_CRYPTO_ARCH_HAVE_LIB_BLAKE2S=m
-CONFIG_CRYPTO_LIB_BLAKE2S_GENERIC=m
-CONFIG_CRYPTO_LIB_BLAKE2S=m
-CONFIG_CRYPTO_ARCH_HAVE_LIB_CHACHA=m
-CONFIG_CRYPTO_LIB_CHACHA_GENERIC=m
-CONFIG_CRYPTO_LIB_CHACHA=m
-CONFIG_CRYPTO_ARCH_HAVE_LIB_CURVE25519=m
-CONFIG_CRYPTO_LIB_CURVE25519_GENERIC=m
-CONFIG_CRYPTO_LIB_CURVE25519=m
-CONFIG_CRYPTO_LIB_DES=m
-CONFIG_CRYPTO_LIB_POLY1305_RSIZE=11
-CONFIG_CRYPTO_ARCH_HAVE_LIB_POLY1305=m
-CONFIG_CRYPTO_LIB_POLY1305_GENERIC=m
-CONFIG_CRYPTO_LIB_POLY1305=m
-CONFIG_CRYPTO_LIB_CHACHA20POLY1305=m
-CONFIG_CRYPTO_LIB_SHA256=y
-CONFIG_CRYPTO_LIB_SM4=m
CONFIG_CRYPTO_HW=y
CONFIG_CRYPTO_DEV_PADLOCK=m
CONFIG_CRYPTO_DEV_PADLOCK_AES=m
@@ -10239,7 +10290,6 @@ CONFIG_BITREVERSE=y
CONFIG_GENERIC_STRNCPY_FROM_USER=y
CONFIG_GENERIC_STRNLEN_USER=y
CONFIG_GENERIC_NET_UTILS=y
-CONFIG_GENERIC_FIND_FIRST_BIT=y
CONFIG_CORDIC=m
# CONFIG_PRIME_NUMBERS is not set
CONFIG_RATIONAL=y
@@ -10248,6 +10298,30 @@ CONFIG_GENERIC_IOMAP=y
CONFIG_ARCH_USE_CMPXCHG_LOCKREF=y
CONFIG_ARCH_HAS_FAST_MULTIPLIER=y
CONFIG_ARCH_USE_SYM_ANNOTATIONS=y
+
+#
+# Crypto library routines
+#
+CONFIG_CRYPTO_LIB_AES=y
+CONFIG_CRYPTO_LIB_ARC4=m
+CONFIG_CRYPTO_ARCH_HAVE_LIB_BLAKE2S=y
+CONFIG_CRYPTO_LIB_BLAKE2S_GENERIC=y
+CONFIG_CRYPTO_ARCH_HAVE_LIB_CHACHA=m
+CONFIG_CRYPTO_LIB_CHACHA_GENERIC=m
+CONFIG_CRYPTO_LIB_CHACHA=m
+CONFIG_CRYPTO_ARCH_HAVE_LIB_CURVE25519=m
+CONFIG_CRYPTO_LIB_CURVE25519_GENERIC=m
+CONFIG_CRYPTO_LIB_CURVE25519=m
+CONFIG_CRYPTO_LIB_DES=m
+CONFIG_CRYPTO_LIB_POLY1305_RSIZE=11
+CONFIG_CRYPTO_ARCH_HAVE_LIB_POLY1305=m
+CONFIG_CRYPTO_LIB_POLY1305_GENERIC=m
+CONFIG_CRYPTO_LIB_POLY1305=m
+CONFIG_CRYPTO_LIB_CHACHA20POLY1305=m
+CONFIG_CRYPTO_LIB_SHA256=y
+CONFIG_CRYPTO_LIB_SM4=m
+# end of Crypto library routines
+
CONFIG_CRC_CCITT=y
CONFIG_CRC16=m
CONFIG_CRC_T10DIF=y
@@ -10443,11 +10517,19 @@ CONFIG_DEBUG_KERNEL=y
# CONFIG_DEBUG_MISC is not set
#
+# Networking Debugging
+#
+# CONFIG_NET_DEV_REFCNT_TRACKER is not set
+# CONFIG_NET_NS_REFCNT_TRACKER is not set
+# end of Networking Debugging
+
+#
# Memory Debugging
#
# CONFIG_PAGE_EXTENSION is not set
# CONFIG_DEBUG_PAGEALLOC is not set
# CONFIG_PAGE_OWNER is not set
+# CONFIG_PAGE_TABLE_CHECK is not set
CONFIG_PAGE_POISONING=y
# CONFIG_DEBUG_PAGE_REF is not set
CONFIG_DEBUG_RODATA_TEST=y
@@ -10584,6 +10666,8 @@ CONFIG_HAVE_SYSCALL_TRACEPOINTS=y
CONFIG_HAVE_FENTRY=y
CONFIG_HAVE_OBJTOOL_MCOUNT=y
CONFIG_HAVE_C_RECORDMCOUNT=y
+CONFIG_HAVE_BUILDTIME_MCOUNT_SORT=y
+CONFIG_BUILDTIME_MCOUNT_SORT=y
CONFIG_TRACER_MAX_TRACE=y
CONFIG_TRACE_CLOCK=y
CONFIG_RING_BUFFER=y
@@ -10633,6 +10717,7 @@ CONFIG_HIST_TRIGGERS=y
# CONFIG_TRACE_EVAL_MAP_FILE is not set
# CONFIG_FTRACE_RECORD_RECURSION is not set
# CONFIG_FTRACE_STARTUP_TEST is not set
+# CONFIG_FTRACE_SORT_STARTUP_TEST is not set
# CONFIG_RING_BUFFER_STARTUP_TEST is not set
# CONFIG_RING_BUFFER_VALIDATE_TIME_DELTAS is not set
# CONFIG_MMIOTRACE_TEST is not set
@@ -10690,6 +10775,7 @@ CONFIG_RUNTIME_TESTING_MENU=y
# CONFIG_TEST_MIN_HEAP is not set
# CONFIG_TEST_DIV64 is not set
# CONFIG_BACKTRACE_SELF_TEST is not set
+# CONFIG_TEST_REF_TRACKER is not set
# CONFIG_RBTREE_TEST is not set
# CONFIG_REED_SOLOMON_TEST is not set
# CONFIG_INTERVAL_TREE_TEST is not set
@@ -10708,7 +10794,7 @@ CONFIG_ASYNC_RAID6_TEST=m
# CONFIG_TEST_XARRAY is not set
# CONFIG_TEST_OVERFLOW is not set
# CONFIG_TEST_RHASHTABLE is not set
-# CONFIG_TEST_HASH 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/modules.list b/modules.list
index 56d170f099ce..73ffad77ac16 100644
--- a/modules.list
+++ b/modules.list
@@ -1,6 +1,6 @@
acpi_call
-bbswitch
broadcom-wl
+bbswitch
nvidia
nvidia-390xx
nvidia-470xx