summaryrefslogtreecommitdiff
path: root/sys-kernel/linux-image-redcore-lts/files
diff options
context:
space:
mode:
Diffstat (limited to 'sys-kernel/linux-image-redcore-lts/files')
-rw-r--r--sys-kernel/linux-image-redcore-lts/files/5.10-0001-Revert-hwmon-k10temp-Remove-support-for-displaying-v.patch188
-rw-r--r--sys-kernel/linux-image-redcore-lts/files/5.10-Unknow-SSD-HFM128GDHTNG-8310B-QUIRK_NO_APST.patch19
-rw-r--r--sys-kernel/linux-image-redcore-lts/files/5.10-add-amd-sfh-hid_driver.patch1783
-rw-r--r--sys-kernel/linux-image-redcore-lts/files/5.10-add-sbtsi_driver.patch285
-rw-r--r--sys-kernel/linux-image-redcore-lts/files/5.10-compress-modules-zstd-support.patch49
-rw-r--r--sys-kernel/linux-image-redcore-lts/files/5.10-enable-new-amd-energy-driver-for-all-ryzen.patch13
-rw-r--r--sys-kernel/linux-image-redcore-lts/files/5.10-k10temp-fix-ZEN2-desktop-add-ZEN3-desktop.patch94
-rw-r--r--sys-kernel/linux-image-redcore-lts/files/5.15-0001-Revert-cpufreq-Avoid-configuring-old-governors-as-de.patch (renamed from sys-kernel/linux-image-redcore-lts/files/5.10-0001-Revert-cpufreq-Avoid-configuring-old-governors-as-de.patch)0
-rw-r--r--sys-kernel/linux-image-redcore-lts/files/5.15-0001-ZEN-Add-sysctl-and-CONFIG-to-disallow-unprivileged-C.patch (renamed from sys-kernel/linux-image-redcore-lts/files/5.10-ZEN-Add-sysctl-and-CONFIG-to-disallow-unprivileged-C.patch)35
-rw-r--r--sys-kernel/linux-image-redcore-lts/files/5.15-0002-PCI_Add_more_NVIDIA_controllers_to_the_MSI_masking_quirk.patch21
-rw-r--r--sys-kernel/linux-image-redcore-lts/files/5.15-0003-iommu_intel_do_deep_dma-unmapping_to_avoid_kernel-flooding.patch85
-rw-r--r--sys-kernel/linux-image-redcore-lts/files/5.15-0004-cpufreq_intel_pstate_ITMT_support_for_overclocked_system.patch51
-rw-r--r--sys-kernel/linux-image-redcore-lts/files/5.15-0005-Bluetooth_btintel_Fix_bdaddress_comparison_with_garbage_value.patch57
-rw-r--r--sys-kernel/linux-image-redcore-lts/files/5.15-0006-lg-laptop_Recognize_more_models.patch36
-rw-r--r--sys-kernel/linux-image-redcore-lts/files/5.15-acpi-use-kern_warning_even_when_error.patch (renamed from sys-kernel/linux-image-redcore-lts/files/5.10-acpi-use-kern_warning_even_when_error.patch)0
-rw-r--r--sys-kernel/linux-image-redcore-lts/files/5.15-alx-wol.patch481
-rw-r--r--sys-kernel/linux-image-redcore-lts/files/5.15-amd64.config (renamed from sys-kernel/linux-image-redcore-lts/files/5.10-amd64.config)930
-rw-r--r--sys-kernel/linux-image-redcore-lts/files/5.15-apic_vector-spam-in-debug-mode-only.patch (renamed from sys-kernel/linux-image-redcore-lts/files/5.10-apic_vector-spam-in-debug-mode-only.patch)0
-rw-r--r--sys-kernel/linux-image-redcore-lts/files/5.15-ata-fix-NCQ-LOG-strings-and-move-to-debug.patch (renamed from sys-kernel/linux-image-redcore-lts/files/5.10-ata-fix-NCQ-LOG-strings-and-move-to-debug.patch)0
-rw-r--r--sys-kernel/linux-image-redcore-lts/files/5.15-ath10k-be-quiet.patch (renamed from sys-kernel/linux-image-redcore-lts/files/5.10-ath10k-be-quiet.patch)0
-rw-r--r--sys-kernel/linux-image-redcore-lts/files/5.15-do_not_bug_the_next_18-years.patch (renamed from sys-kernel/linux-image-redcore-lts/files/5.10-do_not_bug_the_next_18-years.patch)0
-rw-r--r--sys-kernel/linux-image-redcore-lts/files/5.15-fix-bootconfig-makefile.patch (renamed from sys-kernel/linux-image-redcore-lts/files/5.10-fix-bootconfig-makefile.patch)0
-rw-r--r--sys-kernel/linux-image-redcore-lts/files/5.15-iwlwifi-fix-5e003982b07ae.patch (renamed from sys-kernel/linux-image-redcore-lts/files/5.10-iwlwifi-fix-5e003982b07ae.patch)0
-rw-r--r--sys-kernel/linux-image-redcore-lts/files/5.15-iwlwifi-use-debug-for-debug-infos.patch (renamed from sys-kernel/linux-image-redcore-lts/files/5.10-iwlwifi-use-debug-for-debug-infos.patch)0
-rw-r--r--sys-kernel/linux-image-redcore-lts/files/5.15-radeon_dp_aux_transfer_native-no-ratelimited_debug.patch (renamed from sys-kernel/linux-image-redcore-lts/files/5.10-radeon_dp_aux_transfer_native-no-ratelimited_debug.patch)0
-rw-r--r--sys-kernel/linux-image-redcore-lts/files/5.15-revert-parts-of-a00ec3874e7d326ab2dffbed92faddf6a77a84e9-no-Intel-NO.patch (renamed from sys-kernel/linux-image-redcore-lts/files/5.10-revert-parts-of-a00ec3874e7d326ab2dffbed92faddf6a77a84e9-no-Intel-NO.patch)0
-rw-r--r--sys-kernel/linux-image-redcore-lts/files/5.15-uksm.patch (renamed from sys-kernel/linux-image-redcore-lts/files/5.10-uksm.patch)123
27 files changed, 1445 insertions, 2805 deletions
diff --git a/sys-kernel/linux-image-redcore-lts/files/5.10-0001-Revert-hwmon-k10temp-Remove-support-for-displaying-v.patch b/sys-kernel/linux-image-redcore-lts/files/5.10-0001-Revert-hwmon-k10temp-Remove-support-for-displaying-v.patch
deleted file mode 100644
index a750b093..00000000
--- a/sys-kernel/linux-image-redcore-lts/files/5.10-0001-Revert-hwmon-k10temp-Remove-support-for-displaying-v.patch
+++ /dev/null
@@ -1,188 +0,0 @@
-From cb04c523c759e3704c6d8f81ad6fec7c94e09f69 Mon Sep 17 00:00:00 2001
-From: Gabriel Craciunescu <nix.or.die@gmail.com>
-Date: Mon, 28 Dec 2020 16:23:11 +0100
-Subject: [PATCH] Revert "hwmon: (k10temp) Remove support for displaying
- voltage and current on Zen CPUs"
-
-This reverts commit 0a4e668b5d52eed8026f5d717196b02b55fb2dc6.
-
-While not perfect ( and in this case caused by wrong code ), is better
-than having nothing. Bugs could be fixed, and if not, such CPUs could be blacklisted
-from getting the voltage informations..
----
- drivers/hwmon/k10temp.c | 98 +++++++++++++++++++++++++++++++++++++++++
- 1 file changed, 98 insertions(+)
-
-diff --git a/drivers/hwmon/k10temp.c b/drivers/hwmon/k10temp.c
-index 3bc2551577a3..a250481b5a97 100644
---- a/drivers/hwmon/k10temp.c
-+++ b/drivers/hwmon/k10temp.c
-@@ -11,6 +11,13 @@
- * convert raw register values is from https://github.com/ocerman/zenpower.
- * The information is not confirmed from chip datasheets, but experiments
- * suggest that it provides reasonable temperature values.
-+ * - Register addresses to read chip voltage and current are also from
-+ * https://github.com/ocerman/zenpower, and not confirmed from chip
-+ * datasheets. Current calibration is board specific and not typically
-+ * shared by board vendors. For this reason, current values are
-+ * normalized to report 1A/LSB for core current and and 0.25A/LSB for SoC
-+ * current. Reported values can be adjusted using the sensors configuration
-+ * file.
- */
-
- #include <linux/bitops.h>
-@@ -102,7 +109,10 @@ struct k10temp_data {
- int temp_offset;
- u32 temp_adjust_mask;
- u32 show_temp;
-+ u32 svi_addr[2];
- bool is_zen;
-+ bool show_current;
-+ int cfactor[2];
- };
-
- #define TCTL_BIT 0
-@@ -127,6 +137,16 @@ static const struct tctl_offset tctl_offset_table[] = {
- { 0x17, "AMD Ryzen Threadripper 29", 27000 }, /* 29{20,50,70,90}[W]X */
- };
-
-+static bool is_threadripper(void)
-+{
-+ return strstr(boot_cpu_data.x86_model_id, "Threadripper");
-+}
-+
-+static bool is_epyc(void)
-+{
-+ return strstr(boot_cpu_data.x86_model_id, "EPYC");
-+}
-+
- static void read_htcreg_pci(struct pci_dev *pdev, u32 *regval)
- {
- pci_read_config_dword(pdev, REG_HARDWARE_THERMAL_CONTROL, regval);
-@@ -191,6 +211,16 @@ static const char *k10temp_temp_label[] = {
- "Tccd8",
- };
-
-+static const char *k10temp_in_label[] = {
-+ "Vcore",
-+ "Vsoc",
-+};
-+
-+static const char *k10temp_curr_label[] = {
-+ "Icore",
-+ "Isoc",
-+};
-+
- static int k10temp_read_labels(struct device *dev,
- enum hwmon_sensor_types type,
- u32 attr, int channel, const char **str)
-@@ -199,6 +229,50 @@ static int k10temp_read_labels(struct device *dev,
- case hwmon_temp:
- *str = k10temp_temp_label[channel];
- break;
-+ case hwmon_in:
-+ *str = k10temp_in_label[channel];
-+ break;
-+ case hwmon_curr:
-+ *str = k10temp_curr_label[channel];
-+ break;
-+ default:
-+ return -EOPNOTSUPP;
-+ }
-+ return 0;
-+}
-+
-+static int k10temp_read_curr(struct device *dev, u32 attr, int channel,
-+ long *val)
-+{
-+ struct k10temp_data *data = dev_get_drvdata(dev);
-+ u32 regval;
-+
-+ switch (attr) {
-+ case hwmon_curr_input:
-+ amd_smn_read(amd_pci_dev_to_node_id(data->pdev),
-+ data->svi_addr[channel], &regval);
-+ *val = DIV_ROUND_CLOSEST(data->cfactor[channel] *
-+ (regval & 0xff),
-+ 1000);
-+ break;
-+ default:
-+ return -EOPNOTSUPP;
-+ }
-+ return 0;
-+}
-+
-+static int k10temp_read_in(struct device *dev, u32 attr, int channel, long *val)
-+{
-+ struct k10temp_data *data = dev_get_drvdata(dev);
-+ u32 regval;
-+
-+ switch (attr) {
-+ case hwmon_in_input:
-+ amd_smn_read(amd_pci_dev_to_node_id(data->pdev),
-+ data->svi_addr[channel], &regval);
-+ regval = (regval >> 16) & 0xff;
-+ *val = DIV_ROUND_CLOSEST(155000 - regval * 625, 100);
-+ break;
- default:
- return -EOPNOTSUPP;
- }
-@@ -257,6 +331,10 @@ static int k10temp_read(struct device *dev, enum hwmon_sensor_types type,
- switch (type) {
- case hwmon_temp:
- return k10temp_read_temp(dev, attr, channel, val);
-+ case hwmon_in:
-+ return k10temp_read_in(dev, attr, channel, val);
-+ case hwmon_curr:
-+ return k10temp_read_curr(dev, attr, channel, val);
- default:
- return -EOPNOTSUPP;
- }
-@@ -305,6 +383,11 @@ static umode_t k10temp_is_visible(const void *_data,
- return 0;
- }
- break;
-+ case hwmon_in:
-+ case hwmon_curr:
-+ if (!data->show_current)
-+ return 0;
-+ break;
- default:
- return 0;
- }
-@@ -434,10 +517,20 @@ static int k10temp_probe(struct pci_dev *pdev, const struct pci_device_id *id)
- case 0x8: /* Zen+ */
- case 0x11: /* Zen APU */
- case 0x18: /* Zen+ APU */
-+ data->show_current = !is_threadripper() && !is_epyc();
-+ data->svi_addr[0] = F17H_M01H_SVI_TEL_PLANE0;
-+ data->svi_addr[1] = F17H_M01H_SVI_TEL_PLANE1;
-+ data->cfactor[0] = F17H_M01H_CFACTOR_ICORE;
-+ data->cfactor[1] = F17H_M01H_CFACTOR_ISOC;
- k10temp_get_ccd_support(pdev, data, 4);
- break;
- case 0x31: /* Zen2 Threadripper */
- case 0x71: /* Zen2 */
-+ data->show_current = !is_threadripper() && !is_epyc();
-+ data->cfactor[0] = F17H_M31H_CFACTOR_ICORE;
-+ data->cfactor[1] = F17H_M31H_CFACTOR_ISOC;
-+ data->svi_addr[0] = F17H_M31H_SVI_TEL_PLANE0;
-+ data->svi_addr[1] = F17H_M31H_SVI_TEL_PLANE1;
- k10temp_get_ccd_support(pdev, data, 8);
- break;
- }
-@@ -449,6 +542,11 @@ static int k10temp_probe(struct pci_dev *pdev, const struct pci_device_id *id)
-
- switch (boot_cpu_data.x86_model) {
- case 0x0 ... 0x1: /* Zen3 */
-+ data->show_current = true;
-+ data->svi_addr[0] = F19H_M01_SVI_TEL_PLANE0;
-+ data->svi_addr[1] = F19H_M01_SVI_TEL_PLANE1;
-+ data->cfactor[0] = F19H_M01H_CFACTOR_ICORE;
-+ data->cfactor[1] = F19H_M01H_CFACTOR_ISOC;
- k10temp_get_ccd_support(pdev, data, 8);
- break;
- }
---
-2.29.2
-
diff --git a/sys-kernel/linux-image-redcore-lts/files/5.10-Unknow-SSD-HFM128GDHTNG-8310B-QUIRK_NO_APST.patch b/sys-kernel/linux-image-redcore-lts/files/5.10-Unknow-SSD-HFM128GDHTNG-8310B-QUIRK_NO_APST.patch
deleted file mode 100644
index 747935f6..00000000
--- a/sys-kernel/linux-image-redcore-lts/files/5.10-Unknow-SSD-HFM128GDHTNG-8310B-QUIRK_NO_APST.patch
+++ /dev/null
@@ -1,19 +0,0 @@
-diff -up linux-5.3/drivers/nvme/host/core.c.34~ linux-5.3/drivers/nvme/host/core.c
---- linux-5.3/drivers/nvme/host/core.c.34~ 2019-09-16 18:35:34.144511992 +0200
-+++ linux-5.3/drivers/nvme/host/core.c 2019-09-16 18:36:50.351828001 +0200
-@@ -2267,6 +2267,15 @@ static const struct nvme_core_quirk_entr
- .vid = 0x14a4,
- .fr = "22301111",
- .quirks = NVME_QUIRK_SIMPLE_SUSPEND,
-+ },
-+ {
-+ /* https://forum.openmandriva.org/t/nvme-ssd-m2-not-seen-by-omlx-4-0/2407
-+ * Unknown SSD ... Maybe ADATA/Hynix (a similar mn from ADTA
-+ * but vid seems to be Hynix)
-+ */
-+ .vid = 0x1c5c,
-+ .mn = "HFM128GDHTNG-8310B",
-+ .quirks = NVME_QUIRK_NO_APST,
- }
- };
-
diff --git a/sys-kernel/linux-image-redcore-lts/files/5.10-add-amd-sfh-hid_driver.patch b/sys-kernel/linux-image-redcore-lts/files/5.10-add-amd-sfh-hid_driver.patch
deleted file mode 100644
index dd8badee..00000000
--- a/sys-kernel/linux-image-redcore-lts/files/5.10-add-amd-sfh-hid_driver.patch
+++ /dev/null
@@ -1,1783 +0,0 @@
-diff -Naur linux-5.10.2/drivers/hid/amd-sfh-hid/amd_sfh_client.c linux-5.10.2-amd/drivers/hid/amd-sfh-hid/amd_sfh_client.c
---- linux-5.10.2/drivers/hid/amd-sfh-hid/amd_sfh_client.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-5.10.2-amd/drivers/hid/amd-sfh-hid/amd_sfh_client.c 2020-12-25 14:25:44.298391979 +0100
-@@ -0,0 +1,246 @@
-+// SPDX-License-Identifier: GPL-2.0-or-later
-+/*
-+ * AMD SFH Client Layer
-+ * Copyright 2020 Advanced Micro Devices, Inc.
-+ * Authors: Nehal Bakulchandra Shah <Nehal-Bakulchandra.Shah@amd.com>
-+ * Sandeep Singh <Sandeep.singh@amd.com>
-+ */
-+
-+#include <linux/dma-mapping.h>
-+#include <linux/hid.h>
-+#include <linux/list.h>
-+#include <linux/slab.h>
-+#include <linux/workqueue.h>
-+#include <linux/errno.h>
-+
-+#include "hid_descriptor/amd_sfh_hid_desc.h"
-+#include "amd_sfh_pcie.h"
-+#include "amd_sfh_hid.h"
-+
-+#define AMD_SFH_IDLE_LOOP 200
-+
-+struct request_list {
-+ struct hid_device *hid;
-+ struct list_head list;
-+ u8 report_id;
-+ u8 sensor_idx;
-+ u8 report_type;
-+ u8 current_index;
-+};
-+
-+static struct request_list req_list;
-+
-+void amd_sfh_set_report(struct hid_device *hid, int report_id,
-+ int report_type)
-+{
-+ struct amdtp_hid_data *hid_data = hid->driver_data;
-+ struct amdtp_cl_data *cli_data = hid_data->cli_data;
-+ int i;
-+
-+ for (i = 0; i < cli_data->num_hid_devices; i++) {
-+ if (cli_data->hid_sensor_hubs[i] == hid) {
-+ cli_data->cur_hid_dev = i;
-+ break;
-+ }
-+ }
-+ amdtp_hid_wakeup(hid);
-+}
-+
-+int amd_sfh_get_report(struct hid_device *hid, int report_id, int report_type)
-+{
-+ struct amdtp_hid_data *hid_data = hid->driver_data;
-+ struct amdtp_cl_data *cli_data = hid_data->cli_data;
-+ int i;
-+
-+ for (i = 0; i < cli_data->num_hid_devices; i++) {
-+ if (cli_data->hid_sensor_hubs[i] == hid) {
-+ struct request_list *new = kzalloc(sizeof(*new), GFP_KERNEL);
-+
-+ if (!new)
-+ return -ENOMEM;
-+
-+ new->current_index = i;
-+ new->sensor_idx = cli_data->sensor_idx[i];
-+ new->hid = hid;
-+ new->report_type = report_type;
-+ new->report_id = report_id;
-+ cli_data->report_id[i] = report_id;
-+ cli_data->request_done[i] = false;
-+ list_add(&new->list, &req_list.list);
-+ break;
-+ }
-+ }
-+ schedule_delayed_work(&cli_data->work, 0);
-+ return 0;
-+}
-+
-+static void amd_sfh_work(struct work_struct *work)
-+{
-+ struct amdtp_cl_data *cli_data = container_of(work, struct amdtp_cl_data, work.work);
-+ struct request_list *req_node;
-+ u8 current_index, sensor_index;
-+ u8 report_id, node_type;
-+ u8 report_size = 0;
-+
-+ req_node = list_last_entry(&req_list.list, struct request_list, list);
-+ list_del(&req_node->list);
-+ current_index = req_node->current_index;
-+ sensor_index = req_node->sensor_idx;
-+ report_id = req_node->report_id;
-+ node_type = req_node->report_type;
-+
-+ if (node_type == HID_FEATURE_REPORT) {
-+ report_size = get_feature_report(sensor_index, report_id,
-+ cli_data->feature_report[current_index]);
-+ if (report_size)
-+ hid_input_report(cli_data->hid_sensor_hubs[current_index],
-+ cli_data->report_type[current_index],
-+ cli_data->feature_report[current_index], report_size, 0);
-+ else
-+ pr_err("AMDSFH: Invalid report size\n");
-+
-+ } else if (node_type == HID_INPUT_REPORT) {
-+ report_size = get_input_report(sensor_index, report_id,
-+ cli_data->input_report[current_index],
-+ cli_data->sensor_virt_addr[current_index]);
-+ if (report_size)
-+ hid_input_report(cli_data->hid_sensor_hubs[current_index],
-+ cli_data->report_type[current_index],
-+ cli_data->input_report[current_index], report_size, 0);
-+ else
-+ pr_err("AMDSFH: Invalid report size\n");
-+ }
-+ cli_data->cur_hid_dev = current_index;
-+ cli_data->sensor_requested_cnt[current_index] = 0;
-+ amdtp_hid_wakeup(cli_data->hid_sensor_hubs[current_index]);
-+}
-+
-+static void amd_sfh_work_buffer(struct work_struct *work)
-+{
-+ struct amdtp_cl_data *cli_data = container_of(work, struct amdtp_cl_data, work_buffer.work);
-+ u8 report_size;
-+ int i;
-+
-+ for (i = 0; i < cli_data->num_hid_devices; i++) {
-+ report_size = get_input_report(cli_data->sensor_idx[i], cli_data->report_id[i],
-+ cli_data->input_report[i],
-+ cli_data->sensor_virt_addr[i]);
-+ hid_input_report(cli_data->hid_sensor_hubs[i], HID_INPUT_REPORT,
-+ cli_data->input_report[i], report_size, 0);
-+ }
-+ schedule_delayed_work(&cli_data->work_buffer, msecs_to_jiffies(AMD_SFH_IDLE_LOOP));
-+}
-+
-+int amd_sfh_hid_client_init(struct amd_mp2_dev *privdata)
-+{
-+ struct amdtp_cl_data *cl_data = privdata->cl_data;
-+ struct amd_mp2_sensor_info info;
-+ struct device *dev;
-+ u32 feature_report_size;
-+ u32 input_report_size;
-+ u8 cl_idx;
-+ int rc, i;
-+
-+ dev = &privdata->pdev->dev;
-+ cl_data = kzalloc(sizeof(*cl_data), GFP_KERNEL);
-+ if (!cl_data)
-+ return -ENOMEM;
-+
-+ cl_data->num_hid_devices = amd_mp2_get_sensor_num(privdata, &cl_data->sensor_idx[0]);
-+
-+ INIT_DELAYED_WORK(&cl_data->work, amd_sfh_work);
-+ INIT_DELAYED_WORK(&cl_data->work_buffer, amd_sfh_work_buffer);
-+ INIT_LIST_HEAD(&req_list.list);
-+
-+ for (i = 0; i < cl_data->num_hid_devices; i++) {
-+ cl_data->sensor_virt_addr[i] = dma_alloc_coherent(dev, sizeof(int) * 8,
-+ &cl_data->sensor_phys_addr[i],
-+ GFP_KERNEL);
-+ cl_data->sensor_sts[i] = 0;
-+ cl_data->sensor_requested_cnt[i] = 0;
-+ cl_data->cur_hid_dev = i;
-+ cl_idx = cl_data->sensor_idx[i];
-+ cl_data->report_descr_sz[i] = get_descr_sz(cl_idx, descr_size);
-+ if (!cl_data->report_descr_sz[i]) {
-+ rc = -EINVAL;
-+ goto cleanup;
-+ }
-+ feature_report_size = get_descr_sz(cl_idx, feature_size);
-+ if (!feature_report_size) {
-+ rc = -EINVAL;
-+ goto cleanup;
-+ }
-+ input_report_size = get_descr_sz(cl_idx, input_size);
-+ if (!input_report_size) {
-+ rc = -EINVAL;
-+ goto cleanup;
-+ }
-+ cl_data->feature_report[i] = kzalloc(feature_report_size, GFP_KERNEL);
-+ if (!cl_data->feature_report[i]) {
-+ rc = -ENOMEM;
-+ goto cleanup;
-+ }
-+ cl_data->input_report[i] = kzalloc(input_report_size, GFP_KERNEL);
-+ if (!cl_data->input_report[i]) {
-+ rc = -ENOMEM;
-+ goto cleanup;
-+ }
-+ info.period = msecs_to_jiffies(AMD_SFH_IDLE_LOOP);
-+ info.sensor_idx = cl_idx;
-+ info.phys_address = cl_data->sensor_phys_addr[i];
-+
-+ cl_data->report_descr[i] = kzalloc(cl_data->report_descr_sz[i], GFP_KERNEL);
-+ if (!cl_data->report_descr[i]) {
-+ rc = -ENOMEM;
-+ goto cleanup;
-+ }
-+ rc = get_report_descriptor(cl_idx, cl_data->report_descr[i]);
-+ if (rc)
-+ return rc;
-+ rc = amdtp_hid_probe(cl_data->cur_hid_dev, cl_data);
-+ if (rc)
-+ return rc;
-+ amd_start_sensor(privdata, info);
-+ cl_data->sensor_sts[i] = 1;
-+ }
-+ privdata->cl_data = cl_data;
-+ schedule_delayed_work(&cl_data->work_buffer, msecs_to_jiffies(AMD_SFH_IDLE_LOOP));
-+ return 0;
-+
-+cleanup:
-+ for (i = 0; i < cl_data->num_hid_devices; i++) {
-+ if (cl_data->sensor_virt_addr[i]) {
-+ dma_free_coherent(&privdata->pdev->dev, 8 * sizeof(int),
-+ cl_data->sensor_virt_addr[i],
-+ cl_data->sensor_phys_addr[i]);
-+ }
-+ kfree(cl_data->feature_report[i]);
-+ kfree(cl_data->input_report[i]);
-+ kfree(cl_data->report_descr[i]);
-+ }
-+ kfree(cl_data);
-+ return rc;
-+}
-+
-+int amd_sfh_hid_client_deinit(struct amd_mp2_dev *privdata)
-+{
-+ struct amdtp_cl_data *cl_data = privdata->cl_data;
-+ int i;
-+
-+ for (i = 0; i < cl_data->num_hid_devices; i++)
-+ amd_stop_sensor(privdata, i);
-+
-+ cancel_delayed_work_sync(&cl_data->work);
-+ cancel_delayed_work_sync(&cl_data->work_buffer);
-+ amdtp_hid_remove(cl_data);
-+
-+ for (i = 0; i < cl_data->num_hid_devices; i++) {
-+ if (cl_data->sensor_virt_addr[i]) {
-+ dma_free_coherent(&privdata->pdev->dev, 8 * sizeof(int),
-+ cl_data->sensor_virt_addr[i],
-+ cl_data->sensor_phys_addr[i]);
-+ }
-+ }
-+ kfree(cl_data);
-+ return 0;
-+}
-diff -Naur linux-5.10.2/drivers/hid/amd-sfh-hid/amd_sfh_hid.c linux-5.10.2-amd/drivers/hid/amd-sfh-hid/amd_sfh_hid.c
---- linux-5.10.2/drivers/hid/amd-sfh-hid/amd_sfh_hid.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-5.10.2-amd/drivers/hid/amd-sfh-hid/amd_sfh_hid.c 2020-12-25 14:25:44.298391979 +0100
-@@ -0,0 +1,174 @@
-+// SPDX-License-Identifier: GPL-2.0-or-later
-+/*
-+ * AMD MP2 Sensors transport driver
-+ *
-+ * Authors: Nehal Bakulchandra Shah <Nehal-bakulchandra.shah@amd.com>
-+ * Sandeep Singh <sandeep.singh@amd.com>
-+ */
-+#include <linux/hid.h>
-+#include <linux/wait.h>
-+#include <linux/sched.h>
-+
-+#include "amd_sfh_hid.h"
-+
-+#define AMD_SFH_RESPONSE_TIMEOUT 1500
-+
-+/**
-+ * amdtp_hid_parse() - hid-core .parse() callback
-+ * @hid: hid device instance
-+ *
-+ * This function gets called during call to hid_add_device
-+ *
-+ * Return: 0 on success and non zero on error
-+ */
-+static int amdtp_hid_parse(struct hid_device *hid)
-+{
-+ struct amdtp_hid_data *hid_data = hid->driver_data;
-+ struct amdtp_cl_data *cli_data = hid_data->cli_data;
-+
-+ return hid_parse_report(hid, cli_data->report_descr[hid_data->index],
-+ cli_data->report_descr_sz[hid_data->index]);
-+}
-+
-+/* Empty callbacks with success return code */
-+static int amdtp_hid_start(struct hid_device *hid)
-+{
-+ return 0;
-+}
-+
-+static void amdtp_hid_stop(struct hid_device *hid)
-+{
-+}
-+
-+static int amdtp_hid_open(struct hid_device *hid)
-+{
-+ return 0;
-+}
-+
-+static void amdtp_hid_close(struct hid_device *hid)
-+{
-+}
-+
-+static int amdtp_raw_request(struct hid_device *hdev, u8 reportnum,
-+ u8 *buf, size_t len, u8 rtype, int reqtype)
-+{
-+ return 0;
-+}
-+
-+static void amdtp_hid_request(struct hid_device *hid, struct hid_report *rep, int reqtype)
-+{
-+ int rc;
-+
-+ switch (reqtype) {
-+ case HID_REQ_GET_REPORT:
-+ rc = amd_sfh_get_report(hid, rep->id, rep->type);
-+ if (rc)
-+ dev_err(&hid->dev, "AMDSFH get report error\n");
-+ break;
-+ case HID_REQ_SET_REPORT:
-+ amd_sfh_set_report(hid, rep->id, reqtype);
-+ break;
-+ default:
-+ break;
-+ }
-+}
-+
-+static int amdtp_wait_for_response(struct hid_device *hid)
-+{
-+ struct amdtp_hid_data *hid_data = hid->driver_data;
-+ struct amdtp_cl_data *cli_data = hid_data->cli_data;
-+ int i, ret = 0;
-+
-+ for (i = 0; i < cli_data->num_hid_devices; i++) {
-+ if (cli_data->hid_sensor_hubs[i] == hid)
-+ break;
-+ }
-+
-+ if (!cli_data->request_done[i])
-+ ret = wait_event_interruptible_timeout(hid_data->hid_wait,
-+ cli_data->request_done[i],
-+ msecs_to_jiffies(AMD_SFH_RESPONSE_TIMEOUT));
-+ if (ret == -ERESTARTSYS)
-+ return -ERESTARTSYS;
-+ else if (ret < 0)
-+ return -ETIMEDOUT;
-+ else
-+ return 0;
-+}
-+
-+void amdtp_hid_wakeup(struct hid_device *hid)
-+{
-+ struct amdtp_hid_data *hid_data = hid->driver_data;
-+ struct amdtp_cl_data *cli_data = hid_data->cli_data;
-+
-+ cli_data->request_done[cli_data->cur_hid_dev] = true;
-+ wake_up_interruptible(&hid_data->hid_wait);
-+}
-+
-+static struct hid_ll_driver amdtp_hid_ll_driver = {
-+ .parse = amdtp_hid_parse,
-+ .start = amdtp_hid_start,
-+ .stop = amdtp_hid_stop,
-+ .open = amdtp_hid_open,
-+ .close = amdtp_hid_close,
-+ .request = amdtp_hid_request,
-+ .wait = amdtp_wait_for_response,
-+ .raw_request = amdtp_raw_request,
-+};
-+
-+int amdtp_hid_probe(u32 cur_hid_dev, struct amdtp_cl_data *cli_data)
-+{
-+ struct hid_device *hid;
-+ struct amdtp_hid_data *hid_data;
-+ int rc;
-+
-+ hid = hid_allocate_device();
-+ if (IS_ERR(hid))
-+ return PTR_ERR(hid);
-+
-+ hid_data = kzalloc(sizeof(*hid_data), GFP_KERNEL);
-+ if (!hid_data) {
-+ rc = -ENOMEM;
-+ goto err_hid_data;
-+ }
-+
-+ hid->ll_driver = &amdtp_hid_ll_driver;
-+ hid_data->index = cur_hid_dev;
-+ hid_data->cli_data = cli_data;
-+ init_waitqueue_head(&hid_data->hid_wait);
-+
-+ hid->driver_data = hid_data;
-+ cli_data->hid_sensor_hubs[cur_hid_dev] = hid;
-+ hid->bus = BUS_AMD_AMDTP;
-+ hid->vendor = AMD_SFH_HID_VENDOR;
-+ hid->product = AMD_SFH_HID_PRODUCT;
-+ snprintf(hid->name, sizeof(hid->name), "%s %04X:%04X", "hid-amdtp",
-+ hid->vendor, hid->product);
-+
-+ rc = hid_add_device(hid);
-+ if (rc)
-+ goto err_hid_device;
-+ return 0;
-+
-+err_hid_device:
-+ kfree(hid_data);
-+err_hid_data:
-+ hid_destroy_device(hid);
-+ return rc;
-+}
-+
-+void amdtp_hid_remove(struct amdtp_cl_data *cli_data)
-+{
-+ int i;
-+
-+ for (i = 0; i < cli_data->num_hid_devices; ++i) {
-+ kfree(cli_data->feature_report[i]);
-+ kfree(cli_data->input_report[i]);
-+ kfree(cli_data->report_descr[i]);
-+ if (cli_data->hid_sensor_hubs[i]) {
-+ kfree(cli_data->hid_sensor_hubs[i]->driver_data);
-+ hid_destroy_device(cli_data->hid_sensor_hubs[i]);
-+ cli_data->hid_sensor_hubs[i] = NULL;
-+ }
-+ }
-+}
-diff -Naur linux-5.10.2/drivers/hid/amd-sfh-hid/amd_sfh_hid.h linux-5.10.2-amd/drivers/hid/amd-sfh-hid/amd_sfh_hid.h
---- linux-5.10.2/drivers/hid/amd-sfh-hid/amd_sfh_hid.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-5.10.2-amd/drivers/hid/amd-sfh-hid/amd_sfh_hid.h 2020-12-25 14:25:44.299391977 +0100
-@@ -0,0 +1,67 @@
-+/* SPDX-License-Identifier: GPL-2.0-or-later */
-+/*
-+ * AMD MP2 Sensors transport driver
-+ *
-+ * Authors: Nehal Bakulchandra Shah <Nehal-bakulchandra.shah@amd.com>
-+ * Sandeep Singh <sandeep.singh@amd.com>
-+ */
-+
-+#ifndef AMDSFH_HID_H
-+#define AMDSFH_HID_H
-+
-+#define MAX_HID_DEVICES 4
-+#define BUS_AMD_AMDTP 0x20
-+#define AMD_SFH_HID_VENDOR 0x1022
-+#define AMD_SFH_HID_PRODUCT 0x0001
-+
-+struct amdtp_cl_data {
-+ u8 init_done;
-+ u32 cur_hid_dev;
-+ u32 hid_dev_count;
-+ u32 num_hid_devices;
-+ struct device_info *hid_devices;
-+ u8 *report_descr[MAX_HID_DEVICES];
-+ int report_descr_sz[MAX_HID_DEVICES];
-+ struct hid_device *hid_sensor_hubs[MAX_HID_DEVICES];
-+ u8 *hid_descr[MAX_HID_DEVICES];
-+ int hid_descr_size[MAX_HID_DEVICES];
-+ phys_addr_t phys_addr_base;
-+ u32 *sensor_virt_addr[MAX_HID_DEVICES];
-+ phys_addr_t sensor_phys_addr[MAX_HID_DEVICES];
-+ u32 sensor_sts[MAX_HID_DEVICES];
-+ u32 sensor_requested_cnt[MAX_HID_DEVICES];
-+ u8 report_type[MAX_HID_DEVICES];
-+ u8 report_id[MAX_HID_DEVICES];
-+ u8 sensor_idx[MAX_HID_DEVICES];
-+ u8 *feature_report[MAX_HID_DEVICES];
-+ u8 *input_report[MAX_HID_DEVICES];
-+ u8 request_done[MAX_HID_DEVICES];
-+ struct delayed_work work;
-+ struct delayed_work work_buffer;
-+};
-+
-+/**
-+ * struct amdtp_hid_data - Per instance HID data
-+ * @index: Device index in the order of enumeration
-+ * @request_done: Get Feature/Input report complete flag
-+ * used during get/set request from hid core
-+ * @cli_data: Link to the client instance
-+ * @hid_wait: Completion waitq
-+ *
-+ * Used to tie hid->driver data to driver client instance
-+ */
-+struct amdtp_hid_data {
-+ int index;
-+ struct amdtp_cl_data *cli_data;
-+ wait_queue_head_t hid_wait;
-+};
-+
-+/* Interface functions between HID LL driver and AMD SFH client */
-+void hid_amdtp_set_feature(struct hid_device *hid, char *buf, u32 len, int report_id);
-+void hid_amdtp_get_report(struct hid_device *hid, int report_id, int report_type);
-+int amdtp_hid_probe(u32 cur_hid_dev, struct amdtp_cl_data *cli_data);
-+void amdtp_hid_remove(struct amdtp_cl_data *cli_data);
-+int amd_sfh_get_report(struct hid_device *hid, int report_id, int report_type);
-+void amd_sfh_set_report(struct hid_device *hid, int report_id, int report_type);
-+void amdtp_hid_wakeup(struct hid_device *hid);
-+#endif
-diff -Naur linux-5.10.2/drivers/hid/amd-sfh-hid/amd_sfh_pcie.c linux-5.10.2-amd/drivers/hid/amd-sfh-hid/amd_sfh_pcie.c
---- linux-5.10.2/drivers/hid/amd-sfh-hid/amd_sfh_pcie.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-5.10.2-amd/drivers/hid/amd-sfh-hid/amd_sfh_pcie.c 2020-12-25 14:25:44.299391977 +0100
-@@ -0,0 +1,152 @@
-+// SPDX-License-Identifier: GPL-2.0-or-later
-+/*
-+ * AMD MP2 PCIe communication driver
-+ * Copyright 2020 Advanced Micro Devices, Inc.
-+ *
-+ * Authors: Shyam Sundar S K <Shyam-sundar.S-k@amd.com>
-+ * Sandeep Singh <Sandeep.singh@amd.com>
-+ */
-+
-+#include <linux/bitops.h>
-+#include <linux/delay.h>
-+#include <linux/dma-mapping.h>
-+#include <linux/interrupt.h>
-+#include <linux/io-64-nonatomic-lo-hi.h>
-+#include <linux/module.h>
-+#include <linux/slab.h>
-+
-+#include "amd_sfh_pcie.h"
-+
-+#define DRIVER_NAME "pcie_mp2_amd"
-+#define DRIVER_DESC "AMD(R) PCIe MP2 Communication Driver"
-+
-+#define ACEL_EN BIT(0)
-+#define GYRO_EN BIT(1)
-+#define MAGNO_EN BIT(2)
-+#define ALS_EN BIT(19)
-+
-+void amd_start_sensor(struct amd_mp2_dev *privdata, struct amd_mp2_sensor_info info)
-+{
-+ union sfh_cmd_param cmd_param;
-+ union sfh_cmd_base cmd_base;
-+
-+ /* fill up command register */
-+ memset(&cmd_base, 0, sizeof(cmd_base));
-+ cmd_base.s.cmd_id = ENABLE_SENSOR;
-+ cmd_base.s.period = info.period;
-+ cmd_base.s.sensor_id = info.sensor_idx;
-+
-+ /* fill up command param register */
-+ memset(&cmd_param, 0, sizeof(cmd_param));
-+ cmd_param.s.buf_layout = 1;
-+ cmd_param.s.buf_length = 16;
-+
-+ writeq(info.phys_address, privdata->mmio + AMD_C2P_MSG2);
-+ writel(cmd_param.ul, privdata->mmio + AMD_C2P_MSG1);
-+ writel(cmd_base.ul, privdata->mmio + AMD_C2P_MSG0);
-+}
-+
-+void amd_stop_sensor(struct amd_mp2_dev *privdata, u16 sensor_idx)
-+{
-+ union sfh_cmd_base cmd_base;
-+
-+ /* fill up command register */
-+ memset(&cmd_base, 0, sizeof(cmd_base));
-+ cmd_base.s.cmd_id = DISABLE_SENSOR;
-+ cmd_base.s.period = 0;
-+ cmd_base.s.sensor_id = sensor_idx;
-+
-+ writeq(0x0, privdata->mmio + AMD_C2P_MSG2);
-+ writel(cmd_base.ul, privdata->mmio + AMD_C2P_MSG0);
-+}
-+
-+void amd_stop_all_sensors(struct amd_mp2_dev *privdata)
-+{
-+ union sfh_cmd_base cmd_base;
-+
-+ /* fill up command register */
-+ memset(&cmd_base, 0, sizeof(cmd_base));
-+ cmd_base.s.cmd_id = STOP_ALL_SENSORS;
-+ cmd_base.s.period = 0;
-+ cmd_base.s.sensor_id = 0;
-+
-+ writel(cmd_base.ul, privdata->mmio + AMD_C2P_MSG0);
-+}
-+
-+int amd_mp2_get_sensor_num(struct amd_mp2_dev *privdata, u8 *sensor_id)
-+{
-+ int activestatus, num_of_sensors = 0;
-+
-+ privdata->activecontrolstatus = readl(privdata->mmio + AMD_P2C_MSG3);
-+ activestatus = privdata->activecontrolstatus >> 4;
-+ if (ACEL_EN & activestatus)
-+ sensor_id[num_of_sensors++] = accel_idx;
-+
-+ if (GYRO_EN & activestatus)
-+ sensor_id[num_of_sensors++] = gyro_idx;
-+
-+ if (MAGNO_EN & activestatus)
-+ sensor_id[num_of_sensors++] = mag_idx;
-+
-+ if (ALS_EN & activestatus)
-+ sensor_id[num_of_sensors++] = als_idx;
-+
-+ return num_of_sensors;
-+}
-+
-+static void amd_mp2_pci_remove(void *privdata)
-+{
-+ amd_sfh_hid_client_deinit(privdata);
-+ amd_stop_all_sensors(privdata);
-+}
-+
-+static int amd_mp2_pci_probe(struct pci_dev *pdev, const struct pci_device_id *id)
-+{
-+ struct amd_mp2_dev *privdata;
-+ int rc;
-+
-+ privdata = devm_kzalloc(&pdev->dev, sizeof(*privdata), GFP_KERNEL);
-+ if (!privdata)
-+ return -ENOMEM;
-+
-+ privdata->pdev = pdev;
-+ pci_set_drvdata(pdev, privdata);
-+ rc = pcim_enable_device(pdev);
-+ if (rc)
-+ return rc;
-+
-+ rc = pcim_iomap_regions(pdev, BIT(2), DRIVER_NAME);
-+ if (rc)
-+ return rc;
-+
-+ privdata->mmio = pcim_iomap_table(pdev)[2];
-+ pci_set_master(pdev);
-+ rc = pci_set_dma_mask(pdev, DMA_BIT_MASK(64));
-+ if (rc) {
-+ rc = pci_set_dma_mask(pdev, DMA_BIT_MASK(32));
-+ return rc;
-+ }
-+ rc = devm_add_action_or_reset(&pdev->dev, amd_mp2_pci_remove, privdata);
-+ if (rc)
-+ return rc;
-+
-+ return amd_sfh_hid_client_init(privdata);
-+}
-+
-+static const struct pci_device_id amd_mp2_pci_tbl[] = {
-+ { PCI_VDEVICE(AMD, PCI_DEVICE_ID_AMD_MP2) },
-+ { }
-+};
-+MODULE_DEVICE_TABLE(pci, amd_mp2_pci_tbl);
-+
-+static struct pci_driver amd_mp2_pci_driver = {
-+ .name = DRIVER_NAME,
-+ .id_table = amd_mp2_pci_tbl,
-+ .probe = amd_mp2_pci_probe,
-+};
-+module_pci_driver(amd_mp2_pci_driver);
-+
-+MODULE_DESCRIPTION(DRIVER_DESC);
-+MODULE_LICENSE("Dual BSD/GPL");
-+MODULE_AUTHOR("Shyam Sundar S K <Shyam-sundar.S-k@amd.com>");
-+MODULE_AUTHOR("Sandeep Singh <Sandeep.singh@amd.com>");
-diff -Naur linux-5.10.2/drivers/hid/amd-sfh-hid/amd_sfh_pcie.h linux-5.10.2-amd/drivers/hid/amd-sfh-hid/amd_sfh_pcie.h
---- linux-5.10.2/drivers/hid/amd-sfh-hid/amd_sfh_pcie.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-5.10.2-amd/drivers/hid/amd-sfh-hid/amd_sfh_pcie.h 2020-12-25 14:25:44.299391977 +0100
-@@ -0,0 +1,79 @@
-+/* SPDX-License-Identifier: GPL-2.0-or-later */
-+/*
-+ * AMD MP2 PCIe communication driver
-+ * Copyright 2020 Advanced Micro Devices, Inc.
-+ * Authors: Shyam Sundar S K <Shyam-sundar.S-k@amd.com>
-+ * Sandeep Singh <Sandeep.singh@amd.com>
-+ */
-+
-+#ifndef PCIE_MP2_AMD_H
-+#define PCIE_MP2_AMD_H
-+
-+#include <linux/pci.h>
-+
-+#define PCI_DEVICE_ID_AMD_MP2 0x15E4
-+
-+#define ENABLE_SENSOR 1
-+#define DISABLE_SENSOR 2
-+#define STOP_ALL_SENSORS 8
-+
-+/* MP2 C2P Message Registers */
-+#define AMD_C2P_MSG0 0x10500
-+#define AMD_C2P_MSG1 0x10504
-+#define AMD_C2P_MSG2 0x10508
-+
-+/* MP2 P2C Message Registers */
-+#define AMD_P2C_MSG3 0x1068C /* Supported Sensors info */
-+
-+/* SFH Command register */
-+union sfh_cmd_base {
-+ u32 ul;
-+ struct {
-+ u32 cmd_id : 8;
-+ u32 sensor_id : 8;
-+ u32 period : 16;
-+ } s;
-+};
-+
-+union sfh_cmd_param {
-+ u32 ul;
-+ struct {
-+ u32 buf_layout : 2;
-+ u32 buf_length : 6;
-+ u32 rsvd : 24;
-+ } s;
-+};
-+
-+struct sfh_cmd_reg {
-+ union sfh_cmd_base cmd_base;
-+ union sfh_cmd_param cmd_param;
-+ phys_addr_t phys_addr;
-+};
-+
-+enum sensor_idx {
-+ accel_idx = 0,
-+ gyro_idx = 1,
-+ mag_idx = 2,
-+ als_idx = 19
-+};
-+
-+struct amd_mp2_dev {
-+ struct pci_dev *pdev;
-+ struct amdtp_cl_data *cl_data;
-+ void __iomem *mmio;
-+ u32 activecontrolstatus;
-+};
-+
-+struct amd_mp2_sensor_info {
-+ u8 sensor_idx;
-+ u32 period;
-+ phys_addr_t phys_address;
-+};
-+
-+void amd_start_sensor(struct amd_mp2_dev *privdata, struct amd_mp2_sensor_info info);
-+void amd_stop_sensor(struct amd_mp2_dev *privdata, u16 sensor_idx);
-+void amd_stop_all_sensors(struct amd_mp2_dev *privdata);
-+int amd_mp2_get_sensor_num(struct amd_mp2_dev *privdata, u8 *sensor_id);
-+int amd_sfh_hid_client_init(struct amd_mp2_dev *privdata);
-+int amd_sfh_hid_client_deinit(struct amd_mp2_dev *privdata);
-+#endif
-diff -Naur linux-5.10.2/drivers/hid/amd-sfh-hid/hid_descriptor/amd_sfh_hid_desc.c linux-5.10.2-amd/drivers/hid/amd-sfh-hid/hid_descriptor/amd_sfh_hid_desc.c
---- linux-5.10.2/drivers/hid/amd-sfh-hid/hid_descriptor/amd_sfh_hid_desc.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-5.10.2-amd/drivers/hid/amd-sfh-hid/hid_descriptor/amd_sfh_hid_desc.c 2020-12-25 14:25:44.299391977 +0100
-@@ -0,0 +1,224 @@
-+// SPDX-License-Identifier: GPL-2.0-or-later
-+/*
-+ * AMD SFH Report Descriptor generator
-+ * Copyright 2020 Advanced Micro Devices, Inc.
-+ * Authors: Nehal Bakulchandra Shah <Nehal-Bakulchandra.Shah@amd.com>
-+ * Sandeep Singh <sandeep.singh@amd.com>
-+ */
-+
-+#include <linux/kernel.h>
-+#include <linux/string.h>
-+#include <linux/slab.h>
-+#include "amd_sfh_pcie.h"
-+#include "amd_sfh_hid_desc.h"
-+#include "amd_sfh_hid_report_desc.h"
-+
-+#define AMD_SFH_FW_MULTIPLIER (1000)
-+#define HID_USAGE_SENSOR_PROP_REPORTING_STATE_ALL_EVENTS_ENUM 0x41
-+#define HID_USAGE_SENSOR_PROP_POWER_STATE_D0_FULL_POWER_ENUM 0x51
-+#define HID_DEFAULT_REPORT_INTERVAL 0x50
-+#define HID_DEFAULT_MIN_VALUE 0X7F
-+#define HID_DEFAULT_MAX_VALUE 0x80
-+#define HID_DEFAULT_SENSITIVITY 0x7F
-+#define HID_USAGE_SENSOR_PROPERTY_CONNECTION_TYPE_PC_INTEGRATED_ENUM 0x01
-+/* state enums */
-+#define HID_USAGE_SENSOR_STATE_READY_ENUM 0x02
-+#define HID_USAGE_SENSOR_STATE_INITIALIZING_ENUM 0x05
-+#define HID_USAGE_SENSOR_EVENT_DATA_UPDATED_ENUM 0x04
-+
-+int get_report_descriptor(int sensor_idx, u8 *rep_desc)
-+{
-+ switch (sensor_idx) {
-+ case accel_idx: /* accel */
-+ memset(rep_desc, 0, sizeof(accel3_report_descriptor));
-+ memcpy(rep_desc, accel3_report_descriptor,
-+ sizeof(accel3_report_descriptor));
-+ break;
-+ case gyro_idx: /* gyro */
-+ memset(rep_desc, 0, sizeof(gyro3_report_descriptor));
-+ memcpy(rep_desc, gyro3_report_descriptor,
-+ sizeof(gyro3_report_descriptor));
-+ break;
-+ case mag_idx: /* Magnetometer */
-+ memset(rep_desc, 0, sizeof(comp3_report_descriptor));
-+ memcpy(rep_desc, comp3_report_descriptor,
-+ sizeof(comp3_report_descriptor));
-+ break;
-+ case als_idx: /* ambient light sensor */
-+ memset(rep_desc, 0, sizeof(als_report_descriptor));
-+ memcpy(rep_desc, als_report_descriptor,
-+ sizeof(als_report_descriptor));
-+ break;
-+ default:
-+ break;
-+ }
-+ return 0;
-+}
-+
-+u32 get_descr_sz(int sensor_idx, int descriptor_name)
-+{
-+ switch (sensor_idx) {
-+ case accel_idx:
-+ switch (descriptor_name) {
-+ case descr_size:
-+ return sizeof(accel3_report_descriptor);
-+ case input_size:
-+ return sizeof(struct accel3_input_report);
-+ case feature_size:
-+ return sizeof(struct accel3_feature_report);
-+ }
-+ break;
-+ case gyro_idx:
-+ switch (descriptor_name) {
-+ case descr_size:
-+ return sizeof(gyro3_report_descriptor);
-+ case input_size:
-+ return sizeof(struct gyro_input_report);
-+ case feature_size:
-+ return sizeof(struct gyro_feature_report);
-+ }
-+ break;
-+ case mag_idx:
-+ switch (descriptor_name) {
-+ case descr_size:
-+ return sizeof(comp3_report_descriptor);
-+ case input_size:
-+ return sizeof(struct magno_input_report);
-+ case feature_size:
-+ return sizeof(struct magno_feature_report);
-+ }
-+ break;
-+ case als_idx:
-+ switch (descriptor_name) {
-+ case descr_size:
-+ return sizeof(als_report_descriptor);
-+ case input_size:
-+ return sizeof(struct als_input_report);
-+ case feature_size:
-+ return sizeof(struct als_feature_report);
-+ }
-+ break;
-+ default:
-+ break;
-+ }
-+ return 0;
-+}
-+
-+static void get_common_features(struct common_feature_property *common, int report_id)
-+{
-+ common->report_id = report_id;
-+ common->connection_type = HID_USAGE_SENSOR_PROPERTY_CONNECTION_TYPE_PC_INTEGRATED_ENUM;
-+ common->report_state = HID_USAGE_SENSOR_PROP_REPORTING_STATE_ALL_EVENTS_ENUM;
-+ common->power_state = HID_USAGE_SENSOR_PROP_POWER_STATE_D0_FULL_POWER_ENUM;
-+ common->sensor_state = HID_USAGE_SENSOR_STATE_INITIALIZING_ENUM;
-+ common->report_interval = HID_DEFAULT_REPORT_INTERVAL;
-+}
-+
-+u8 get_feature_report(int sensor_idx, int report_id, u8 *feature_report)
-+{
-+ struct accel3_feature_report acc_feature;
-+ struct gyro_feature_report gyro_feature;
-+ struct magno_feature_report magno_feature;
-+ struct als_feature_report als_feature;
-+ u8 report_size = 0;
-+
-+ if (!feature_report)
-+ return report_size;
-+
-+ switch (sensor_idx) {
-+ case accel_idx: /* accel */
-+ get_common_features(&acc_feature.common_property, report_id);
-+ acc_feature.accel_change_sesnitivity = HID_DEFAULT_SENSITIVITY;
-+ acc_feature.accel_sensitivity_min = HID_DEFAULT_MIN_VALUE;
-+ acc_feature.accel_sensitivity_max = HID_DEFAULT_MAX_VALUE;
-+ memcpy(feature_report, &acc_feature, sizeof(acc_feature));
-+ report_size = sizeof(acc_feature);
-+ break;
-+ case gyro_idx: /* gyro */
-+ get_common_features(&gyro_feature.common_property, report_id);
-+ gyro_feature.gyro_change_sesnitivity = HID_DEFAULT_SENSITIVITY;
-+ gyro_feature.gyro_sensitivity_min = HID_DEFAULT_MIN_VALUE;
-+ gyro_feature.gyro_sensitivity_max = HID_DEFAULT_MAX_VALUE;
-+ memcpy(feature_report, &gyro_feature, sizeof(gyro_feature));
-+ report_size = sizeof(gyro_feature);
-+ break;
-+ case mag_idx: /* Magnetometer */
-+ get_common_features(&magno_feature.common_property, report_id);
-+ magno_feature.magno_headingchange_sensitivity = HID_DEFAULT_SENSITIVITY;
-+ magno_feature.heading_min = HID_DEFAULT_MIN_VALUE;
-+ magno_feature.heading_max = HID_DEFAULT_MAX_VALUE;
-+ magno_feature.flux_change_sensitivity = HID_DEFAULT_MIN_VALUE;
-+ magno_feature.flux_min = HID_DEFAULT_MIN_VALUE;
-+ magno_feature.flux_max = HID_DEFAULT_MAX_VALUE;
-+ memcpy(feature_report, &magno_feature, sizeof(magno_feature));
-+ report_size = sizeof(magno_feature);
-+ break;
-+ case als_idx: /* ambient light sensor */
-+ get_common_features(&als_feature.common_property, report_id);
-+ als_feature.als_change_sesnitivity = HID_DEFAULT_SENSITIVITY;
-+ als_feature.als_sensitivity_min = HID_DEFAULT_MIN_VALUE;
-+ als_feature.als_sensitivity_max = HID_DEFAULT_MAX_VALUE;
-+ memcpy(feature_report, &als_feature, sizeof(als_feature));
-+ report_size = sizeof(als_feature);
-+ break;
-+ default:
-+ break;
-+ }
-+ return report_size;
-+}
-+
-+static void get_common_inputs(struct common_input_property *common, int report_id)
-+{
-+ common->report_id = report_id;
-+ common->sensor_state = HID_USAGE_SENSOR_STATE_READY_ENUM;
-+ common->event_type = HID_USAGE_SENSOR_EVENT_DATA_UPDATED_ENUM;
-+}
-+
-+u8 get_input_report(int sensor_idx, int report_id, u8 *input_report, u32 *sensor_virt_addr)
-+{
-+ struct accel3_input_report acc_input;
-+ struct gyro_input_report gyro_input;
-+ struct magno_input_report magno_input;
-+ struct als_input_report als_input;
-+ u8 report_size = 0;
-+
-+ if (!sensor_virt_addr || !input_report)
-+ return report_size;
-+
-+ switch (sensor_idx) {
-+ case accel_idx: /* accel */
-+ get_common_inputs(&acc_input.common_property, report_id);
-+ acc_input.in_accel_x_value = (int)sensor_virt_addr[0] / AMD_SFH_FW_MULTIPLIER;
-+ acc_input.in_accel_y_value = (int)sensor_virt_addr[1] / AMD_SFH_FW_MULTIPLIER;
-+ acc_input.in_accel_z_value = (int)sensor_virt_addr[2] / AMD_SFH_FW_MULTIPLIER;
-+ memcpy(input_report, &acc_input, sizeof(acc_input));
-+ report_size = sizeof(acc_input);
-+ break;
-+ case gyro_idx: /* gyro */
-+ get_common_inputs(&gyro_input.common_property, report_id);
-+ gyro_input.in_angel_x_value = (int)sensor_virt_addr[0] / AMD_SFH_FW_MULTIPLIER;
-+ gyro_input.in_angel_y_value = (int)sensor_virt_addr[1] / AMD_SFH_FW_MULTIPLIER;
-+ gyro_input.in_angel_z_value = (int)sensor_virt_addr[2] / AMD_SFH_FW_MULTIPLIER;
-+ memcpy(input_report, &gyro_input, sizeof(gyro_input));
-+ report_size = sizeof(gyro_input);
-+ break;
-+ case mag_idx: /* Magnetometer */
-+ get_common_inputs(&magno_input.common_property, report_id);
-+ magno_input.in_magno_x = (int)sensor_virt_addr[0] / AMD_SFH_FW_MULTIPLIER;
-+ magno_input.in_magno_y = (int)sensor_virt_addr[1] / AMD_SFH_FW_MULTIPLIER;
-+ magno_input.in_magno_z = (int)sensor_virt_addr[2] / AMD_SFH_FW_MULTIPLIER;
-+ magno_input.in_magno_accuracy = (u16)sensor_virt_addr[3] / AMD_SFH_FW_MULTIPLIER;
-+ memcpy(input_report, &magno_input, sizeof(magno_input));
-+ report_size = sizeof(magno_input);
-+ break;
-+ case als_idx: /* Als */
-+ get_common_inputs(&als_input.common_property, report_id);
-+ als_input.illuminance_value = (int)sensor_virt_addr[0] / AMD_SFH_FW_MULTIPLIER;
-+ report_size = sizeof(als_input);
-+ memcpy(input_report, &als_input, sizeof(als_input));
-+ break;
-+ default:
-+ break;
-+ }
-+ return report_size;
-+}
-diff -Naur linux-5.10.2/drivers/hid/amd-sfh-hid/hid_descriptor/amd_sfh_hid_desc.h linux-5.10.2-amd/drivers/hid/amd-sfh-hid/hid_descriptor/amd_sfh_hid_desc.h
---- linux-5.10.2/drivers/hid/amd-sfh-hid/hid_descriptor/amd_sfh_hid_desc.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-5.10.2-amd/drivers/hid/amd-sfh-hid/hid_descriptor/amd_sfh_hid_desc.h 2020-12-25 14:25:44.299391977 +0100
-@@ -0,0 +1,107 @@
-+/* SPDX-License-Identifier: GPL-2.0-or-later */
-+/*
-+ * HID report descriptors, structures and routines
-+ * Copyright 2020 Advanced Micro Devices, Inc.
-+ * Authors: Nehal Bakulchandra Shah <Nehal-bakulchandra.shah@amd.com>
-+ * Sandeep Singh <Sandeep.singh@amd.com>
-+ */
-+
-+#ifndef AMD_SFH_HID_DESCRIPTOR_H
-+#define AMD_SFH_HID_DESCRIPTOR_H
-+
-+enum desc_type {
-+ /* Report descriptor name */
-+ descr_size = 1,
-+ input_size,
-+ feature_size,
-+};
-+
-+struct common_feature_property {
-+ /* common properties */
-+ u8 report_id;
-+ u8 connection_type;
-+ u8 report_state;
-+ u8 power_state;
-+ u8 sensor_state;
-+ u32 report_interval;
-+} __packed;
-+
-+struct common_input_property {
-+ /* common properties */
-+ u8 report_id;
-+ u8 sensor_state;
-+ u8 event_type;
-+} __packed;
-+
-+struct accel3_feature_report {
-+ struct common_feature_property common_property;
-+ /* properties specific to this sensor */
-+ u16 accel_change_sesnitivity;
-+ s16 accel_sensitivity_max;
-+ s16 accel_sensitivity_min;
-+} __packed;
-+
-+struct accel3_input_report {
-+ struct common_input_property common_property;
-+ /* values specific to this sensor */
-+ int in_accel_x_value;
-+ int in_accel_y_value;
-+ int in_accel_z_value;
-+ /* include if required to support the "shake" event */
-+ u8 in_accel_shake_detection;
-+} __packed;
-+
-+struct gyro_feature_report {
-+ struct common_feature_property common_property;
-+ /* properties specific to this sensor */
-+ u16 gyro_change_sesnitivity;
-+ s16 gyro_sensitivity_max;
-+ s16 gyro_sensitivity_min;
-+} __packed;
-+
-+struct gyro_input_report {
-+ struct common_input_property common_property;
-+ /* values specific to this sensor */
-+ int in_angel_x_value;
-+ int in_angel_y_value;
-+ int in_angel_z_value;
-+} __packed;
-+
-+struct magno_feature_report {
-+ struct common_feature_property common_property;
-+ /*properties specific to this sensor */
-+ u16 magno_headingchange_sensitivity;
-+ s16 heading_min;
-+ s16 heading_max;
-+ u16 flux_change_sensitivity;
-+ s16 flux_min;
-+ s16 flux_max;
-+} __packed;
-+
-+struct magno_input_report {
-+ struct common_input_property common_property;
-+ int in_magno_x;
-+ int in_magno_y;
-+ int in_magno_z;
-+ int in_magno_accuracy;
-+} __packed;
-+
-+struct als_feature_report {
-+ struct common_feature_property common_property;
-+ /* properties specific to this sensor */
-+ u16 als_change_sesnitivity;
-+ s16 als_sensitivity_max;
-+ s16 als_sensitivity_min;
-+} __packed;
-+
-+struct als_input_report {
-+ struct common_input_property common_property;
-+ /* values specific to this sensor */
-+ int illuminance_value;
-+} __packed;
-+
-+int get_report_descriptor(int sensor_idx, u8 rep_desc[]);
-+u32 get_descr_sz(int sensor_idx, int descriptor_name);
-+u8 get_feature_report(int sensor_idx, int report_id, u8 *feature_report);
-+u8 get_input_report(int sensor_idx, int report_id, u8 *input_report, u32 *sensor_virt_addr);
-+#endif
-diff -Naur linux-5.10.2/drivers/hid/amd-sfh-hid/hid_descriptor/amd_sfh_hid_report_desc.h linux-5.10.2-amd/drivers/hid/amd-sfh-hid/hid_descriptor/amd_sfh_hid_report_desc.h
---- linux-5.10.2/drivers/hid/amd-sfh-hid/hid_descriptor/amd_sfh_hid_report_desc.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-5.10.2-amd/drivers/hid/amd-sfh-hid/hid_descriptor/amd_sfh_hid_report_desc.h 2020-12-25 14:25:44.299391977 +0100
-@@ -0,0 +1,645 @@
-+/* SPDX-License-Identifier: GPL-2.0-or-later */
-+/*
-+ * HID descriptor stuructures
-+ * Copyright 2020 Advanced Micro Devices, Inc.
-+ * Authors: Nehal Bakulchandra Shah <Nehal-bakulchandra.shah@amd.com>
-+ * Sandeep Singh <Sandeep.singh@amd.com>
-+ */
-+
-+#ifndef AMD_SFH_HID_REPORT_DESCRIPTOR_H
-+#define AMD_SFH_HID_REPORT_DESCRIPTOR_H
-+
-+// Accelerometer 3D Sensor
-+static const u8 accel3_report_descriptor[] = {
-+0x05, 0x20, /* Usage page */
-+0x09, 0x73, /* Motion type Accel 3D */
-+0xA1, 0x00, /* HID Collection (Physical) */
-+
-+//feature reports(xmit/receive)
-+0x85, 1, /* HID Report ID */
-+0x05, 0x20, /* HID usage page sensor */
-+0x0A, 0x09, 0x03, /* Sensor property and sensor connection type */
-+0x15, 0, /* HID logical MIN_8(0) */
-+0x25, 2, /* HID logical MAX_8(2) */
-+0x75, 8, /* HID report size(8) */
-+0x95, 1, /* HID report count(1) */
-+0xA1, 0x02, /* HID collection (logical) */
-+0x0A, 0x30, 0x08, /* Sensor property connection type intergated sel*/
-+0x0A, 0x31, 0x08, /* Sensor property connection type attached sel */
-+0x0A, 0x32, 0x08, /* Sensor property connection type external sel */
-+0xB1, 0x00, /* HID feature (Data_Arr_Abs) */
-+0xC0, /* HID end collection */
-+0x0A, 0x16, 0x03, /* HID usage sensor property reporting state */
-+0x15, 0, /* HID logical Min_8(0) */
-+0x25, 5, /* HID logical Max_8(5) */
-+0x75, 8, /* HID report size(8) */
-+0x95, 1, /* HID report count(1) */
-+0xA1, 0x02, /* HID collection(logical) */
-+0x0A, 0x40, 0x08, /* Sensor property report state no events sel */
-+0x0A, 0x41, 0x08, /* Sensor property report state all events sel */
-+0x0A, 0x42, 0x08, /* Sensor property report state threshold events sel */
-+0x0A, 0x43, 0x08, /* Sensor property report state no events wake sel */
-+0x0A, 0x44, 0x08, /* Sensor property report state all events wake sel */
-+0x0A, 0x45, 0x08, /* Sensor property report state threshold events wake sel */
-+0xB1, 0x00, /* HID feature (Data_Arr_Abs) */
-+0xC0, /* HID end collection */
-+0x0A, 0x19, 0x03, /* HID usage sensor property power state */
-+0x15, 0, /* HID logical Min_8(0) */
-+0x25, 5, /* HID logical Max_8(5) */
-+0x75, 8, /* HID report size(8) */
-+0x95, 1, /* HID report count(1) */
-+0xA1, 0x02, /* HID collection(logical) */
-+0x0A, 0x50, 0x08, /* Sensor property power state undefined sel */
-+0x0A, 0x51, 0x08, /* Sensor property power state D0 full power sel */
-+0x0A, 0x52, 0x08, /* Sensor property power state D1 low power sel */
-+0x0A, 0x53, 0x08, /* Sensor property power state D2 standby with wake sel */
-+0x0A, 0x54, 0x08, /* Sensor property power state D3 sleep with wake sel */
-+0x0A, 0x55, 0x08, /* Sensor property power state D4 power off sel */
-+0xB1, 0x00, /* HID feature (Data_Arr_Abs) */
-+0xC0, /* HID end collection */
-+0x0A, 0x01, 0x02, /* HID usage sensor state */
-+0x15, 0, /* HID logical Min_8(0) */
-+0x25, 6, /* HID logical Max_8(6) */
-+0x75, 8, /* HID report size(8) */
-+0x95, 1, /* HID report count(1) */
-+0xA1, 0x02, /* HID collection(logical) */
-+0x0A, 0x00, 0x08, /* HID usage sensor state unknown sel */
-+0x0A, 0x01, 0x08, /* HID usage sensor state ready sel */
-+0x0A, 0x02, 0x08, /* HID usage sensor state not available sel */
-+0x0A, 0x03, 0x08, /* HID usage sensor state no data sel */
-+0x0A, 0x04, 0x08, /* HID usage sensor state initializing sel */
-+0x0A, 0x05, 0x08, /* HID usage sensor state access denied sel */
-+0x0A, 0x06, 0x08, /* HID usage sensor state error sel */
-+0xB1, 0x00, /* HID feature (Data_Arr_Abs) */
-+0xC0, /* HID end collection */
-+0x0A, 0x0E, 0x03, /* HID usage sensor property report interval */
-+0x15, 0, /* HID logical Min_8(0) */
-+0x27, 0xFF, 0xFF, 0xFF, 0xFF, /* HID logical Max_32 */
-+
-+0x75, 32, /* HID report size(32) */
-+0x95, 1, /* HID report count(1) */
-+0x55, 0, /* HID unit exponent(0) */
-+0xB1, 0x02, /* HID feature (Data_Arr_Abs) */
-+0x0A, 0x52, 0x14, /* Sensor data motion accel and mod change sensitivity ABS) */
-+
-+0x15, 0, /* HID logical Min_8(0) */
-+0x26, 0xFF, 0xFF, /* HID logical Max_16(0xFF,0xFF) */
-+
-+0x75, 16, /* HID report size(16) */
-+0x95, 1, /* HID report count(1) */
-+0x55, 0x0E, /* HID unit exponent(0x0E) */
-+0xB1, 0x02, /* HID feature (Data_Arr_Abs) */
-+0x0A, 0x52, 0x24, /* HID usage sensor data (motion accel and mod max) */
-+
-+0x16, 0x01, 0x80, /* HID logical Min_16(0x01,0x80) */
-+
-+0x26, 0xFF, 0x7F, /* HID logical Max_16(0xFF,0x7F) */
-+
-+0x75, 16, /* HID report size(16) */
-+0x95, 1, /* HID report count(1) */
-+0x55, 0x0E, /* HID unit exponent(0x0E) */
-+0xB1, 0x02, /* HID feature (Data_Arr_Abs) */
-+0x0A, 0x52, 0x34, /* HID usage sensor data (motion accel and mod min) */
-+
-+0x16, 0x01, 0x80, /* HID logical Min_16(0x01,0x80) */
-+
-+0x26, 0xFF, 0x7F, /* HID logical Max_16(0xFF,0x7F) */
-+
-+0x75, 16, /* HID report size(16) */
-+0x95, 1, /* HID report count(1) */
-+0x55, 0x0E, /* HID unit exponent(0x0E) */
-+0xB1, 0x02, /* HID feature (Data_Arr_Abs) */
-+
-+//input report (transmit)
-+0x05, 0x20, /* HID usage page sensors */
-+0x0A, 0x01, 0x02, /* HID usage sensor state */
-+0x15, 0, /* HID logical Min_8(0) */
-+0x25, 6, /* HID logical Max_8(6) */
-+0x75, 8, /* HID report size(8) */
-+0x95, 1, /* HID report count (1) */
-+0xA1, 0x02, /* HID end collection (logical) */
-+0x0A, 0x00, 0x08, /* HID usage sensor state unknown sel */
-+0x0A, 0x01, 0x08, /* HID usage sensor state ready sel */
-+0x0A, 0x02, 0x08, /* HID usage sensor state not available sel */
-+0x0A, 0x03, 0x08, /* HID usage sensor state no data sel */
-+0x0A, 0x04, 0x08, /* HID usage sensor state initializing sel */
-+0x0A, 0x05, 0x08, /* HID usage sensor state access denied sel */
-+0x0A, 0x06, 0x08, /* HID usage sensor state error sel */
-+0X81, 0x00, /* HID Input (Data_Arr_Abs) */
-+0xC0, /* HID end collection */
-+0x0A, 0x02, 0x02, /* HID usage sensor event */
-+0x15, 0, /* HID logical Min_8(0) */
-+0x25, 5, /* HID logical Max_8(5) */
-+0x75, 8, /* HID report size(8) */
-+0x95, 1, /* HID report count (1) */
-+0xA1, 0x02, /* HID end collection (logical) */
-+0x0A, 0x10, 0x08, /* HID usage sensor event unknown sel */
-+0x0A, 0x11, 0x08, /* HID usage sensor event state changed sel */
-+0x0A, 0x12, 0x08, /* HID usage sensor event property changed sel */
-+0x0A, 0x13, 0x08, /* HID usage sensor event data updated sel */
-+0x0A, 0x14, 0x08, /* HID usage sensor event poll response sel */
-+0x0A, 0x15, 0x08, /* HID usage sensor event change sensitivity sel */
-+0X81, 0x00, /* HID Input (Data_Arr_Abs) */
-+0xC0, /* HID end collection */
-+0x0A, 0x53, 0x04, /* HID usage sensor data motion Acceleration X axis */
-+0x17, 0x00, 0x00, 0x01, 0x80, /* HID logical Min_32 */
-+
-+0x27, 0xFF, 0xff, 0XFF, 0XFF, /* HID logical Max_32 */
-+
-+0x75, 32, /* HID report size(32) */
-+0x95, 1, /* HID report count (1) */
-+0x55, 0x0E, /* HID unit exponent(0x0E) */
-+0X81, 0x02, /* HID Input (Data_Arr_Abs) */
-+0x0A, 0x54, 0x04, /* HID usage sensor data motion Acceleration Y axis */
-+0x17, 0X00, 0X00, 0x01, 0x80, /* HID logical Min_32 */
-+
-+0x27, 0xFF, 0xFF, 0XFF, 0XFF, /* HID logical Max_32 */
-+
-+0x75, 32, /* HID report size(32) */
-+0x95, 1, /* HID report count (1) */
-+0x55, 0x0E, /* HID unit exponent(0x0E) */
-+0X81, 0x02, /* HID Input (Data_Arr_Abs) */
-+0x0A, 0x55, 0x04, /* HID usage sensor data motion Acceleration Z axis */
-+0x17, 0X00, 0X00, 0x01, 0x80, /* HID logical Min_32 */
-+
-+0x27, 0XFF, 0XFF, 0xFF, 0x7F, /* HID logical Max_32 */
-+
-+0x75, 32, /* HID report size(32) */
-+0x95, 1, /* HID report count (1) */
-+0x55, 0x0E, /* HID unit exponent(0x0E) */
-+0X81, 0x02, /* HID Input (Data_Arr_Abs) */
-+
-+0x0A, 0x51, 0x04, /* HID usage sensor data motion state */
-+0x15, 0, /* HID logical Min_8(0) False = Still*/
-+0x25, 1, /* HID logical Min_8(1) True = In motion */
-+0x75, 8, /* HID report size(8) */
-+0x95, 1, /* HID report count (1) */
-+0X81, 0x02, /* HID Input (Data_Arr_Abs) */
-+0xC0 /* HID end collection */
-+};
-+
-+const u8 gyro3_report_descriptor[] = {
-+0x05, 0x20, /* Usage page */
-+0x09, 0x76, /* Motion type Gyro3D */
-+0xA1, 0x00, /* HID Collection (Physical) */
-+
-+0x85, 2, /* HID Report ID */
-+0x05, 0x20, /* HID usage page sensor */
-+0x0A, 0x09, 0x03, /* Sensor property and sensor connection type */
-+0x15, 0, /* HID logical MIN_8(0) */
-+0x25, 2, /* HID logical MAX_8(2) */
-+0x75, 8, /* HID report size(8) */
-+0x95, 1, /* HID report count(1) */
-+0xA1, 0x02, /* HID collection (logical) */
-+0x0A, 0x30, 0x08, /* Sensor property connection type intergated sel */
-+0x0A, 0x31, 0x08, /* Sensor property connection type attached sel */
-+0x0A, 0x32, 0x08, /* Sensor property connection type external sel */
-+0xB1, 0x00, /* HID feature (Data_Arr_Abs) */
-+0xC0, /* HID end collection */
-+0x0A, 0x16, 0x03, /* HID usage sensor property reporting state */
-+0x15, 0, /* HID logical Min_8(0) */
-+0x25, 5, /* HID logical Max_8(5) */
-+0x75, 8, /* HID report size(8) */
-+0x95, 1, /* HID report count(1) */
-+0xA1, 0x02, /* HID collection(logical) */
-+0x0A, 0x40, 0x08, /* Sensor reporting state no events sel */
-+0x0A, 0x41, 0x08, /* Sensor reporting state all events sel */
-+0x0A, 0x42, 0x08, /* Sensor reporting state threshold events sel */
-+0x0A, 0x43, 0x08, /* Sensor reporting state no events wake sel */
-+0x0A, 0x44, 0x08, /* Sensor reporting state all events wake sel */
-+0x0A, 0x45, 0x08, /* Sensor reporting state threshold events wake sel */
-+0xB1, 0x00, /* HID feature (Data_Arr_Abs) */
-+0xC0, /* HID end collection */
-+0x0A, 0x19, 0x03, /* HID usage sensor property power state */
-+0x15, 0, /* HID logical Min_8(0) */
-+0x25, 5, /* HID logical Max_8(5) */
-+0x75, 8, /* HID report size(8) */
-+0x95, 1, /* HID report count(1) */
-+0xA1, 0x02, /* HID collection(logical) */
-+0x0A, 0x50, 0x08, /* Sensor power state undefined sel */
-+0x0A, 0x51, 0x08, /* Sensor power state D0 full power sel */
-+0x0A, 0x52, 0x08, /* Sensor power state D1 low power sel */
-+0x0A, 0x53, 0x08, /* Sensor power state D2 standby with wake sel */
-+0x0A, 0x54, 0x08, /* Sensor power state D3 sleep with wake sel */
-+0x0A, 0x55, 0x08, /* Sensor power state D4 power off sel */
-+0xB1, 0x00, /* HID feature (Data_Arr_Abs) */
-+0xC0, /* HID end collection */
-+0x0A, 0x01, 0x02, /* HID usage sensor state */
-+0x15, 0, /* HID logical Min_8(0) */
-+0x25, 6, /* HID logical Max_8(6) */
-+0x75, 8, /* HID report size(8) */
-+0x95, 1, /* HID report count(1) */
-+0xA1, 0x02, /* HID collection(logical) */
-+0x0A, 0x00, 0x08, /* HID usage sensor state unknown sel */
-+0x0A, 0x01, 0x08, /* HID usage sensor state ready sel */
-+0x0A, 0x02, 0x08, /* HID usage sensor state not available sel */
-+0x0A, 0x03, 0x08, /* HID usage sensor state no data sel */
-+0x0A, 0x04, 0x08, /* HID usage sensor state initializing sel */
-+0x0A, 0x05, 0x08, /* HID usage sensor state access denied sel */
-+0x0A, 0x06, 0x08, /* HID usage sensor state error sel */
-+0xB1, 0x00, /* HID feature (Data_Arr_Abs) */
-+0xC0, /* HID end collection */
-+0x0A, 0x0E, 0x03, /* HID usage sensor property report interval */
-+0x15, 0, /* HID logical Min_8(0) */
-+0x27, 0xFF, 0xFF, 0xFF, 0xFF, /* HID logical Max_32 */
-+
-+0x75, 32, /* HID report size(32) */
-+0x95, 1, /* HID report count(1) */
-+0x55, 0, /* HID unit exponent(0) */
-+0xB1, 0x02, /* HID feature (Data_Arr_Abs) */
-+0x0A, 0x56, 0x14, /* Angular velocity and mod change sensitivity ABS)*/
-+
-+0x15, 0, /* HID logical Min_8(0) */
-+0x26, 0xFF, 0xFF, /* HID logical Max_16(0xFF,0xFF) */
-+
-+0x75, 16, /* HID report size(16) */
-+0x95, 1, /* HID report count(1) */
-+0x55, 0x0E, /* HID unit exponent(0x0E) */
-+0xB1, 0x02, /* HID feature (Data_Arr_Abs) */
-+0x0A, 0x56, 0x24, /* Sensor data (motion angular velocity and mod max) */
-+
-+0x16, 0x01, 0x80, /* HID logical Min_16(0x01,0x80) */
-+
-+0x26, 0xFF, 0x7F, /* HID logical Max_16(0xFF,0x7F) */
-+
-+0x75, 16, /* HID report size(16) */
-+0x95, 1, /* HID report count(1) */
-+0x55, 0x0E, /* HID unit exponent(0x0E) */
-+0xB1, 0x02, /* HID feature (Data_Arr_Abs) */
-+0x0A, 0x56, 0x34, /* HID usage sensor data (motion accel and mod min) */
-+
-+0x16, 0x01, 0x80, /* HID logical Min_16(0x01,0x80) */
-+
-+0x26, 0xFF, 0x7F, /* HID logical Max_16(0xFF,0x7F) */
-+
-+0x75, 16, /* HID report size(16) */
-+0x95, 1, /* HID report count(1) */
-+0x55, 0x0E, /* HID unit exponent(0x0E) */
-+0xB1, 0x02, /* HID feature (Data_Arr_Abs) */
-+
-+//Input reports(transmit)
-+0x05, 0x20, /* HID usage page sensors */
-+0x0A, 0x01, 0x02, /* HID usage sensor state */
-+0x15, 0, /* HID logical Min_8(0) */
-+0x25, 6, /* HID logical Max_8(6) */
-+0x75, 8, /* HID report size(8) */
-+0x95, 1, /* HID report count (1) */
-+0xA1, 0x02, /* HID end collection (logical) */
-+0x0A, 0x00, 0x08, /* HID usage sensor state unknown sel */
-+0x0A, 0x01, 0x08, /* HID usage sensor state ready sel */
-+0x0A, 0x02, 0x08, /* HID usage sensor state not available sel */
-+0x0A, 0x03, 0x08, /* HID usage sensor state no data sel */
-+0x0A, 0x04, 0x08, /* HID usage sensor state initializing sel */
-+0x0A, 0x05, 0x08, /* HID usage sensor state access denied sel */
-+0x0A, 0x06, 0x08, /* HID usage sensor state error sel */
-+0X81, 0x00, /* HID Input (Data_Arr_Abs) */
-+0xC0, /* HID end collection */
-+0x0A, 0x02, 0x02, /* HID usage sensor event */
-+0x15, 0, /* HID logical Min_8(0) */
-+0x25, 5, /* HID logical Max_8(5) */
-+0x75, 8, /* HID report size(8) */
-+0x95, 1, /* HID report count (1) */
-+0xA1, 0x02, /* HID end collection (logical) */
-+0x0A, 0x10, 0x08, /* HID usage sensor event unknown sel */
-+0x0A, 0x11, 0x08, /* HID usage sensor event state changed sel */
-+0x0A, 0x12, 0x08, /* HID usage sensor event property changed sel */
-+0x0A, 0x13, 0x08, /* HID usage sensor event data updated sel */
-+0x0A, 0x14, 0x08, /* HID usage sensor event poll response sel */
-+0x0A, 0x15, 0x08, /* HID usage sensor event change sensitivity sel */
-+0X81, 0x00, /* HID Input (Data_Arr_Abs) */
-+0xC0, /* HID end collection */
-+0x0A, 0x57, 0x04, /* Sensor data motion Angular velocity X axis */
-+0x17, 0x00, 0x00, 0x01, 0x80, /* HID logical Min_32 */
-+
-+0x27, 0xFF, 0xFF, 0xFF, 0x7F, /* HID logical Max_32 */
-+
-+0x75, 32, /* HID report size(32) */
-+0x95, 1, /* HID report count (1) */
-+0x55, 0x0E, /* HID unit exponent(0x0E) */
-+0X81, 0x02, /* HID Input (Data_Arr_Abs) */
-+0x0A, 0x58, 0x04, /* Sensor data motion Angular velocity Y axis */
-+0x17, 0x00, 0x00, 0x01, 0x80, /* HID logical Min_32 */
-+
-+0x27, 0xFF, 0xFF, 0xFF, 0x7F, /* HID logical Max_32 */
-+
-+0x75, 32, /* HID report size(32) */
-+0x95, 1, /* HID report count (1) */
-+0x55, 0x0E, /* HID unit exponent(0x0E) */
-+0X81, 0x02, /* HID Input (Data_Arr_Abs) */
-+0x0A, 0x59, 0x04, /* Sensor data motion Angular velocity Z axis */
-+0x17, 0x00, 0x00, 0x01, 0x80, /* HID logical Min_32 */
-+
-+0x27, 0xFF, 0xFF, 0xFF, 0x7F, /* HID logical Max_32 */
-+
-+0x75, 32, /* HID report size(32) */
-+0x95, 1, /* HID report count (1) */
-+0x55, 0x0E, /* HID unit exponent(0x0E) */
-+0X81, 0x02, /* HID Input (Data_Arr_Abs) */
-+
-+0xC0, /* HID end collection */
-+};
-+
-+const u8 comp3_report_descriptor[] = {
-+0x05, 0x20, /* Usage page */
-+0x09, 0x83, /* Motion type Orientation compass 3D */
-+0xA1, 0x00, /* HID Collection (Physical) */
-+
-+0x85, 3, /* HID Report ID */
-+0x05, 0x20, /* HID usage page sensor */
-+0x0A, 0x09, 0x03, /* Sensor property and sensor connection type */
-+0x15, 0, /* HID logical MIN_8(0) */
-+0x25, 2, /* HID logical MAX_8(2) */
-+0x75, 8, /* HID report size(8) */
-+0x95, 1, /* HID report count(1) */
-+0xA1, 0x02, /* HID collection (logical) */
-+0x0A, 0x30, 0x08, /* Sensor property connection type intergated sel */
-+0x0A, 0x31, 0x08, /* Sensor property connection type attached sel */
-+0x0A, 0x32, 0x08, /* Sensor property connection type external sel */
-+0xB1, 0x00, /* HID feature (Data_Arr_Abs) */
-+0xC0, /* HID end collection */
-+0x0A, 0x16, 0x03, /* HID usage sensor property reporting state */
-+0x15, 0, /* HID logical Min_8(0) */
-+0x25, 5, /* HID logical Max_8(5) */
-+0x75, 8, /* HID report size(8) */
-+0x95, 1, /* HID report count(1) */
-+0xA1, 0x02, /* HID collection(logical) */
-+0x0A, 0x40, 0x08, /* Sensor reporting state no events sel */
-+0x0A, 0x41, 0x08, /* Sensor reporting state all events sel */
-+0x0A, 0x42, 0x08, /* Sensor reporting state threshold events sel */
-+0x0A, 0x43, 0x08, /* Sensor reporting state no events wake sel */
-+0x0A, 0x44, 0x08, /* Sensor reporting state all events wake sel */
-+0x0A, 0x45, 0x08, /* Sensor reporting state threshold events wake sel */
-+0xB1, 0x00, /* HID feature (Data_Arr_Abs) */
-+0xC0, /* HID end collection */
-+0x0A, 0x19, 0x03, /* HID usage sensor property power state */
-+0x15, 0, /* HID logical Min_8(0) */
-+0x25, 5, /* HID logical Max_8(5) */
-+0x75, 8, /* HID report size(8) */
-+0x95, 1, /* HID report count(1) */
-+0xA1, 0x02, /* HID collection(logical) */
-+0x0A, 0x50, 0x08, /* Sensor power state undefined sel */
-+0x0A, 0x51, 0x08, /* Sensor power state D0 full power sel */
-+0x0A, 0x52, 0x08, /* Sensor power state D1 low power sel */
-+0x0A, 0x53, 0x08, /* Sensor power state D2 standby with wake sel */
-+0x0A, 0x54, 0x08, /* Sensor power state D3 sleep with wake sel */
-+0x0A, 0x55, 0x08, /* Sensor power state D4 power off sel */
-+0xB1, 0x00, /* HID feature (Data_Arr_Abs) */
-+0xC0, /* HID end collection */
-+0x0A, 0x01, 0x02, /* HID usage sensor state */
-+0x15, 0, /* HID logical Min_8(0) */
-+0x25, 6, /* HID logical Max_8(6) */
-+0x75, 8, /* HID report size(8) */
-+0x95, 1, /* HID report count(1) */
-+0xA1, 0x02, /* HID collection(logical) */
-+0x0A, 0x00, 0x08, /* HID usage sensor state unknown sel */
-+0x0A, 0x01, 0x08, /* HID usage sensor state ready sel */
-+0x0A, 0x02, 0x08, /* HID usage sensor state not available sel */
-+0x0A, 0x03, 0x08, /* HID usage sensor state no data sel */
-+0x0A, 0x04, 0x08, /* HID usage sensor state initializing sel */
-+0x0A, 0x05, 0x08, /* HID usage sensor state access denied sel */
-+0x0A, 0x06, 0x08, /* HID usage sensor state error sel */
-+0xB1, 0x00, /* HID feature (Data_Arr_Abs) */
-+0xC0, /* HID end collection */
-+0x0A, 0x0E, 0x03, /* HID usage sensor property report interval */
-+0x15, 0, /* HID logical Min_8(0) */
-+0x27, 0xFF, 0xFF, 0xFF, 0xFF, /* HID logical Max_32 */
-+0x75, 32, /* HID report size(32) */
-+0x95, 1, /* HID report count(1) */
-+0x55, 0, /* HID unit exponent(0) */
-+0xB1, 0x02, /* HID feature (Data_Arr_Abs) */
-+0x0A, 0x71, 0x14, /* Orientation and mod change sensitivity ABS)*/
-+0x15, 0, /* HID logical Min_8(0) */
-+0x26, 0xFF, 0xFF, /* HID logical Max_16(0xFF,0xFF) */
-+0x75, 16, /* HID report size(16) */
-+0x95, 1, /* HID report count(1) */
-+0x55, 0x0E, /* HID unit exponent(0x0E) */
-+0xB1, 0x02, /* HID feature (Data_Arr_Abs) */
-+0x0A, 0x71, 0x24, /* Sensor data (motion orientation and mod max) */
-+0x16, 0x01, 0x80, /* HID logical Min_16(0x01,0x80) */
-+0x26, 0xFF, 0x7F, /* HID logical Max_16(0xFF,0x7F) */
-+0x75, 16, /* HID report size(16) */
-+0x95, 1, /* HID report count(1) */
-+0x55, 0x0F, /* HID unit exponent(0x0F) */
-+0xB1, 0x02, /* HID feature (Data_Arr_Abs) */
-+0x0A, 0x71, 0x34, /* Sensor data (motion orientation and mod min) */
-+0x16, 0x01, 0x80, /* HID logical Min_16(0x01,0x80) */
-+0x26, 0xFF, 0x7F, /* HID logical Max_16(0xFF,0x7F) */
-+0x75, 16, /* HID report size(16) */
-+0x95, 1, /* HID report count(1) */
-+0x55, 0x0F, /* HID unit exponent(0x0F) */
-+0xB1, 0x02, /* HID feature (Data_Arr_Abs) */
-+0x0A, 0x84, 0x14, /* Maganetic flux and change sensitivity ABS) */
-+0x15, 0, /* HID logical Min_8(0) */
-+0x26, 0xFF, 0xFF, /* HID logical Max_16(0xFF,0xFF) */
-+0x75, 16, /* HID report size(16) */
-+0x95, 1, /* HID report count(1) */
-+0x55, 0x0E, /* HID unit exponent(0x0E) */
-+0xB1, 0x02, /* HID feature (Data_Arr_Abs) */
-+0x0A, 0x84, 0x24, /* Maganetic flux and mod change sensitivity Max) */
-+0x16, 0x01, 0x80, /* HID logical Min_16(0x01,0x80) */
-+0x26, 0xFF, 0x7F, /* HID logical Max_16(0xFF,0x7F) */
-+0x75, 16, /* HID report size(16) */
-+0x95, 1, /* HID report count(1) */
-+0x55, 0x0F, /* HID unit exponent(0x0F) */
-+0xB1, 0x02, /* HID feature (Data_Arr_Abs) */
-+0x0A, 0x84, 0x34, /* Maganetic flux and mod change sensitivity Min */
-+0x16, 0x01, 0x80, /* HID logical Min_16(0x01,0x80) */
-+0x26, 0xFF, 0x7F, /* HID logical Max_16(0xFF,0x7F) */
-+0x75, 16, /* HID report size(16) */
-+0x95, 1, /* HID report count(1) */
-+0x55, 0x0F, /* HID unit exponent(0x0F) */
-+0xB1, 0x02, /* HID feature (Data_Arr_Abs) */
-+
-+//Input reports(transmit)
-+0x05, 0x20, /* HID usage page sensors */
-+0x0A, 0x01, 0x02, /* HID usage sensor state */
-+0x15, 0, /* HID logical Min_8(0) */
-+0x25, 6, /* HID logical Max_8(6) */
-+0x75, 8, /* HID report size(8) */
-+0x95, 1, /* HID report count (1) */
-+0xA1, 0x02, /* HID end collection (logical) */
-+0x0A, 0x00, 0x08, /* HID usage sensor state unknown sel */
-+0x0A, 0x01, 0x08, /* HID usage sensor state ready sel */
-+0x0A, 0x02, 0x08, /* HID usage sensor state not available sel */
-+0x0A, 0x03, 0x08, /* HID usage sensor state no data sel */
-+0x0A, 0x04, 0x08, /* HID usage sensor state initializing sel */
-+0x0A, 0x05, 0x08, /* HID usage sensor state access denied sel */
-+0x0A, 0x06, 0x08, /* HID usage sensor state error sel */
-+0X81, 0x00, /* HID Input (Data_Arr_Abs) */
-+0xC0, /* HID end collection */
-+0x0A, 0x02, 0x02, /* HID usage sensor event */
-+0x15, 0, /* HID logical Min_8(0) */
-+0x25, 5, /* HID logical Max_8(5) */
-+0x75, 8, /* HID report size(8) */
-+0x95, 1, /* HID report count (1) */
-+0xA1, 0x02, /* HID end collection (logical) */
-+0x0A, 0x10, 0x08, /* HID usage sensor event unknown sel */
-+0x0A, 0x11, 0x08, /* HID usage sensor event state changed sel */
-+0x0A, 0x12, 0x08, /* HID usage sensor event property changed sel */
-+0x0A, 0x13, 0x08, /* HID usage sensor event data updated sel */
-+0x0A, 0x14, 0x08, /* HID usage sensor event poll response sel */
-+0x0A, 0x15, 0x08, /* HID usage sensor event change sensitivity sel */
-+0X81, 0x00, /* HID Input (Data_Arr_Abs) */
-+0xC0, /* HID end collection */
-+0x0A, 0x85, 0x04, /* Sensor data orientation magnetic flux X axis */
-+0x17, 0x00, 0x00, 0x01, 0x80, /* HID logical Min_32 */
-+0x27, 0xFF, 0xFF, 0xFF, 0x7F, /* HID logical Max_32 */
-+0x75, 32, /* HID report size(32) */
-+0x95, 1, /* HID report count (1) */
-+0x55, 0x0D, /* HID unit exponent(0x0D) */
-+0X81, 0x02, /* HID Input (Data_Arr_Abs) */
-+0x0A, 0x86, 0x04, /* Sensor data orientation magnetic flux Y axis */
-+0x17, 0x00, 0x00, 0x01, 0x80, /* HID logical Min_32 */
-+0x27, 0xFF, 0xFF, 0xFF, 0x7F, /* HID logical Max_32 */
-+0x75, 32, /* HID report size(32) */
-+0x95, 1, /* HID report count (1) */
-+0x55, 0x0D, /* HID unit exponent(0x0D) */
-+0X81, 0x02, /* HID Input (Data_Arr_Abs) */
-+0x0A, 0x87, 0x04, /* Sensor data orientation magnetic flux Z axis */
-+0x17, 0x00, 0x00, 0x01, 0x80, /* HID logical Min_32 */
-+0x27, 0xFF, 0xFF, 0xFF, 0x7F, /* HID logical Max_32 */
-+0x75, 32, /* HID report size(32) */
-+0x95, 1, /* HID report count (1) */
-+0x55, 0x0D, /* HID unit exponent(0x0D) */
-+0X81, 0x02, /* HID Input (Data_Arr_Abs) */
-+0x0A, 0x88, 0x04, /* Sensor data orientation magnetometer accuracy */
-+0x17, 0x00, 0x00, 0x01, 0x80, /* HID logical Min_32 */
-+0x27, 0xFF, 0xFF, 0xFF, 0x7F, /* HID logical Max_32 */
-+0x75, 32, /* HID report size(32) */
-+0x95, 1, /* HID report count (1) */
-+0X81, 0x02, /* HID Input (Data_Arr_Abs) */
-+0xC0 /* HID end collection */
-+};
-+
-+const u8 als_report_descriptor[] = {
-+0x05, 0x20, /* HID usage page sensor */
-+0x09, 0x41, /* HID usage sensor type Ambientlight */
-+0xA1, 0x00, /* HID Collection (Physical) */
-+
-+//feature reports(xmit/receive)//
-+0x85, 4, /* HID Report ID */
-+0x05, 0x20, /* HID usage page sensor */
-+0x0A, 0x09, 0x03, /* Sensor property and sensor connection type */
-+0x15, 0, /* HID logical MIN_8(0) */
-+0x25, 2, /* HID logical MAX_8(2) */
-+0x75, 8, /* HID report size(8) */
-+0x95, 1, /* HID report count(1) */
-+0xA1, 0x02, /* HID collection (logical) */
-+0x0A, 0x30, 0x08, /* Sensor property connection type intergated sel */
-+0x0A, 0x31, 0x08, /* Sensor property connection type attached sel */
-+0x0A, 0x32, 0x08, /* Sensor property connection type external sel */
-+0xB1, 0x00, /* HID feature (Data_Arr_Abs) */
-+0xC0, /* HID end collection */
-+0x0A, 0x16, 0x03, /* HID usage sensor property reporting state */
-+0x15, 0, /* HID logical Min_8(0) */
-+0x25, 5, /* HID logical Max_8(5) */
-+0x75, 8, /* HID report size(8) */
-+0x95, 1, /* HID report count(1) */
-+0xA1, 0x02, /* HID collection(logical) */
-+0x0A, 0x40, 0x08, /* Sensor reporting state no events sel */
-+0x0A, 0x41, 0x08, /* Sensor reporting state all events sel */
-+0x0A, 0x42, 0x08, /* Sensor reporting state threshold events sel */
-+0x0A, 0x43, 0x08, /* Sensor reporting state no events wake sel */
-+0x0A, 0x44, 0x08, /* Sensor reporting state all events wake sel */
-+0x0A, 0x45, 0x08, /* Sensor reporting state threshold events wake sel */
-+0xB1, 0x00, /* HID feature (Data_Arr_Abs) */
-+0xC0, /* HID end collection */
-+0x0A, 0x19, 0x03, /* HID usage sensor property power state */
-+0x15, 0, /* HID logical Min_8(0) */
-+0x25, 5, /* HID logical Max_8(5) */
-+0x75, 8, /* HID report size(8) */
-+0x95, 1, /* HID report count(1) */
-+0xA1, 0x02, /* HID collection(logical) */
-+0x0A, 0x50, 0x08, /* Sensor power state undefined sel */
-+0x0A, 0x51, 0x08, /* Sensor power state D0 full power sel */
-+0x0A, 0x52, 0x08, /* Sensor power state D1 low power sel */
-+0x0A, 0x53, 0x08, /* Sensor power state D2 standby with wake sel */
-+0x0A, 0x54, 0x08, /* Sensor power state D3 sleep with wake sel */
-+0x0A, 0x55, 0x08, /* Sensor power state D4 power off sel */
-+0xB1, 0x00, /* HID feature (Data_Arr_Abs) */
-+0xC0, /* HID end collection */
-+0x0A, 0x01, 0x02, /* HID usage sensor state */
-+0x15, 0, /* HID logical Min_8(0) */
-+0x25, 6, /* HID logical Max_8(6) */
-+0x75, 8, /* HID report size(8) */
-+0x95, 1, /* HID report count(1) */
-+0xA1, 0x02, /* HID collection(logical) */
-+0x0A, 0x00, 0x08, /* HID usage sensor state unknown sel */
-+0x0A, 0x01, 0x08, /* HID usage sensor state ready sel */
-+0x0A, 0x02, 0x08, /* HID usage sensor state not available sel */
-+0x0A, 0x03, 0x08, /* HID usage sensor state no data sel */
-+0x0A, 0x04, 0x08, /* HID usage sensor state initializing sel */
-+0x0A, 0x05, 0x08, /* HID usage sensor state access denied sel */
-+0x0A, 0x06, 0x08, /* HID usage sensor state error sel */
-+0xB1, 0x00, /* HID feature (Data_Arr_Abs) */
-+0xC0, /* HID end collection */
-+0x0A, 0x0E, 0x03, /* HID usage sensor property report interval */
-+0x15, 0, /* HID logical Min_8(0) */
-+0x27, 0xFF, 0xFF, 0xFF, 0xFF, /* HID logical Max_32 */
-+0x75, 32, /* HID report size(32) */
-+0x95, 1, /* HID report count(1) */
-+0x55, 0, /* HID unit exponent(0) */
-+0xB1, 0x02, /* HID feature (Data_Arr_Abs) */
-+0x0A, 0xD1, 0xE4, /* Light illuminance and sensitivity REL PCT) */
-+0x15, 0, /* HID logical Min_8(0) */
-+0x26, 0x10, 0x27, /* HID logical Max_16(0x10,0x27) */
-+0x75, 16, /* HID report size(16) */
-+0x95, 1, /* HID report count(1) */
-+0x55, 0x0E, /* HID unit exponent(0x0E) */
-+0xB1, 0x02, /* HID feature (Data_Arr_Abs) */
-+0x0A, 0xD1, 0x24, /* Sensor data (Light illuminance and mod max) */
-+0x15, 0, /* HID logical Min_8(0) */
-+0x26, 0xFF, 0xFF, /* HID logical Max_16(0xFF,0xFF) */
-+0x75, 16, /* HID report size(16) */
-+0x95, 1, /* HID report count(1) */
-+0x55, 0x0F, /* HID unit exponent(0x0F) */
-+0xB1, 0x02, /* HID feature (Data_Arr_Abs) */
-+0x0A, 0xD1, 0x34, /* Sensor data (Light illuminance and mod min) */
-+0x15, 0, /* HID logical Min_8(0) */
-+0x26, 0xFF, 0xFF, /* HID logical Max_16(0xFF,0xFF) */
-+0x75, 16, /* HID report size(16) */
-+0x95, 1, /* HID report count(1) */
-+0x55, 0x0F, /* HID unit exponent(0x0F) */
-+0xB1, 0x02, /* HID feature (Data_Arr_Abs) */
-+
-+//Input reports (transmit)
-+0x05, 0x20, /* HID usage page sensors */
-+0x0A, 0x01, 0x02, /* HID usage sensor state */
-+0x15, 0, /* HID logical Min_8(0) */
-+0x25, 6, /* HID logical Max_8(6) */
-+0x75, 8, /* HID report size(8) */
-+0x95, 1, /* HID report count (1) */
-+0xA1, 0x02, /* HID end collection (logical) */
-+0x0A, 0x00, 0x08, /* HID usage sensor state unknown sel */
-+0x0A, 0x01, 0x08, /* HID usage sensor state ready sel */
-+0x0A, 0x02, 0x08, /* HID usage sensor state not available sel */
-+0x0A, 0x03, 0x08, /* HID usage sensor state no data sel */
-+0x0A, 0x04, 0x08, /* HID usage sensor state initializing sel */
-+0x0A, 0x05, 0x08, /* HID usage sensor state access denied sel */
-+0x0A, 0x06, 0x08, /* HID usage sensor state error sel */
-+0X81, 0x00, /* HID Input (Data_Arr_Abs) */
-+0xC0, /* HID end collection */
-+0x0A, 0x02, 0x02, /* HID usage sensor event */
-+0x15, 0, /* HID logical Min_8(0) */
-+0x25, 5, /* HID logical Max_8(5) */
-+0x75, 8, /* HID report size(8) */
-+0x95, 1, /* HID report count (1) */
-+0xA1, 0x02, /* HID end collection (logical) */
-+0x0A, 0x10, 0x08, /* HID usage sensor event unknown sel */
-+0x0A, 0x11, 0x08, /* HID usage sensor event state changed sel */
-+0x0A, 0x12, 0x08, /* HID usage sensor event property changed sel */
-+0x0A, 0x13, 0x08, /* HID usage sensor event data updated sel */
-+0x0A, 0x14, 0x08, /* HID usage sensor event poll response sel */
-+0x0A, 0x15, 0x08, /* HID usage sensor event change sensitivity sel */
-+0X81, 0x00, /* HID Input (Data_Arr_Abs) */
-+0xC0, /* HID end collection */
-+0x0A, 0xD1, 0x04, /* HID usage sensor data light illuminance */
-+0x17, 0x00, 0x00, 0x01, 0x80, /* HID logical Min_32 */
-+0x27, 0xFF, 0xFF, 0xFF, 0x7F, /* HID logical Max_32 */
-+0x55, 0x0F, /* HID unit exponent(0x0F) */
-+0x75, 32, /* HID report size(32) */
-+0x95, 1, /* HID report count (1) */
-+0X81, 0x02, /* HID Input (Data_Arr_Abs) */
-+0xC0 /* HID end collection */
-+};
-+#endif
-diff -Naur linux-5.10.2/drivers/hid/amd-sfh-hid/Kconfig linux-5.10.2-amd/drivers/hid/amd-sfh-hid/Kconfig
---- linux-5.10.2/drivers/hid/amd-sfh-hid/Kconfig 1970-01-01 01:00:00.000000000 +0100
-+++ linux-5.10.2-amd/drivers/hid/amd-sfh-hid/Kconfig 2020-12-25 14:25:44.298391979 +0100
-@@ -0,0 +1,18 @@
-+# SPDX-License-Identifier: GPL-2.0-or-later
-+menu "AMD SFH HID Support"
-+ depends on X86_64 || COMPILE_TEST
-+ depends on PCI
-+ depends on HID
-+
-+config AMD_SFH_HID
-+ tristate "AMD Sensor Fusion Hub"
-+ help
-+ If you say yes to this option, support will be included for the
-+ AMD Sensor Fusion Hub.
-+ This driver will enable sensors functionality on AMD platforms
-+ starting from 17h family of RYZEN parts.
-+
-+ This driver can also be built as a module. If so, the module will
-+ be called amd-sfh.
-+ Say Y or M here if you want to support AMD SFH. If unsure, say N.
-+endmenu
-diff -Naur linux-5.10.2/drivers/hid/amd-sfh-hid/Makefile linux-5.10.2-amd/drivers/hid/amd-sfh-hid/Makefile
---- linux-5.10.2/drivers/hid/amd-sfh-hid/Makefile 1970-01-01 01:00:00.000000000 +0100
-+++ linux-5.10.2-amd/drivers/hid/amd-sfh-hid/Makefile 2020-12-25 14:25:44.298391979 +0100
-@@ -0,0 +1,13 @@
-+# SPDX-License-Identifier: GPL-2.0-or-later
-+#
-+# Makefile - AMD SFH HID drivers
-+# Copyright (c) 2019-2020, Advanced Micro Devices, Inc.
-+#
-+#
-+obj-$(CONFIG_AMD_SFH_HID) += amd_sfh.o
-+amd_sfh-objs := amd_sfh_hid.o
-+amd_sfh-objs += amd_sfh_client.o
-+amd_sfh-objs += amd_sfh_pcie.o
-+amd_sfh-objs += hid_descriptor/amd_sfh_hid_desc.o
-+
-+ccflags-y += -I $(srctree)/$(src)/
-diff -Naur linux-5.10.2/drivers/hid/Kconfig linux-5.10.2-amd/drivers/hid/Kconfig
---- linux-5.10.2/drivers/hid/Kconfig 2020-12-21 13:30:08.000000000 +0100
-+++ linux-5.10.2-amd/drivers/hid/Kconfig 2020-12-25 14:27:01.284205047 +0100
-@@ -1183,4 +1183,6 @@
-
- source "drivers/hid/intel-ish-hid/Kconfig"
-
-+source "drivers/hid/amd-sfh-hid/Kconfig"
-+
- endmenu
-diff -Naur linux-5.10.2/drivers/hid/Makefile linux-5.10.2-amd/drivers/hid/Makefile
---- linux-5.10.2/drivers/hid/Makefile 2020-12-21 13:30:08.000000000 +0100
-+++ linux-5.10.2-amd/drivers/hid/Makefile 2020-12-25 15:14:25.713530171 +0100
-@@ -142,3 +142,4 @@
-
- obj-$(CONFIG_INTEL_ISH_HID) += intel-ish-hid/
- obj-$(INTEL_ISH_FIRMWARE_DOWNLOADER) += intel-ish-hid/
-+obj-$(CONFIG_AMD_SFH_HID) += amd-sfh-hid/
diff --git a/sys-kernel/linux-image-redcore-lts/files/5.10-add-sbtsi_driver.patch b/sys-kernel/linux-image-redcore-lts/files/5.10-add-sbtsi_driver.patch
deleted file mode 100644
index 13035071..00000000
--- a/sys-kernel/linux-image-redcore-lts/files/5.10-add-sbtsi_driver.patch
+++ /dev/null
@@ -1,285 +0,0 @@
-diff -Naur linux-5.10.2/drivers/hwmon/Kconfig linux-5.10.2-p/drivers/hwmon/Kconfig
---- linux-5.10.2/drivers/hwmon/Kconfig 2020-12-21 13:30:08.000000000 +0100
-+++ linux-5.10.2-p/drivers/hwmon/Kconfig 2020-12-25 13:49:22.911559911 +0100
-@@ -1499,6 +1499,16 @@
- This driver can also be built as a module. If so, the module
- will be called sl28cpld-hwmon.
-
-+config SENSORS_SBTSI
-+ tristate "Emulated SB-TSI temperature sensor"
-+ depends on I2C
-+ help
-+ If you say yes here you get support for emulated temperature
-+ sensors on AMD SoCs with SB-TSI interface connected to a BMC device.
-+
-+ This driver can also be built as a module. If so, the module will
-+ be called sbtsi_temp.
-+
- config SENSORS_SHT15
- tristate "Sensiron humidity and temperature sensors. SHT15 and compat."
- depends on GPIOLIB || COMPILE_TEST
-diff -Naur linux-5.10.2/drivers/hwmon/Makefile linux-5.10.2-p/drivers/hwmon/Makefile
---- linux-5.10.2/drivers/hwmon/Makefile 2020-12-21 13:30:08.000000000 +0100
-+++ linux-5.10.2-p/drivers/hwmon/Makefile 2020-12-25 13:49:22.911559911 +0100
-@@ -158,6 +158,7 @@
- obj-$(CONFIG_SENSORS_PWM_FAN) += pwm-fan.o
- obj-$(CONFIG_SENSORS_RASPBERRYPI_HWMON) += raspberrypi-hwmon.o
- obj-$(CONFIG_SENSORS_S3C) += s3c-hwmon.o
-+obj-$(CONFIG_SENSORS_SBTSI) += sbtsi_temp.o
- obj-$(CONFIG_SENSORS_SCH56XX_COMMON)+= sch56xx-common.o
- obj-$(CONFIG_SENSORS_SCH5627) += sch5627.o
- obj-$(CONFIG_SENSORS_SCH5636) += sch5636.o
-diff -Naur linux-5.10.2/drivers/hwmon/sbtsi_temp.c linux-5.10.2-p/drivers/hwmon/sbtsi_temp.c
---- linux-5.10.2/drivers/hwmon/sbtsi_temp.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-5.10.2-p/drivers/hwmon/sbtsi_temp.c 2020-12-25 13:49:22.911559911 +0100
-@@ -0,0 +1,250 @@
-+// SPDX-License-Identifier: GPL-2.0-or-later
-+/*
-+ * sbtsi_temp.c - hwmon driver for a SBI Temperature Sensor Interface (SB-TSI)
-+ * compliant AMD SoC temperature device.
-+ *
-+ * Copyright (c) 2020, Google Inc.
-+ * Copyright (c) 2020, Kun Yi <kunyi@google.com>
-+ */
-+
-+#include <linux/err.h>
-+#include <linux/i2c.h>
-+#include <linux/init.h>
-+#include <linux/hwmon.h>
-+#include <linux/module.h>
-+#include <linux/mutex.h>
-+#include <linux/of_device.h>
-+#include <linux/of.h>
-+
-+/*
-+ * SB-TSI registers only support SMBus byte data access. "_INT" registers are
-+ * the integer part of a temperature value or limit, and "_DEC" registers are
-+ * corresponding decimal parts.
-+ */
-+#define SBTSI_REG_TEMP_INT 0x01 /* RO */
-+#define SBTSI_REG_STATUS 0x02 /* RO */
-+#define SBTSI_REG_CONFIG 0x03 /* RO */
-+#define SBTSI_REG_TEMP_HIGH_INT 0x07 /* RW */
-+#define SBTSI_REG_TEMP_LOW_INT 0x08 /* RW */
-+#define SBTSI_REG_TEMP_DEC 0x10 /* RW */
-+#define SBTSI_REG_TEMP_HIGH_DEC 0x13 /* RW */
-+#define SBTSI_REG_TEMP_LOW_DEC 0x14 /* RW */
-+
-+#define SBTSI_CONFIG_READ_ORDER_SHIFT 5
-+
-+#define SBTSI_TEMP_MIN 0
-+#define SBTSI_TEMP_MAX 255875
-+
-+/* Each client has this additional data */
-+struct sbtsi_data {
-+ struct i2c_client *client;
-+ struct mutex lock;
-+};
-+
-+/*
-+ * From SB-TSI spec: CPU temperature readings and limit registers encode the
-+ * temperature in increments of 0.125 from 0 to 255.875. The "high byte"
-+ * register encodes the base-2 of the integer portion, and the upper 3 bits of
-+ * the "low byte" encode in base-2 the decimal portion.
-+ *
-+ * e.g. INT=0x19, DEC=0x20 represents 25.125 degrees Celsius
-+ *
-+ * Therefore temperature in millidegree Celsius =
-+ * (INT + DEC / 256) * 1000 = (INT * 8 + DEC / 32) * 125
-+ */
-+static inline int sbtsi_reg_to_mc(s32 integer, s32 decimal)
-+{
-+ return ((integer << 3) + (decimal >> 5)) * 125;
-+}
-+
-+/*
-+ * Inversely, given temperature in millidegree Celsius
-+ * INT = (TEMP / 125) / 8
-+ * DEC = ((TEMP / 125) % 8) * 32
-+ * Caller have to make sure temp doesn't exceed 255875, the max valid value.
-+ */
-+static inline void sbtsi_mc_to_reg(s32 temp, u8 *integer, u8 *decimal)
-+{
-+ temp /= 125;
-+ *integer = temp >> 3;
-+ *decimal = (temp & 0x7) << 5;
-+}
-+
-+static int sbtsi_read(struct device *dev, enum hwmon_sensor_types type,
-+ u32 attr, int channel, long *val)
-+{
-+ struct sbtsi_data *data = dev_get_drvdata(dev);
-+ s32 temp_int, temp_dec;
-+ int err;
-+
-+ switch (attr) {
-+ case hwmon_temp_input:
-+ /*
-+ * ReadOrder bit specifies the reading order of integer and
-+ * decimal part of CPU temp for atomic reads. If bit == 0,
-+ * reading integer part triggers latching of the decimal part,
-+ * so integer part should be read first. If bit == 1, read
-+ * order should be reversed.
-+ */
-+ err = i2c_smbus_read_byte_data(data->client, SBTSI_REG_CONFIG);
-+ if (err < 0)
-+ return err;
-+
-+ mutex_lock(&data->lock);
-+ if (err & BIT(SBTSI_CONFIG_READ_ORDER_SHIFT)) {
-+ temp_dec = i2c_smbus_read_byte_data(data->client, SBTSI_REG_TEMP_DEC);
-+ temp_int = i2c_smbus_read_byte_data(data->client, SBTSI_REG_TEMP_INT);
-+ } else {
-+ temp_int = i2c_smbus_read_byte_data(data->client, SBTSI_REG_TEMP_INT);
-+ temp_dec = i2c_smbus_read_byte_data(data->client, SBTSI_REG_TEMP_DEC);
-+ }
-+ mutex_unlock(&data->lock);
-+ break;
-+ case hwmon_temp_max:
-+ mutex_lock(&data->lock);
-+ temp_int = i2c_smbus_read_byte_data(data->client, SBTSI_REG_TEMP_HIGH_INT);
-+ temp_dec = i2c_smbus_read_byte_data(data->client, SBTSI_REG_TEMP_HIGH_DEC);
-+ mutex_unlock(&data->lock);
-+ break;
-+ case hwmon_temp_min:
-+ mutex_lock(&data->lock);
-+ temp_int = i2c_smbus_read_byte_data(data->client, SBTSI_REG_TEMP_LOW_INT);
-+ temp_dec = i2c_smbus_read_byte_data(data->client, SBTSI_REG_TEMP_LOW_DEC);
-+ mutex_unlock(&data->lock);
-+ break;
-+ default:
-+ return -EINVAL;
-+ }
-+
-+
-+ if (temp_int < 0)
-+ return temp_int;
-+ if (temp_dec < 0)
-+ return temp_dec;
-+
-+ *val = sbtsi_reg_to_mc(temp_int, temp_dec);
-+
-+ return 0;
-+}
-+
-+static int sbtsi_write(struct device *dev, enum hwmon_sensor_types type,
-+ u32 attr, int channel, long val)
-+{
-+ struct sbtsi_data *data = dev_get_drvdata(dev);
-+ int reg_int, reg_dec, err;
-+ u8 temp_int, temp_dec;
-+
-+ switch (attr) {
-+ case hwmon_temp_max:
-+ reg_int = SBTSI_REG_TEMP_HIGH_INT;
-+ reg_dec = SBTSI_REG_TEMP_HIGH_DEC;
-+ break;
-+ case hwmon_temp_min:
-+ reg_int = SBTSI_REG_TEMP_LOW_INT;
-+ reg_dec = SBTSI_REG_TEMP_LOW_DEC;
-+ break;
-+ default:
-+ return -EINVAL;
-+ }
-+
-+ val = clamp_val(val, SBTSI_TEMP_MIN, SBTSI_TEMP_MAX);
-+ sbtsi_mc_to_reg(val, &temp_int, &temp_dec);
-+
-+ mutex_lock(&data->lock);
-+ err = i2c_smbus_write_byte_data(data->client, reg_int, temp_int);
-+ if (err)
-+ goto exit;
-+
-+ err = i2c_smbus_write_byte_data(data->client, reg_dec, temp_dec);
-+exit:
-+ mutex_unlock(&data->lock);
-+ return err;
-+}
-+
-+static umode_t sbtsi_is_visible(const void *data,
-+ enum hwmon_sensor_types type,
-+ u32 attr, int channel)
-+{
-+ switch (type) {
-+ case hwmon_temp:
-+ switch (attr) {
-+ case hwmon_temp_input:
-+ return 0444;
-+ case hwmon_temp_min:
-+ return 0644;
-+ case hwmon_temp_max:
-+ return 0644;
-+ }
-+ break;
-+ default:
-+ break;
-+ }
-+ return 0;
-+}
-+
-+static const struct hwmon_channel_info *sbtsi_info[] = {
-+ HWMON_CHANNEL_INFO(chip, HWMON_C_REGISTER_TZ),
-+ HWMON_CHANNEL_INFO(temp, HWMON_T_INPUT | HWMON_T_MIN | HWMON_T_MAX),
-+ NULL
-+};
-+
-+static const struct hwmon_ops sbtsi_hwmon_ops = {
-+ .is_visible = sbtsi_is_visible,
-+ .read = sbtsi_read,
-+ .write = sbtsi_write,
-+};
-+
-+static const struct hwmon_chip_info sbtsi_chip_info = {
-+ .ops = &sbtsi_hwmon_ops,
-+ .info = sbtsi_info,
-+};
-+
-+static int sbtsi_probe(struct i2c_client *client,
-+ const struct i2c_device_id *id)
-+{
-+ struct device *dev = &client->dev;
-+ struct device *hwmon_dev;
-+ struct sbtsi_data *data;
-+
-+ data = devm_kzalloc(dev, sizeof(struct sbtsi_data), GFP_KERNEL);
-+ if (!data)
-+ return -ENOMEM;
-+
-+ data->client = client;
-+ mutex_init(&data->lock);
-+
-+ hwmon_dev = devm_hwmon_device_register_with_info(dev, client->name, data, &sbtsi_chip_info,
-+ NULL);
-+
-+ return PTR_ERR_OR_ZERO(hwmon_dev);
-+}
-+
-+static const struct i2c_device_id sbtsi_id[] = {
-+ {"sbtsi", 0},
-+ {}
-+};
-+MODULE_DEVICE_TABLE(i2c, sbtsi_id);
-+
-+static const struct of_device_id __maybe_unused sbtsi_of_match[] = {
-+ {
-+ .compatible = "amd,sbtsi",
-+ },
-+ { },
-+};
-+MODULE_DEVICE_TABLE(of, sbtsi_of_match);
-+
-+static struct i2c_driver sbtsi_driver = {
-+ .class = I2C_CLASS_HWMON,
-+ .driver = {
-+ .name = "sbtsi",
-+ .of_match_table = of_match_ptr(sbtsi_of_match),
-+ },
-+ .probe = sbtsi_probe,
-+ .id_table = sbtsi_id,
-+};
-+
-+module_i2c_driver(sbtsi_driver);
-+
-+MODULE_AUTHOR("Kun Yi <kunyi@google.com>");
-+MODULE_DESCRIPTION("Hwmon driver for AMD SB-TSI emulated sensor");
-+MODULE_LICENSE("GPL");
diff --git a/sys-kernel/linux-image-redcore-lts/files/5.10-compress-modules-zstd-support.patch b/sys-kernel/linux-image-redcore-lts/files/5.10-compress-modules-zstd-support.patch
deleted file mode 100644
index 591a4e8c..00000000
--- a/sys-kernel/linux-image-redcore-lts/files/5.10-compress-modules-zstd-support.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-diff -Naur linux-5.5.11/init/Kconfig linux-5.5.11-p/init/Kconfig
---- linux-5.5.11/init/Kconfig 2020-03-21 08:15:56.000000000 +0100
-+++ linux-5.5.11-p/init/Kconfig 2020-03-23 17:29:43.424355692 +0100
-@@ -2103,10 +2103,10 @@
- bool "Compress modules on installation"
- help
-
-- Compresses kernel modules when 'make modules_install' is run; gzip or
-- xz depending on "Compression algorithm" below.
-+ Compresses kernel modules when 'make modules_install' is run; gzip,
-+ xz or zstd depending on "Compression algorithm" below.
-
-- module-init-tools MAY support gzip, and kmod MAY support gzip and xz.
-+ module-init-tools MAY support gzip, and kmod MAY support gzip, xz and zstd.
-
- Out-of-tree kernel modules installed using Kbuild will also be
- compressed upon installation.
-@@ -2126,7 +2126,7 @@
- This determines which sort of compression will be used during
- 'make modules_install'.
-
-- GZIP (default) and XZ are supported.
-+ GZIP (default), XZ and ZSTD are supported.
-
- config MODULE_COMPRESS_GZIP
- bool "GZIP"
-@@ -2134,6 +2134,9 @@
- config MODULE_COMPRESS_XZ
- bool "XZ"
-
-+config MODULE_COMPRESS_ZSTD
-+ bool "ZSTD"
-+
- endchoice
-
- config MODULE_ALLOW_MISSING_NAMESPACE_IMPORTS
-diff -Naur linux-5.5.11/Makefile linux-5.5.11-p/Makefile
---- linux-5.5.11/Makefile 2020-03-23 17:32:31.848367600 +0100
-+++ linux-5.5.11-p/Makefile 2020-03-23 17:31:57.173159400 +0100
-@@ -983,6 +983,9 @@
- ifdef CONFIG_MODULE_COMPRESS_XZ
- mod_compress_cmd = xz -T0 -f
- endif # CONFIG_MODULE_COMPRESS_XZ
-+ ifdef CONFIG_MODULE_COMPRESS_ZSTD
-+ mod_compress_cmd = zstd -T0 -19 -q --rm -f
-+ endif # CONFIG_MODULE_COMPRESS_ZSTD
- endif # CONFIG_MODULE_COMPRESS
- export mod_compress_cmd
-
diff --git a/sys-kernel/linux-image-redcore-lts/files/5.10-enable-new-amd-energy-driver-for-all-ryzen.patch b/sys-kernel/linux-image-redcore-lts/files/5.10-enable-new-amd-energy-driver-for-all-ryzen.patch
deleted file mode 100644
index 3d7a4948..00000000
--- a/sys-kernel/linux-image-redcore-lts/files/5.10-enable-new-amd-energy-driver-for-all-ryzen.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff -Naur linux-5.10.2/drivers/hwmon/amd_energy.c linux-5.10.2-p/drivers/hwmon/amd_energy.c
---- linux-5.10.2/drivers/hwmon/amd_energy.c 2020-12-21 13:30:08.000000000 +0100
-+++ linux-5.10.2-p/drivers/hwmon/amd_energy.c 2020-12-25 16:41:30.326691167 +0100
-@@ -330,7 +330,8 @@
- static struct platform_device *amd_energy_platdev;
-
- static const struct x86_cpu_id cpu_ids[] __initconst = {
-- X86_MATCH_VENDOR_FAM_MODEL(AMD, 0x17, 0x31, NULL),
-+ X86_MATCH_VENDOR_FAM(AMD, 0x17, NULL),
-+ X86_MATCH_VENDOR_FAM(AMD, 0x19, NULL),
- {}
- };
- MODULE_DEVICE_TABLE(x86cpu, cpu_ids);
diff --git a/sys-kernel/linux-image-redcore-lts/files/5.10-k10temp-fix-ZEN2-desktop-add-ZEN3-desktop.patch b/sys-kernel/linux-image-redcore-lts/files/5.10-k10temp-fix-ZEN2-desktop-add-ZEN3-desktop.patch
deleted file mode 100644
index ed381bfa..00000000
--- a/sys-kernel/linux-image-redcore-lts/files/5.10-k10temp-fix-ZEN2-desktop-add-ZEN3-desktop.patch
+++ /dev/null
@@ -1,94 +0,0 @@
-diff -Naur linux-5.10.2/drivers/hwmon/k10temp.c linux-5.10.2-p/drivers/hwmon/k10temp.c
---- linux-5.10.2/drivers/hwmon/k10temp.c 2020-12-21 13:30:08.000000000 +0100
-+++ linux-5.10.2-p/drivers/hwmon/k10temp.c 2020-12-22 18:15:23.686670195 +0100
-@@ -87,17 +87,28 @@
- /* F17h thermal registers through SMN */
- #define F17H_M01H_SVI_TEL_PLANE0 (ZEN_SVI_BASE + 0xc)
- #define F17H_M01H_SVI_TEL_PLANE1 (ZEN_SVI_BASE + 0x10)
-+/* ZEN2 SP3/TR */
- #define F17H_M31H_SVI_TEL_PLANE0 (ZEN_SVI_BASE + 0x14)
- #define F17H_M31H_SVI_TEL_PLANE1 (ZEN_SVI_BASE + 0x10)
-
-+/* ZEN2 Ryzen Desktop */
-+#define F17H_M71H_SVI_TEL_PLANE0 (ZEN_SVI_BASE + 0x10)
-+#define F17H_M71H_SVI_TEL_PLANE1 (ZEN_SVI_BASE + 0xc)
-+
-+/* fixme: figure these */
- #define F17H_M01H_CFACTOR_ICORE 1000000 /* 1A / LSB */
- #define F17H_M01H_CFACTOR_ISOC 250000 /* 0.25A / LSB */
- #define F17H_M31H_CFACTOR_ICORE 1000000 /* 1A / LSB */
- #define F17H_M31H_CFACTOR_ISOC 310000 /* 0.31A / LSB */
-
- /* F19h thermal registers through SMN */
--#define F19H_M01_SVI_TEL_PLANE0 (ZEN_SVI_BASE + 0x14)
--#define F19H_M01_SVI_TEL_PLANE1 (ZEN_SVI_BASE + 0x10)
-+/* ZEN3 SP3/TR */
-+#define F19H_M01H_SVI_TEL_PLANE0 (ZEN_SVI_BASE + 0x14)
-+#define F19H_M01H_SVI_TEL_PLANE1 (ZEN_SVI_BASE + 0x10)
-+
-+/* ZEN3 Ryzen Desktop */
-+#define F19H_M21H_SVI_TEL_PLANE0 (ZEN_SVI_BASE + 0x10)
-+#define F19H_M21H_SVI_TEL_PLANE1 (ZEN_SVI_BASE + 0xc)
-
- #define F19H_M01H_CFACTOR_ICORE 1000000 /* 1A / LSB */
- #define F19H_M01H_CFACTOR_ISOC 310000 /* 0.31A / LSB */
-@@ -513,6 +524,7 @@
- data->is_zen = true;
-
- switch (boot_cpu_data.x86_model) {
-+ /* FIXME: those looks wrong too */
- case 0x1: /* Zen */
- case 0x8: /* Zen+ */
- case 0x11: /* Zen APU */
-@@ -524,8 +536,7 @@
- data->cfactor[1] = F17H_M01H_CFACTOR_ISOC;
- k10temp_get_ccd_support(pdev, data, 4);
- break;
-- case 0x31: /* Zen2 Threadripper */
-- case 0x71: /* Zen2 */
-+ case 0x31: /* Zen2 SP3/TR */
- data->show_current = !is_threadripper() && !is_epyc();
- data->cfactor[0] = F17H_M31H_CFACTOR_ICORE;
- data->cfactor[1] = F17H_M31H_CFACTOR_ISOC;
-@@ -533,6 +544,14 @@
- data->svi_addr[1] = F17H_M31H_SVI_TEL_PLANE1;
- k10temp_get_ccd_support(pdev, data, 8);
- break;
-+ case 0x71: /* ZEN2 Ryzen Desktop */
-+ data->show_current = true;
-+ data->cfactor[0] = F17H_M31H_CFACTOR_ICORE;
-+ data->cfactor[1] = F17H_M31H_CFACTOR_ISOC;
-+ data->svi_addr[0] = F17H_M71H_SVI_TEL_PLANE0;
-+ data->svi_addr[1] = F17H_M71H_SVI_TEL_PLANE1;
-+ k10temp_get_ccd_support(pdev, data, 4);
-+ break;
- }
- } else if (boot_cpu_data.x86 == 0x19) {
- data->temp_adjust_mask = ZEN_CUR_TEMP_RANGE_SEL_MASK;
-@@ -541,14 +560,23 @@
- data->is_zen = true;
-
- switch (boot_cpu_data.x86_model) {
-- case 0x0 ... 0x1: /* Zen3 */
-+ case 0x0 ... 0x1: /* Zen3 SP3/TR */
- data->show_current = true;
-- data->svi_addr[0] = F19H_M01_SVI_TEL_PLANE0;
-- data->svi_addr[1] = F19H_M01_SVI_TEL_PLANE1;
-+ data->svi_addr[0] = F19H_M01H_SVI_TEL_PLANE0;
-+ data->svi_addr[1] = F19H_M01H_SVI_TEL_PLANE1;
- data->cfactor[0] = F19H_M01H_CFACTOR_ICORE;
- data->cfactor[1] = F19H_M01H_CFACTOR_ISOC;
- k10temp_get_ccd_support(pdev, data, 8);
- break;
-+ case 0x21: /* ZEN3 Ryzen Desktop */
-+ data->show_current = true;
-+ data->svi_addr[0] = F19H_M21H_SVI_TEL_PLANE0;
-+ data->svi_addr[1] = F19H_M21H_SVI_TEL_PLANE1;
-+ data->cfactor[0] = F19H_M01H_CFACTOR_ICORE;
-+ data->cfactor[1] = F19H_M01H_CFACTOR_ISOC;
-+ k10temp_get_ccd_support(pdev, data, 2);
-+ break;
-+
- }
- } else {
- data->read_htcreg = read_htcreg_pci;
diff --git a/sys-kernel/linux-image-redcore-lts/files/5.10-0001-Revert-cpufreq-Avoid-configuring-old-governors-as-de.patch b/sys-kernel/linux-image-redcore-lts/files/5.15-0001-Revert-cpufreq-Avoid-configuring-old-governors-as-de.patch
index e8ef9b4f..e8ef9b4f 100644
--- a/sys-kernel/linux-image-redcore-lts/files/5.10-0001-Revert-cpufreq-Avoid-configuring-old-governors-as-de.patch
+++ b/sys-kernel/linux-image-redcore-lts/files/5.15-0001-Revert-cpufreq-Avoid-configuring-old-governors-as-de.patch
diff --git a/sys-kernel/linux-image-redcore-lts/files/5.10-ZEN-Add-sysctl-and-CONFIG-to-disallow-unprivileged-C.patch b/sys-kernel/linux-image-redcore-lts/files/5.15-0001-ZEN-Add-sysctl-and-CONFIG-to-disallow-unprivileged-C.patch
index 31a1d918..ddfbd03b 100644
--- a/sys-kernel/linux-image-redcore-lts/files/5.10-ZEN-Add-sysctl-and-CONFIG-to-disallow-unprivileged-C.patch
+++ b/sys-kernel/linux-image-redcore-lts/files/5.15-0001-ZEN-Add-sysctl-and-CONFIG-to-disallow-unprivileged-C.patch
@@ -1,7 +1,7 @@
-From f615330c6169a5fe5750706f1db7cbdd520f9534 Mon Sep 17 00:00:00 2001
+From 0948f6ce6d898c598f8fe88240954e578fdc8387 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 1/2] ZEN: Add sysctl and CONFIG to disallow unprivileged
+Subject: [PATCH] ZEN: Add sysctl and CONFIG to disallow unprivileged
CLONE_NEWUSER
Our default behavior continues to match the vanilla kernel.
@@ -14,10 +14,10 @@ Our default behavior continues to match the vanilla kernel.
5 files changed, 53 insertions(+)
diff --git a/include/linux/user_namespace.h b/include/linux/user_namespace.h
-index 6ef1c7109fc4..2140091b0b8d 100644
+index 33a4240e6a6f1..82213f9c4c17f 100644
--- a/include/linux/user_namespace.h
+++ b/include/linux/user_namespace.h
-@@ -106,6 +106,8 @@ void dec_ucount(struct ucounts *ucounts, enum ucount_type type);
+@@ -139,6 +139,8 @@ static inline void set_rlimit_ucount_max(struct user_namespace *ns,
#ifdef CONFIG_USER_NS
@@ -26,7 +26,7 @@ index 6ef1c7109fc4..2140091b0b8d 100644
static inline struct user_namespace *get_user_ns(struct user_namespace *ns)
{
if (ns)
-@@ -139,6 +141,8 @@ extern bool current_in_userns(const struct user_namespace *target_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
@@ -36,10 +36,10 @@ index 6ef1c7109fc4..2140091b0b8d 100644
{
return &init_user_ns;
diff --git a/init/Kconfig b/init/Kconfig
-index 0872a5a2e759..a40d8afeb1bb 100644
+index 11f8a845f259d..02b7a0e455a5d 100644
--- a/init/Kconfig
+++ b/init/Kconfig
-@@ -1173,6 +1173,22 @@ config USER_NS
+@@ -1226,6 +1226,22 @@ config USER_NS
If unsure, say N.
@@ -63,12 +63,12 @@ index 0872a5a2e759..a40d8afeb1bb 100644
bool "PID Namespaces"
default y
diff --git a/kernel/fork.c b/kernel/fork.c
-index c675fdbd3dce..9266039e28e4 100644
+index 10885c649ca42..e0fe98e1afbdb 100644
--- a/kernel/fork.c
+++ b/kernel/fork.c
-@@ -97,6 +97,10 @@
- #include <linux/scs.h>
+@@ -98,6 +98,10 @@
#include <linux/io_uring.h>
+ #include <linux/bpf.h>
+#ifdef CONFIG_USER_NS
+#include <linux/user_namespace.h>
@@ -77,7 +77,7 @@ index c675fdbd3dce..9266039e28e4 100644
#include <asm/pgalloc.h>
#include <linux/uaccess.h>
#include <asm/mmu_context.h>
-@@ -1863,6 +1867,10 @@ static __latent_entropy struct task_struct *copy_process(
+@@ -1950,6 +1954,10 @@ static __latent_entropy struct task_struct *copy_process(
if ((clone_flags & (CLONE_NEWUSER|CLONE_FS)) == (CLONE_NEWUSER|CLONE_FS))
return ERR_PTR(-EINVAL);
@@ -88,7 +88,7 @@ index c675fdbd3dce..9266039e28e4 100644
/*
* Thread groups must share signals as well, and detached threads
* can only be started up within the thread group.
-@@ -2928,6 +2936,12 @@ int ksys_unshare(unsigned long unshare_flags)
+@@ -3056,6 +3064,12 @@ int ksys_unshare(unsigned long unshare_flags)
if (unshare_flags & CLONE_NEWNS)
unshare_flags |= CLONE_FS;
@@ -102,10 +102,10 @@ index c675fdbd3dce..9266039e28e4 100644
if (err)
goto bad_unshare_out;
diff --git a/kernel/sysctl.c b/kernel/sysctl.c
-index afad085960b8..a94828fb31c2 100644
+index 083be6af29d70..42aa3c7835b96 100644
--- a/kernel/sysctl.c
+++ b/kernel/sysctl.c
-@@ -103,6 +103,9 @@
+@@ -105,6 +105,9 @@
#ifdef CONFIG_LOCKUP_DETECTOR
#include <linux/nmi.h>
#endif
@@ -115,7 +115,7 @@ index afad085960b8..a94828fb31c2 100644
#if defined(CONFIG_SYSCTL)
-@@ -1902,6 +1905,15 @@ static struct ctl_table kern_table[] = {
+@@ -1949,6 +1952,15 @@ static struct ctl_table kern_table[] = {
.proc_handler = proc_dointvec,
},
#endif
@@ -132,7 +132,7 @@ index afad085960b8..a94828fb31c2 100644
{
.procname = "tainted",
diff --git a/kernel/user_namespace.c b/kernel/user_namespace.c
-index e703d5d9cbe8..5758274feaee 100644
+index 6b2e3ca7ee993..0253002184f1d 100644
--- a/kernel/user_namespace.c
+++ b/kernel/user_namespace.c
@@ -21,6 +21,13 @@
@@ -149,6 +149,3 @@ index e703d5d9cbe8..5758274feaee 100644
static struct kmem_cache *user_ns_cachep __read_mostly;
static DEFINE_MUTEX(userns_state_mutex);
---
-2.31.1
-
diff --git a/sys-kernel/linux-image-redcore-lts/files/5.15-0002-PCI_Add_more_NVIDIA_controllers_to_the_MSI_masking_quirk.patch b/sys-kernel/linux-image-redcore-lts/files/5.15-0002-PCI_Add_more_NVIDIA_controllers_to_the_MSI_masking_quirk.patch
new file mode 100644
index 00000000..fa304d64
--- /dev/null
+++ b/sys-kernel/linux-image-redcore-lts/files/5.15-0002-PCI_Add_more_NVIDIA_controllers_to_the_MSI_masking_quirk.patch
@@ -0,0 +1,21 @@
+From 0bb6e4f104167b1e283269b46f3bbd30b2d979a7 Mon Sep 17 00:00:00 2001
+From: "Jan Alexander Steffens (heftig)" <heftig@archlinux.org>
+Date: Thu, 18 Nov 2021 22:53:31 +0100
+Subject: [PATCH] PCI: Add more NVIDIA controllers to the MSI masking quirk
+
+For: https://bugs.archlinux.org/task/72734
+For: https://bugs.archlinux.org/task/72777
+---
+ drivers/pci/quirks.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c
+index 208fa03acdda0..7fdb7e9c2e12c 100644
+--- a/drivers/pci/quirks.c
++++ b/drivers/pci/quirks.c
+@@ -5802,3 +5802,5 @@ static void nvidia_ion_ahci_fixup(struct pci_dev *pdev)
+ pdev->dev_flags |= PCI_DEV_FLAGS_HAS_MSI_MASKING;
+ }
+ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_NVIDIA, 0x0ab8, nvidia_ion_ahci_fixup);
++DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_NVIDIA, 0x0ab9, nvidia_ion_ahci_fixup);
++DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_NVIDIA, 0x0d88, nvidia_ion_ahci_fixup);
diff --git a/sys-kernel/linux-image-redcore-lts/files/5.15-0003-iommu_intel_do_deep_dma-unmapping_to_avoid_kernel-flooding.patch b/sys-kernel/linux-image-redcore-lts/files/5.15-0003-iommu_intel_do_deep_dma-unmapping_to_avoid_kernel-flooding.patch
new file mode 100644
index 00000000..13aa5a09
--- /dev/null
+++ b/sys-kernel/linux-image-redcore-lts/files/5.15-0003-iommu_intel_do_deep_dma-unmapping_to_avoid_kernel-flooding.patch
@@ -0,0 +1,85 @@
+From 32803dc7c2ffc29db15a46034d818f6e6c5775ef Mon Sep 17 00:00:00 2001
+From: Ajay Garg <ajaygargnsit@gmail.com>
+Date: Tue, 12 Oct 2021 19:26:53 +0530
+Subject: [PATCH] iommu: intel: do deep dma-unmapping, to avoid
+ kernel-flooding.
+
+Origins at :
+https://lists.linuxfoundation.org/pipermail/iommu/2021-October/thread.html
+
+=== Changes from v1 => v2 ===
+
+a)
+Improved patch-description.
+
+b)
+A more root-level fix, as suggested by
+
+ 1.
+ Alex Williamson <alex.williamson@redhat.com>
+
+ 2.
+ Lu Baolu <baolu.lu@linux.intel.com>
+
+=== Issue ===
+
+Kernel-flooding is seen, when an x86_64 L1 guest (Ubuntu-21) is booted in qemu/kvm
+on a x86_64 host (Ubuntu-21), with a host-pci-device attached.
+
+Following kind of logs, along with the stacktraces, cause the flood :
+
+......
+ DMAR: ERROR: DMA PTE for vPFN 0x428ec already set (to 3f6ec003 not 3f6ec003)
+ DMAR: ERROR: DMA PTE for vPFN 0x428ed already set (to 3f6ed003 not 3f6ed003)
+ DMAR: ERROR: DMA PTE for vPFN 0x428ee already set (to 3f6ee003 not 3f6ee003)
+ DMAR: ERROR: DMA PTE for vPFN 0x428ef already set (to 3f6ef003 not 3f6ef003)
+ DMAR: ERROR: DMA PTE for vPFN 0x428f0 already set (to 3f6f0003 not 3f6f0003)
+......
+
+=== Current Behaviour, leading to the issue ===
+
+Currently, when we do a dma-unmapping, we unmap/unlink the mappings, but
+the pte-entries are not cleared.
+
+Thus, following sequencing would flood the kernel-logs :
+
+i)
+A dma-unmapping makes the real/leaf-level pte-slot invalid, but the
+pte-content itself is not cleared.
+
+ii)
+Now, during some later dma-mapping procedure, as the pte-slot is about
+to hold a new pte-value, the intel-iommu checks if a prior
+pte-entry exists in the pte-slot. If it exists, it logs a kernel-error,
+along with a corresponding stacktrace.
+
+iii)
+Step ii) runs in abundance, and the kernel-logs run insane.
+
+=== Fix ===
+
+We ensure that as part of a dma-unmapping, each (unmapped) pte-slot
+is also cleared of its value/content (at the leaf-level, where the
+real mapping from a iova => pfn mapping is stored).
+
+This completes a "deep" dma-unmapping.
+
+Signed-off-by: Ajay Garg <ajaygargnsit@gmail.com>
+Link: https://lore.kernel.org/linux-iommu/20211012135653.3852-1-ajaygargnsit@gmail.com/
+---
+ drivers/iommu/intel/iommu.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/drivers/iommu/intel/iommu.c b/drivers/iommu/intel/iommu.c
+index 78f8c8e6803e9..d8da48a91ba3b 100644
+--- a/drivers/iommu/intel/iommu.c
++++ b/drivers/iommu/intel/iommu.c
+@@ -5092,6 +5092,8 @@ static size_t intel_iommu_unmap(struct iommu_domain *domain,
+ gather->freelist = domain_unmap(dmar_domain, start_pfn,
+ last_pfn, gather->freelist);
+
++ dma_pte_clear_range(dmar_domain, start_pfn, last_pfn);
++
+ if (dmar_domain->max_addr == iova + size)
+ dmar_domain->max_addr = iova;
+
diff --git a/sys-kernel/linux-image-redcore-lts/files/5.15-0004-cpufreq_intel_pstate_ITMT_support_for_overclocked_system.patch b/sys-kernel/linux-image-redcore-lts/files/5.15-0004-cpufreq_intel_pstate_ITMT_support_for_overclocked_system.patch
new file mode 100644
index 00000000..4c0a62d2
--- /dev/null
+++ b/sys-kernel/linux-image-redcore-lts/files/5.15-0004-cpufreq_intel_pstate_ITMT_support_for_overclocked_system.patch
@@ -0,0 +1,51 @@
+From aa7300919d0656a001fe0d526508b8c5958e7630 Mon Sep 17 00:00:00 2001
+From: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
+Date: Thu, 18 Nov 2021 21:18:01 -0800
+Subject: [PATCH] cpufreq: intel_pstate: ITMT support for overclocked system
+
+On systems with overclocking enabled, CPPC Highest Performance can be
+hard coded to 0xff. In this case even if we have cores with different
+highest performance, ITMT can't be enabled as the current implementation
+depends on CPPC Highest Performance.
+
+On such systems we can use MSR_HWP_CAPABILITIES maximum performance field
+when CPPC.Highest Performance is 0xff.
+
+Due to legacy reasons, we can't solely depend on MSR_HWP_CAPABILITIES as
+in some older systems CPPC Highest Performance is the only way to identify
+different performing cores.
+
+Reported-by: Michael Larabel <Michael@MichaelLarabel.com>
+Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
+---
+ drivers/cpufreq/intel_pstate.c | 10 ++++++++++
+ 1 file changed, 10 insertions(+)
+
+diff --git a/drivers/cpufreq/intel_pstate.c b/drivers/cpufreq/intel_pstate.c
+index e15c3bc17a55c..8a2c6b58b6524 100644
+--- a/drivers/cpufreq/intel_pstate.c
++++ b/drivers/cpufreq/intel_pstate.c
+@@ -335,6 +335,8 @@ static void intel_pstste_sched_itmt_work_fn(struct work_struct *work)
+
+ static DECLARE_WORK(sched_itmt_work, intel_pstste_sched_itmt_work_fn);
+
++#define CPPC_MAX_PERF U8_MAX
++
+ static void intel_pstate_set_itmt_prio(int cpu)
+ {
+ struct cppc_perf_caps cppc_perf;
+@@ -345,6 +347,14 @@ static void intel_pstate_set_itmt_prio(int cpu)
+ if (ret)
+ return;
+
++ /*
++ * On some systems with overclocking enabled, CPPC.highest_perf is hardcoded to 0xff.
++ * In this case we can't use CPPC.highest_perf to enable ITMT.
++ * In this case we can look at MSR_HWP_CAPABILITIES bits [8:0] to decide.
++ */
++ if (cppc_perf.highest_perf == CPPC_MAX_PERF)
++ cppc_perf.highest_perf = HWP_HIGHEST_PERF(READ_ONCE(all_cpu_data[cpu]->hwp_cap_cached));
++
+ /*
+ * The priorities can be set regardless of whether or not
+ * sched_set_itmt_support(true) has been called and it is valid to
diff --git a/sys-kernel/linux-image-redcore-lts/files/5.15-0005-Bluetooth_btintel_Fix_bdaddress_comparison_with_garbage_value.patch b/sys-kernel/linux-image-redcore-lts/files/5.15-0005-Bluetooth_btintel_Fix_bdaddress_comparison_with_garbage_value.patch
new file mode 100644
index 00000000..3697425a
--- /dev/null
+++ b/sys-kernel/linux-image-redcore-lts/files/5.15-0005-Bluetooth_btintel_Fix_bdaddress_comparison_with_garbage_value.patch
@@ -0,0 +1,57 @@
+From a6d4fb4f5e7fe795d9e3b28b261a0f86f1026d03 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 f1705b46fc889..b9055a3e61ed7 100644
+--- a/drivers/bluetooth/btintel.c
++++ b/drivers/bluetooth/btintel.c
+@@ -2006,14 +2006,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");
+@@ -2303,6 +2305,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/sys-kernel/linux-image-redcore-lts/files/5.15-0006-lg-laptop_Recognize_more_models.patch b/sys-kernel/linux-image-redcore-lts/files/5.15-0006-lg-laptop_Recognize_more_models.patch
new file mode 100644
index 00000000..90310855
--- /dev/null
+++ b/sys-kernel/linux-image-redcore-lts/files/5.15-0006-lg-laptop_Recognize_more_models.patch
@@ -0,0 +1,36 @@
+From 72edf8c167268bb68d701f46006ccfdfa5490db8 Mon Sep 17 00:00:00 2001
+From: Matan Ziv-Av <matan@svgalib.org>
+Date: Tue, 23 Nov 2021 22:14:55 +0200
+Subject: [PATCH] lg-laptop: Recognize more models
+
+LG uses 5 instead of 0 in the third digit (second digit after 2019) of the year string to indicate newer models in the same year. Handle this case as well.
+
+Signed-off-by: Matan Ziv-Av <matan@svgalib.org>
+For: https://bugs.archlinux.org/task/71772
+---
+ drivers/platform/x86/lg-laptop.c | 12 ++++++++++++
+ 1 file changed, 12 insertions(+)
+
+diff --git a/drivers/platform/x86/lg-laptop.c b/drivers/platform/x86/lg-laptop.c
+index 88b551caeaaf4..d6f74d3a7605e 100644
+--- a/drivers/platform/x86/lg-laptop.c
++++ b/drivers/platform/x86/lg-laptop.c
+@@ -658,6 +658,18 @@ static int acpi_add(struct acpi_device *device)
+ if (product && strlen(product) > 4)
+ switch (product[4]) {
+ case '5':
++ if (strlen(product) > 5)
++ switch (product[5]) {
++ case 'N':
++ year = 2021;
++ break;
++ case '0':
++ year = 2016;
++ break;
++ default:
++ year = 2022;
++ }
++ break;
+ case '6':
+ year = 2016;
+ break;
diff --git a/sys-kernel/linux-image-redcore-lts/files/5.10-acpi-use-kern_warning_even_when_error.patch b/sys-kernel/linux-image-redcore-lts/files/5.15-acpi-use-kern_warning_even_when_error.patch
index 64c773ab..64c773ab 100644
--- a/sys-kernel/linux-image-redcore-lts/files/5.10-acpi-use-kern_warning_even_when_error.patch
+++ b/sys-kernel/linux-image-redcore-lts/files/5.15-acpi-use-kern_warning_even_when_error.patch
diff --git a/sys-kernel/linux-image-redcore-lts/files/5.15-alx-wol.patch b/sys-kernel/linux-image-redcore-lts/files/5.15-alx-wol.patch
new file mode 100644
index 00000000..24926449
--- /dev/null
+++ b/sys-kernel/linux-image-redcore-lts/files/5.15-alx-wol.patch
@@ -0,0 +1,481 @@
+--- a/drivers/net/ethernet/atheros/alx/ethtool.c
++++ b/drivers/net/ethernet/atheros/alx/ethtool.c
+@@ -321,11 +321,47 @@
+ }
+ }
+
++static void alx_get_wol(struct net_device *netdev, struct ethtool_wolinfo *wol)
++{
++ struct alx_priv *alx = netdev_priv(netdev);
++ struct alx_hw *hw = &alx->hw;
++
++ wol->supported = WAKE_MAGIC | WAKE_PHY;
++ wol->wolopts = 0;
++
++ if (hw->sleep_ctrl & ALX_SLEEP_WOL_MAGIC)
++ wol->wolopts |= WAKE_MAGIC;
++ if (hw->sleep_ctrl & ALX_SLEEP_WOL_PHY)
++ wol->wolopts |= WAKE_PHY;
++}
++
++static int alx_set_wol(struct net_device *netdev, struct ethtool_wolinfo *wol)
++{
++ struct alx_priv *alx = netdev_priv(netdev);
++ struct alx_hw *hw = &alx->hw;
++
++ if (wol->wolopts & ~(WAKE_MAGIC | WAKE_PHY))
++ return -EOPNOTSUPP;
++
++ hw->sleep_ctrl = 0;
++
++ if (wol->wolopts & WAKE_MAGIC)
++ hw->sleep_ctrl |= ALX_SLEEP_WOL_MAGIC;
++ if (wol->wolopts & WAKE_PHY)
++ hw->sleep_ctrl |= ALX_SLEEP_WOL_PHY;
++
++ device_set_wakeup_enable(&alx->hw.pdev->dev, hw->sleep_ctrl);
++
++ return 0;
++}
++
+ const struct ethtool_ops alx_ethtool_ops = {
+ .get_pauseparam = alx_get_pauseparam,
+ .set_pauseparam = alx_set_pauseparam,
+ .get_msglevel = alx_get_msglevel,
+ .set_msglevel = alx_set_msglevel,
++ .get_wol = alx_get_wol,
++ .set_wol = alx_set_wol,
+ .get_link = ethtool_op_get_link,
+ .get_strings = alx_get_strings,
+ .get_sset_count = alx_get_sset_count,
+--- a/drivers/net/ethernet/atheros/alx/hw.c
++++ b/drivers/net/ethernet/atheros/alx/hw.c
+@@ -332,6 +332,16 @@
+ alx_write_mem32(hw, ALX_STAD1, val);
+ }
+
++static void alx_enable_osc(struct alx_hw *hw)
++{
++ u32 val;
++
++ /* rising edge */
++ val = alx_read_mem32(hw, ALX_MISC);
++ alx_write_mem32(hw, ALX_MISC, val & ~ALX_MISC_INTNLOSC_OPEN);
++ alx_write_mem32(hw, ALX_MISC, val | ALX_MISC_INTNLOSC_OPEN);
++}
++
+ static void alx_reset_osc(struct alx_hw *hw, u8 rev)
+ {
+ u32 val, val2;
+@@ -848,6 +858,66 @@
+ }
+ }
+
++
++/* NOTE:
++ * 1. phy link must be established before calling this function
++ * 2. wol option (pattern,magic,link,etc.) is configed before call it.
++ */
++int alx_pre_suspend(struct alx_hw *hw, int speed, u8 duplex)
++{
++ u32 master, mac, phy, val;
++ int err = 0;
++
++ master = alx_read_mem32(hw, ALX_MASTER);
++ master &= ~ALX_MASTER_PCLKSEL_SRDS;
++ mac = hw->rx_ctrl;
++ /* 10/100 half */
++ ALX_SET_FIELD(mac, ALX_MAC_CTRL_SPEED, ALX_MAC_CTRL_SPEED_10_100);
++ mac &= ~(ALX_MAC_CTRL_FULLD | ALX_MAC_CTRL_RX_EN | ALX_MAC_CTRL_TX_EN);
++
++ phy = alx_read_mem32(hw, ALX_PHY_CTRL);
++ phy &= ~(ALX_PHY_CTRL_DSPRST_OUT | ALX_PHY_CTRL_CLS);
++ phy |= ALX_PHY_CTRL_RST_ANALOG | ALX_PHY_CTRL_HIB_PULSE |
++ ALX_PHY_CTRL_HIB_EN;
++
++ /* without any activity */
++ if (!(hw->sleep_ctrl & ALX_SLEEP_ACTIVE)) {
++ err = alx_write_phy_reg(hw, ALX_MII_IER, 0);
++ if (err)
++ return err;
++ phy |= ALX_PHY_CTRL_IDDQ | ALX_PHY_CTRL_POWER_DOWN;
++ } else {
++ if (hw->sleep_ctrl & (ALX_SLEEP_WOL_MAGIC | ALX_SLEEP_CIFS))
++ mac |= ALX_MAC_CTRL_RX_EN | ALX_MAC_CTRL_BRD_EN;
++ if (hw->sleep_ctrl & ALX_SLEEP_CIFS)
++ mac |= ALX_MAC_CTRL_TX_EN;
++ if (duplex == DUPLEX_FULL)
++ mac |= ALX_MAC_CTRL_FULLD;
++ if (speed == SPEED_1000)
++ ALX_SET_FIELD(mac, ALX_MAC_CTRL_SPEED,
++ ALX_MAC_CTRL_SPEED_1000);
++ phy |= ALX_PHY_CTRL_DSPRST_OUT;
++ err = alx_write_phy_ext(hw, ALX_MIIEXT_ANEG,
++ ALX_MIIEXT_S3DIG10,
++ ALX_MIIEXT_S3DIG10_SL);
++ if (err)
++ return err;
++ }
++
++ alx_enable_osc(hw);
++ hw->rx_ctrl = mac;
++ alx_write_mem32(hw, ALX_MASTER, master);
++ alx_write_mem32(hw, ALX_MAC_CTRL, mac);
++ alx_write_mem32(hw, ALX_PHY_CTRL, phy);
++
++ /* set val of PDLL D3PLLOFF */
++ val = alx_read_mem32(hw, ALX_PDLL_TRNS1);
++ val |= ALX_PDLL_TRNS1_D3PLLOFF_EN;
++ alx_write_mem32(hw, ALX_PDLL_TRNS1, val);
++
++ return 0;
++}
++
+ bool alx_phy_configured(struct alx_hw *hw)
+ {
+ u32 cfg, hw_cfg;
+@@ -920,6 +990,26 @@
+ return alx_read_phy_reg(hw, ALX_MII_ISR, &isr);
+ }
+
++int alx_config_wol(struct alx_hw *hw)
++{
++ u32 wol = 0;
++ int err = 0;
++
++ /* turn on magic packet event */
++ if (hw->sleep_ctrl & ALX_SLEEP_WOL_MAGIC)
++ wol |= ALX_WOL0_MAGIC_EN | ALX_WOL0_PME_MAGIC_EN;
++
++ /* turn on link up event */
++ if (hw->sleep_ctrl & ALX_SLEEP_WOL_PHY) {
++ wol |= ALX_WOL0_LINK_EN | ALX_WOL0_PME_LINK;
++ /* only link up can wake up */
++ err = alx_write_phy_reg(hw, ALX_MII_IER, ALX_IER_LINK_UP);
++ }
++ alx_write_mem32(hw, ALX_WOL0, wol);
++
++ return err;
++}
++
+ void alx_disable_rss(struct alx_hw *hw)
+ {
+ u32 ctrl = alx_read_mem32(hw, ALX_RXQ0);
+@@ -1045,6 +1135,71 @@
+ }
+
+
++int alx_select_powersaving_speed(struct alx_hw *hw, int *speed, u8 *duplex)
++{
++ int i, err;
++ u16 lpa;
++
++ err = alx_read_phy_link(hw);
++ if (err)
++ return err;
++
++ if (hw->link_speed == SPEED_UNKNOWN) {
++ *speed = SPEED_UNKNOWN;
++ *duplex = DUPLEX_UNKNOWN;
++ return 0;
++ }
++
++ err = alx_read_phy_reg(hw, MII_LPA, &lpa);
++ if (err)
++ return err;
++
++ if (!(lpa & LPA_LPACK)) {
++ *speed = hw->link_speed;
++ return 0;
++ }
++
++ if (lpa & LPA_10FULL) {
++ *speed = SPEED_10;
++ *duplex = DUPLEX_FULL;
++ } else if (lpa & LPA_10HALF) {
++ *speed = SPEED_10;
++ *duplex = DUPLEX_HALF;
++ } else if (lpa & LPA_100FULL) {
++ *speed = SPEED_100;
++ *duplex = DUPLEX_FULL;
++ } else {
++ *speed = SPEED_100;
++ *duplex = DUPLEX_HALF;
++ }
++
++ if (*speed == hw->link_speed && *duplex == hw->duplex)
++ return 0;
++ err = alx_write_phy_reg(hw, ALX_MII_IER, 0);
++ if (err)
++ return err;
++ err = alx_setup_speed_duplex(hw, alx_speed_to_ethadv(*speed, *duplex) |
++ ADVERTISED_Autoneg, ALX_FC_ANEG |
++ ALX_FC_RX | ALX_FC_TX);
++ if (err)
++ return err;
++
++ /* wait for linkup */
++ for (i = 0; i < ALX_MAX_SETUP_LNK_CYCLE; i++) {
++ msleep(100);
++
++ err = alx_read_phy_link(hw);
++ if (err < 0)
++ return err;
++ if (hw->link_speed != SPEED_UNKNOWN)
++ break;
++ }
++ if (i == ALX_MAX_SETUP_LNK_CYCLE)
++ return -ETIMEDOUT;
++
++ return 0;
++}
++
+ bool alx_get_phy_info(struct alx_hw *hw)
+ {
+ u16 devs1, devs2;
+--- a/drivers/net/ethernet/atheros/alx/hw.h
++++ b/drivers/net/ethernet/atheros/alx/hw.h
+@@ -487,6 +487,8 @@
+ u8 flowctrl;
+ u32 adv_cfg;
+
++ u32 sleep_ctrl;
++
+ spinlock_t mdio_lock;
+ struct mdio_if_info mdio;
+ u16 phy_id[2];
+@@ -549,12 +551,14 @@
+ void alx_enable_aspm(struct alx_hw *hw, bool l0s_en, bool l1_en);
+ int alx_setup_speed_duplex(struct alx_hw *hw, u32 ethadv, u8 flowctrl);
+ void alx_post_phy_link(struct alx_hw *hw);
++int alx_pre_suspend(struct alx_hw *hw, int speed, u8 duplex);
+ int alx_read_phy_reg(struct alx_hw *hw, u16 reg, u16 *phy_data);
+ int alx_write_phy_reg(struct alx_hw *hw, u16 reg, u16 phy_data);
+ int alx_read_phy_ext(struct alx_hw *hw, u8 dev, u16 reg, u16 *pdata);
+ int alx_write_phy_ext(struct alx_hw *hw, u8 dev, u16 reg, u16 data);
+ int alx_read_phy_link(struct alx_hw *hw);
+ int alx_clear_phy_intr(struct alx_hw *hw);
++int alx_config_wol(struct alx_hw *hw);
+ void alx_cfg_mac_flowcontrol(struct alx_hw *hw, u8 fc);
+ void alx_start_mac(struct alx_hw *hw);
+ int alx_reset_mac(struct alx_hw *hw);
+@@ -563,6 +567,7 @@
+ void alx_configure_basic(struct alx_hw *hw);
+ void alx_mask_msix(struct alx_hw *hw, int index, bool mask);
+ void alx_disable_rss(struct alx_hw *hw);
++int alx_select_powersaving_speed(struct alx_hw *hw, int *speed, u8 *duplex);
+ bool alx_get_phy_info(struct alx_hw *hw);
+ void alx_update_hw_stats(struct alx_hw *hw);
+
+--- a/drivers/net/ethernet/atheros/alx/main.c
++++ b/drivers/net/ethernet/atheros/alx/main.c
+@@ -1069,6 +1069,7 @@
+ alx->dev->max_mtu = ALX_MAX_FRAME_LEN(ALX_MAX_FRAME_SIZE);
+ alx->tx_ringsz = 256;
+ alx->rx_ringsz = 512;
++ hw->sleep_ctrl = ALX_SLEEP_WOL_MAGIC | ALX_SLEEP_WOL_PHY;
+ hw->imt = 200;
+ alx->int_mask = ALX_ISR_MISC;
+ hw->dma_chnl = hw->max_dma_chnl;
+@@ -1368,6 +1369,66 @@
+ return 0;
+ }
+
++static int __alx_shutdown(struct pci_dev *pdev, bool *wol_en)
++{
++ struct alx_priv *alx = pci_get_drvdata(pdev);
++ struct net_device *netdev = alx->dev;
++ struct alx_hw *hw = &alx->hw;
++ int err, speed;
++ u8 duplex;
++
++ netif_device_detach(netdev);
++
++ if (netif_running(netdev))
++ __alx_stop(alx);
++
++#ifdef CONFIG_PM_SLEEP
++ err = pci_save_state(pdev);
++ if (err)
++ return err;
++#endif
++
++ err = alx_select_powersaving_speed(hw, &speed, &duplex);
++ if (err)
++ return err;
++ err = alx_clear_phy_intr(hw);
++ if (err)
++ return err;
++ err = alx_pre_suspend(hw, speed, duplex);
++ if (err)
++ return err;
++ err = alx_config_wol(hw);
++ if (err)
++ return err;
++
++ *wol_en = false;
++ if (hw->sleep_ctrl & ALX_SLEEP_ACTIVE) {
++ netif_info(alx, wol, netdev,
++ "wol: ctrl=%X, speed=%X\n",
++ hw->sleep_ctrl, speed);
++ device_set_wakeup_enable(&pdev->dev, true);
++ *wol_en = true;
++ }
++
++ //pci_disable_device(pdev);
++
++ return 0;
++}
++
++static void alx_shutdown(struct pci_dev *pdev)
++{
++ int err;
++ bool wol_en;
++
++ err = __alx_shutdown(pdev, &wol_en);
++ if (!err) {
++ pci_wake_from_d3(pdev, wol_en);
++ pci_set_power_state(pdev, PCI_D3hot);
++ } else {
++ dev_err(&pdev->dev, "shutdown fail %d\n", err);
++ }
++}
++
+ static void alx_link_check(struct work_struct *work)
+ {
+ struct alx_priv *alx;
+@@ -1862,6 +1923,7 @@
+ goto out_unmap;
+ }
+
++ device_set_wakeup_enable(&pdev->dev, hw->sleep_ctrl);
+ netdev_info(netdev,
+ "Qualcomm Atheros AR816x/AR817x Ethernet [%pM]\n",
+ netdev->dev_addr);
+@@ -1907,49 +1969,80 @@
+ {
+ struct alx_priv *alx = dev_get_drvdata(dev);
+
+- if (!netif_running(alx->dev))
+- return 0;
+- netif_device_detach(alx->dev);
++ struct pci_dev *pdev = alx->hw.pdev;
++ int err;
++ bool wol_en;
+
+ mutex_lock(&alx->mtx);
+- __alx_stop(alx);
++ err = __alx_shutdown(pdev, &wol_en);
+ mutex_unlock(&alx->mtx);
+
++ if (err) {
++ dev_err(&pdev->dev, "shutdown fail in suspend %d\n", err);
++ return err;
++ }
++
++ if (wol_en) {
++ pci_prepare_to_sleep(pdev);
++ } else {
++ pci_wake_from_d3(pdev, false);
++ pci_set_power_state(pdev, PCI_D3hot);
++ }
++
+ return 0;
+ }
+
+ static int alx_resume(struct device *dev)
+ {
+ struct alx_priv *alx = dev_get_drvdata(dev);
++ struct net_device *netdev = alx->dev;
+ struct alx_hw *hw = &alx->hw;
++ struct pci_dev *pdev = alx->hw.pdev;
+ int err;
+
+ mutex_lock(&alx->mtx);
++ pci_set_power_state(pdev, PCI_D0);
++ pci_restore_state(pdev);
++ pci_save_state(pdev);
++
++ pci_enable_wake(pdev, PCI_D3hot, 0);
++ pci_enable_wake(pdev, PCI_D3cold, 0);
++
++ hw->link_speed = SPEED_UNKNOWN;
++ alx->int_mask = ALX_ISR_MISC;
++
++ alx_reset_pcie(hw);
+ alx_reset_phy(hw);
+
+- if (!netif_running(alx->dev)) {
+- err = 0;
+- goto unlock;
++ err = alx_reset_mac(hw);
++ if (err) {
++ netif_err(alx, hw, alx->dev,
++ "resume:reset_mac fail %d\n", err);
++ mutex_unlock(&alx->mtx);
++ return -EIO;
+ }
+-
+- err = __alx_open(alx, true);
++
++ err = alx_setup_speed_duplex(hw, hw->adv_cfg, hw->flowctrl);
++ if (err) {
++ netif_err(alx, hw, alx->dev,
++ "resume:setup_speed_duplex fail %d\n", err);
++ return -EIO;
++ }
++
++ if (netif_running(netdev)) {
++ err = __alx_open(alx, true);
+ if (err)
+ goto unlock;
++ }
+
+- netif_device_attach(alx->dev);
++ netif_device_attach(netdev);
+
+ unlock:
+ mutex_unlock(&alx->mtx);
+ return err;
+ }
+-
+-static SIMPLE_DEV_PM_OPS(alx_pm_ops, alx_suspend, alx_resume);
+-#define ALX_PM_OPS (&alx_pm_ops)
+-#else
+-#define ALX_PM_OPS NULL
+ #endif
+
+-
+ static pci_ers_result_t alx_pci_error_detected(struct pci_dev *pdev,
+ pci_channel_state_t state)
+ {
+@@ -1992,6 +2085,8 @@
+ }
+
+ pci_set_master(pdev);
++ pci_enable_wake(pdev, PCI_D3hot, 0);
++ pci_enable_wake(pdev, PCI_D3cold, 0);
+
+ alx_reset_pcie(hw);
+ if (!alx_reset_mac(hw))
+@@ -2041,11 +2136,20 @@
+ {}
+ };
+
++#ifdef CONFIG_PM_SLEEP
++static SIMPLE_DEV_PM_OPS(alx_pm_ops, alx_suspend, alx_resume);
++#define ALX_PM_OPS (&alx_pm_ops)
++#else
++#define ALX_PM_OPS NULL
++#endif
++
++
+ static struct pci_driver alx_driver = {
+ .name = alx_drv_name,
+ .id_table = alx_pci_tbl,
+ .probe = alx_probe,
+ .remove = alx_remove,
++ .shutdown = alx_shutdown,
+ .err_handler = &alx_err_handlers,
+ .driver.pm = ALX_PM_OPS,
+ };
diff --git a/sys-kernel/linux-image-redcore-lts/files/5.10-amd64.config b/sys-kernel/linux-image-redcore-lts/files/5.15-amd64.config
index f2fd796d..af00a148 100644
--- a/sys-kernel/linux-image-redcore-lts/files/5.10-amd64.config
+++ b/sys-kernel/linux-image-redcore-lts/files/5.15-amd64.config
@@ -1,17 +1,21 @@
#
# Automatically generated file; DO NOT EDIT.
-# Linux/x86 5.10.56-redcore-lts Kernel Configuration
+# Linux/x86 5.15.35-redcore-lts Kernel Configuration
#
CONFIG_CC_VERSION_TEXT="gcc (Gentoo Hardened 10.3.0-r10 p1) 10.3.0"
CONFIG_CC_IS_GCC=y
CONFIG_GCC_VERSION=100300
-CONFIG_LD_VERSION=235020000
CONFIG_CLANG_VERSION=0
+CONFIG_AS_IS_GNU=y
+CONFIG_AS_VERSION=23700
+CONFIG_LD_IS_BFD=y
+CONFIG_LD_VERSION=23700
CONFIG_LLD_VERSION=0
CONFIG_CC_CAN_LINK=y
CONFIG_CC_CAN_LINK_STATIC=y
CONFIG_CC_HAS_ASM_GOTO=y
CONFIG_CC_HAS_ASM_INLINE=y
+CONFIG_CC_HAS_NO_PROFILE_FN_ATTR=y
CONFIG_IRQ_WORK=y
CONFIG_BUILDTIME_TABLE_SORT=y
CONFIG_THREAD_INFO_IN_TASK=y
@@ -21,6 +25,7 @@ CONFIG_THREAD_INFO_IN_TASK=y
#
CONFIG_INIT_ENV_ARG_LIMIT=32
# CONFIG_COMPILE_TEST is not set
+# CONFIG_WERROR is not set
CONFIG_LOCALVERSION=""
CONFIG_LOCALVERSION_AUTO=y
CONFIG_BUILD_SALT=""
@@ -100,11 +105,28 @@ CONFIG_NO_HZ=y
CONFIG_HIGH_RES_TIMERS=y
# end of Timers subsystem
+CONFIG_BPF=y
+CONFIG_HAVE_EBPF_JIT=y
+CONFIG_ARCH_WANT_DEFAULT_BPF_JIT=y
+
+#
+# BPF subsystem
+#
+CONFIG_BPF_SYSCALL=y
+CONFIG_BPF_JIT=y
+CONFIG_BPF_JIT_ALWAYS_ON=y
+CONFIG_BPF_JIT_DEFAULT_ON=y
+# CONFIG_BPF_UNPRIV_DEFAULT_OFF is not set
+# CONFIG_BPF_PRELOAD is not set
+# end of BPF subsystem
+
# CONFIG_PREEMPT_NONE is not set
# CONFIG_PREEMPT_VOLUNTARY is not set
CONFIG_PREEMPT=y
CONFIG_PREEMPT_COUNT=y
CONFIG_PREEMPTION=y
+CONFIG_PREEMPT_DYNAMIC=y
+CONFIG_SCHED_CORE=y
#
# CPU/Task time and stats accounting
@@ -149,6 +171,7 @@ CONFIG_IKCONFIG_PROC=y
CONFIG_LOG_BUF_SHIFT=17
CONFIG_LOG_CPU_MAX_BUF_SHIFT=12
CONFIG_PRINTK_SAFE_LOG_BUF_SHIFT=13
+# CONFIG_PRINTK_INDEX is not set
CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y
#
@@ -184,6 +207,7 @@ CONFIG_CGROUP_DEVICE=y
CONFIG_CGROUP_CPUACCT=y
CONFIG_CGROUP_PERF=y
CONFIG_CGROUP_BPF=y
+CONFIG_CGROUP_MISC=y
# CONFIG_CGROUP_DEBUG is not set
CONFIG_SOCK_CGROUP_DATA=y
CONFIG_NAMESPACES=y
@@ -215,7 +239,6 @@ CONFIG_SYSCTL=y
CONFIG_HAVE_UID16=y
CONFIG_SYSCTL_EXCEPTION_TRACE=y
CONFIG_HAVE_PCSPKR_PLATFORM=y
-CONFIG_BPF=y
# CONFIG_EXPERT is not set
CONFIG_UID16=y
CONFIG_MULTIUSER=y
@@ -224,7 +247,6 @@ CONFIG_SYSFS_SYSCALL=y
CONFIG_FHANDLE=y
CONFIG_POSIX_TIMERS=y
CONFIG_PRINTK=y
-CONFIG_PRINTK_NMI=y
CONFIG_BUG=y
CONFIG_ELF_CORE=y
CONFIG_PCSPKR_PLATFORM=y
@@ -240,16 +262,12 @@ CONFIG_AIO=y
CONFIG_IO_URING=y
CONFIG_ADVISE_SYSCALLS=y
CONFIG_HAVE_ARCH_USERFAULTFD_WP=y
+CONFIG_HAVE_ARCH_USERFAULTFD_MINOR=y
CONFIG_MEMBARRIER=y
CONFIG_KALLSYMS=y
CONFIG_KALLSYMS_ALL=y
CONFIG_KALLSYMS_ABSOLUTE_PERCPU=y
CONFIG_KALLSYMS_BASE_RELATIVE=y
-CONFIG_BPF_SYSCALL=y
-CONFIG_ARCH_WANT_DEFAULT_BPF_JIT=y
-CONFIG_BPF_JIT_ALWAYS_ON=y
-CONFIG_BPF_JIT_DEFAULT_ON=y
-# CONFIG_BPF_PRELOAD is not set
CONFIG_USERFAULTFD=y
CONFIG_ARCH_HAS_MEMBARRIER_SYNC_CORE=y
CONFIG_KCMP=y
@@ -297,17 +315,15 @@ CONFIG_GENERIC_BUG_RELATIVE_POINTERS=y
CONFIG_ARCH_MAY_HAVE_PC_FDC=y
CONFIG_GENERIC_CALIBRATE_DELAY=y
CONFIG_ARCH_HAS_CPU_RELAX=y
-CONFIG_ARCH_HAS_CACHE_LINE_SIZE=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
CONFIG_ARCH_WANT_GENERAL_HUGETLB=y
-CONFIG_ZONE_DMA32=y
CONFIG_AUDIT_ARCH=y
-CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
CONFIG_HAVE_INTEL_TXT=y
CONFIG_X86_64_SMP=y
CONFIG_ARCH_SUPPORTS_UPROBES=y
@@ -319,12 +335,11 @@ CONFIG_CC_HAS_SANE_STACKPROTECTOR=y
#
# Processor type and features
#
-CONFIG_ZONE_DMA=y
CONFIG_SMP=y
CONFIG_X86_FEATURE_NAMES=y
CONFIG_X86_X2APIC=y
CONFIG_X86_MPPARSE=y
-# CONFIG_GOLDFISH is not set
+CONFIG_GOLDFISH=y
CONFIG_RETPOLINE=y
CONFIG_X86_CPU_RESCTRL=y
# CONFIG_X86_EXTENDED_PLATFORM is not set
@@ -387,7 +402,6 @@ CONFIG_X86_MCE_INTEL=y
CONFIG_X86_MCE_AMD=y
CONFIG_X86_MCE_THRESHOLD=y
# CONFIG_X86_MCE_INJECT is not set
-CONFIG_X86_THERMAL_VECTOR=y
#
# Performance monitoring
@@ -396,6 +410,7 @@ CONFIG_PERF_EVENTS_INTEL_UNCORE=m
CONFIG_PERF_EVENTS_INTEL_RAPL=m
CONFIG_PERF_EVENTS_INTEL_CSTATE=m
CONFIG_PERF_EVENTS_AMD_POWER=m
+CONFIG_PERF_EVENTS_AMD_UNCORE=m
# end of Performance monitoring
CONFIG_X86_16BIT=y
@@ -429,7 +444,6 @@ CONFIG_X86_PMEM_LEGACY_DEVICE=y
CONFIG_X86_PMEM_LEGACY=m
CONFIG_X86_CHECK_BIOS_CORRUPTION=y
CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK=y
-CONFIG_X86_RESERVE_LOW=64
CONFIG_MTRR=y
CONFIG_MTRR_SANITIZER=y
CONFIG_MTRR_SANITIZER_ENABLE_DEFAULT=0
@@ -443,6 +457,7 @@ CONFIG_X86_INTEL_MEMORY_PROTECTION_KEYS=y
CONFIG_X86_INTEL_TSX_MODE_OFF=y
# CONFIG_X86_INTEL_TSX_MODE_ON is not set
# CONFIG_X86_INTEL_TSX_MODE_AUTO is not set
+# CONFIG_X86_SGX is not set
CONFIG_EFI=y
CONFIG_EFI_STUB=y
CONFIG_EFI_MIXED=y
@@ -480,12 +495,8 @@ CONFIG_LIVEPATCH=y
# end of Processor type and features
CONFIG_ARCH_HAS_ADD_PAGES=y
-CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
-CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
+CONFIG_ARCH_MHP_MEMMAP_ON_MEMORY_ENABLE=y
CONFIG_USE_PERCPU_NUMA_NODE_ID=y
-CONFIG_ARCH_ENABLE_SPLIT_PMD_PTLOCK=y
-CONFIG_ARCH_ENABLE_HUGEPAGE_MIGRATION=y
-CONFIG_ARCH_ENABLE_THP_MIGRATION=y
#
# Power management and ACPI options
@@ -517,6 +528,7 @@ CONFIG_ARCH_MIGHT_HAVE_ACPI_PDC=y
CONFIG_ACPI_SYSTEM_POWER_STATES_SUPPORT=y
# CONFIG_ACPI_DEBUGGER is not set
CONFIG_ACPI_SPCR_TABLE=y
+CONFIG_ACPI_FPDT=y
CONFIG_ACPI_LPIT=y
CONFIG_ACPI_SLEEP=y
CONFIG_ACPI_REV_OVERRIDE_POSSIBLE=y
@@ -539,6 +551,7 @@ CONFIG_ACPI_IPMI=m
CONFIG_ACPI_HOTPLUG_CPU=y
CONFIG_ACPI_PROCESSOR_AGGREGATOR=m
CONFIG_ACPI_THERMAL=m
+CONFIG_ACPI_PLATFORM_PROFILE=m
CONFIG_ARCH_HAS_ACPI_TABLE_UPGRADE=y
CONFIG_ACPI_TABLE_UPGRADE=y
# CONFIG_ACPI_DEBUG is not set
@@ -573,8 +586,10 @@ CONFIG_PMIC_OPREGION=y
# CONFIG_XPOWER_PMIC_OPREGION is not set
# CONFIG_BXT_WC_PMIC_OPREGION is not set
CONFIG_CHT_DC_TI_PMIC_OPREGION=y
+# CONFIG_TPS68470_PMIC_OPREGION is not set
+CONFIG_ACPI_VIOT=y
CONFIG_X86_PM_TIMER=y
-CONFIG_SFI=y
+CONFIG_ACPI_PRMT=y
#
# CPU Frequency scaling
@@ -635,7 +650,6 @@ CONFIG_PCI_MMCONFIG=y
CONFIG_MMCONF_FAM10H=y
CONFIG_ISA_DMA_API=y
CONFIG_AMD_NB=y
-CONFIG_X86_SYSFB=y
# end of Bus options (PCI etc.)
#
@@ -649,61 +663,6 @@ CONFIG_COMPAT_FOR_U64_ALIGNMENT=y
CONFIG_SYSVIPC_COMPAT=y
# end of Binary Emulations
-#
-# Firmware Drivers
-#
-CONFIG_EDD=m
-# CONFIG_EDD_OFF is not set
-CONFIG_FIRMWARE_MEMMAP=y
-CONFIG_DMIID=y
-CONFIG_DMI_SYSFS=m
-CONFIG_DMI_SCAN_MACHINE_NON_EFI_FALLBACK=y
-CONFIG_ISCSI_IBFT_FIND=y
-CONFIG_ISCSI_IBFT=m
-CONFIG_FW_CFG_SYSFS=m
-# CONFIG_FW_CFG_SYSFS_CMDLINE is not set
-CONFIG_GOOGLE_FIRMWARE=y
-CONFIG_GOOGLE_SMI=m
-CONFIG_GOOGLE_COREBOOT_TABLE=m
-CONFIG_GOOGLE_MEMCONSOLE=m
-CONFIG_GOOGLE_MEMCONSOLE_X86_LEGACY=m
-CONFIG_GOOGLE_FRAMEBUFFER_COREBOOT=m
-CONFIG_GOOGLE_MEMCONSOLE_COREBOOT=m
-CONFIG_GOOGLE_VPD=m
-
-#
-# EFI (Extensible Firmware Interface) Support
-#
-CONFIG_EFI_VARS=m
-CONFIG_EFI_ESRT=y
-CONFIG_EFI_VARS_PSTORE=m
-CONFIG_EFI_VARS_PSTORE_DEFAULT_DISABLE=y
-CONFIG_EFI_RUNTIME_MAP=y
-# CONFIG_EFI_FAKE_MEMMAP is not set
-CONFIG_EFI_SOFT_RESERVE=y
-CONFIG_EFI_RUNTIME_WRAPPERS=y
-CONFIG_EFI_GENERIC_STUB_INITRD_CMDLINE_LOADER=y
-CONFIG_EFI_BOOTLOADER_CONTROL=m
-CONFIG_EFI_CAPSULE_LOADER=m
-CONFIG_EFI_TEST=m
-CONFIG_APPLE_PROPERTIES=y
-CONFIG_RESET_ATTACK_MITIGATION=y
-CONFIG_EFI_RCI2_TABLE=y
-# CONFIG_EFI_DISABLE_PCI_DMA is not set
-# end of EFI (Extensible Firmware Interface) Support
-
-CONFIG_UEFI_CPER=y
-CONFIG_UEFI_CPER_X86=y
-CONFIG_EFI_DEV_PATH_PARSER=y
-CONFIG_EFI_EARLYCON=y
-CONFIG_EFI_CUSTOM_SSDT_OVERLAYS=y
-
-#
-# Tegra firmware driver
-#
-# end of Tegra firmware driver
-# end of Firmware Drivers
-
CONFIG_HAVE_KVM=y
CONFIG_HAVE_KVM_IRQCHIP=y
CONFIG_HAVE_KVM_IRQFD=y
@@ -719,11 +678,13 @@ CONFIG_KVM_COMPAT=y
CONFIG_HAVE_KVM_IRQ_BYPASS=y
CONFIG_HAVE_KVM_NO_POLL=y
CONFIG_KVM_XFER_TO_GUEST_WORK=y
+CONFIG_HAVE_KVM_PM_NOTIFIER=y
CONFIG_VIRTUALIZATION=y
CONFIG_KVM=m
CONFIG_KVM_INTEL=m
CONFIG_KVM_AMD=m
CONFIG_KVM_AMD_SEV=y
+# CONFIG_KVM_XEN is not set
# CONFIG_KVM_MMU_AUDIT is not set
CONFIG_AS_AVX512=y
CONFIG_AS_SHA1_NI=y
@@ -737,8 +698,6 @@ CONFIG_CRASH_CORE=y
CONFIG_KEXEC_CORE=y
CONFIG_HOTPLUG_SMT=y
CONFIG_GENERIC_ENTRY=y
-CONFIG_HAVE_OPROFILE=y
-CONFIG_OPROFILE_NMI_TIMER=y
# CONFIG_KPROBES is not set
CONFIG_JUMP_LABEL=y
# CONFIG_STATIC_KEYS_SELFTEST is not set
@@ -753,6 +712,7 @@ CONFIG_HAVE_OPTPROBES=y
CONFIG_HAVE_KPROBES_ON_FTRACE=y
CONFIG_HAVE_FUNCTION_ERROR_INJECTION=y
CONFIG_HAVE_NMI=y
+CONFIG_TRACE_IRQFLAGS_SUPPORT=y
CONFIG_HAVE_ARCH_TRACEHOOK=y
CONFIG_HAVE_DMA_CONTIGUOUS=y
CONFIG_GENERIC_SMP_IDLE_THREAD=y
@@ -761,6 +721,7 @@ CONFIG_ARCH_HAS_SET_MEMORY=y
CONFIG_ARCH_HAS_SET_DIRECT_MAP=y
CONFIG_HAVE_ARCH_THREAD_STRUCT_WHITELIST=y
CONFIG_ARCH_WANTS_DYNAMIC_TASK_STRUCT=y
+CONFIG_ARCH_WANTS_NO_INSTR=y
CONFIG_HAVE_ASM_MODVERSIONS=y
CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y
CONFIG_HAVE_RSEQ=y
@@ -786,14 +747,20 @@ CONFIG_HAVE_ARCH_SECCOMP=y
CONFIG_HAVE_ARCH_SECCOMP_FILTER=y
CONFIG_SECCOMP=y
CONFIG_SECCOMP_FILTER=y
+# CONFIG_SECCOMP_CACHE_DEBUG is not set
CONFIG_HAVE_ARCH_STACKLEAK=y
CONFIG_HAVE_STACKPROTECTOR=y
CONFIG_STACKPROTECTOR=y
CONFIG_STACKPROTECTOR_STRONG=y
+CONFIG_ARCH_SUPPORTS_LTO_CLANG=y
+CONFIG_ARCH_SUPPORTS_LTO_CLANG_THIN=y
+CONFIG_LTO_NONE=y
CONFIG_HAVE_ARCH_WITHIN_STACK_FRAMES=y
CONFIG_HAVE_CONTEXT_TRACKING=y
+CONFIG_HAVE_CONTEXT_TRACKING_OFFSTACK=y
CONFIG_HAVE_VIRT_CPU_ACCOUNTING_GEN=y
CONFIG_HAVE_IRQ_TIME_ACCOUNTING=y
+CONFIG_HAVE_MOVE_PUD=y
CONFIG_HAVE_MOVE_PMD=y
CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE=y
CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE_PUD=y
@@ -802,6 +769,8 @@ CONFIG_ARCH_WANT_HUGE_PMD_SHARE=y
CONFIG_HAVE_ARCH_SOFT_DIRTY=y
CONFIG_HAVE_MOD_ARCH_SPECIFIC=y
CONFIG_MODULES_USE_ELF_RELA=y
+CONFIG_HAVE_IRQ_EXIT_ON_IRQ_STACK=y
+CONFIG_HAVE_SOFTIRQ_ON_OWN_STACK=y
CONFIG_ARCH_HAS_ELF_RANDOMIZE=y
CONFIG_HAVE_ARCH_MMAP_RND_BITS=y
CONFIG_HAVE_EXIT_THREAD=y
@@ -817,6 +786,8 @@ CONFIG_COMPAT_OLD_SIGACTION=y
CONFIG_COMPAT_32BIT_TIME=y
CONFIG_HAVE_ARCH_VMAP_STACK=y
CONFIG_VMAP_STACK=y
+CONFIG_HAVE_ARCH_RANDOMIZE_KSTACK_OFFSET=y
+CONFIG_RANDOMIZE_KSTACK_OFFSET_DEFAULT=y
CONFIG_ARCH_HAS_STRICT_KERNEL_RWX=y
CONFIG_STRICT_KERNEL_RWX=y
CONFIG_ARCH_HAS_STRICT_MODULE_RWX=y
@@ -825,9 +796,14 @@ CONFIG_HAVE_ARCH_PREL32_RELOCATIONS=y
CONFIG_ARCH_USE_MEMREMAP_PROT=y
# CONFIG_LOCK_EVENT_COUNTS is not set
CONFIG_ARCH_HAS_MEM_ENCRYPT=y
+CONFIG_ARCH_HAS_CC_PLATFORM=y
CONFIG_HAVE_STATIC_CALL=y
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_HAS_ELFCORE_COMPAT=y
+CONFIG_ARCH_HAS_PARANOID_L1D_FLUSH=y
#
# GCOV-based kernel profiling
@@ -850,29 +826,28 @@ CONFIG_MODVERSIONS=y
CONFIG_ASM_MODVERSIONS=y
CONFIG_MODULE_SRCVERSION_ALL=y
# CONFIG_MODULE_SIG is not set
-CONFIG_MODULE_COMPRESS=y
+# CONFIG_MODULE_COMPRESS_NONE is not set
CONFIG_MODULE_COMPRESS_GZIP=y
# CONFIG_MODULE_COMPRESS_XZ is not set
# CONFIG_MODULE_COMPRESS_ZSTD is not set
# CONFIG_MODULE_ALLOW_MISSING_NAMESPACE_IMPORTS is not set
-# CONFIG_UNUSED_SYMBOLS is not set
-# CONFIG_TRIM_UNUSED_KSYMS is not set
+CONFIG_MODPROBE_PATH="/sbin/modprobe"
CONFIG_MODULES_TREE_LOOKUP=y
CONFIG_BLOCK=y
-CONFIG_BLK_SCSI_REQUEST=y
CONFIG_BLK_CGROUP_RWSTAT=y
-CONFIG_BLK_DEV_BSG=y
+CONFIG_BLK_DEV_BSG_COMMON=y
CONFIG_BLK_DEV_BSGLIB=y
CONFIG_BLK_DEV_INTEGRITY=y
CONFIG_BLK_DEV_INTEGRITY_T10=m
CONFIG_BLK_DEV_ZONED=y
CONFIG_BLK_DEV_THROTTLING=y
# CONFIG_BLK_DEV_THROTTLING_LOW is not set
-CONFIG_BLK_CMDLINE_PARSER=y
CONFIG_BLK_WBT=y
+CONFIG_BLK_WBT_MQ=y
CONFIG_BLK_CGROUP_IOLATENCY=y
+CONFIG_BLK_CGROUP_FC_APPID=y
# CONFIG_BLK_CGROUP_IOCOST is not set
-CONFIG_BLK_WBT_MQ=y
+CONFIG_BLK_CGROUP_IOPRIO=y
CONFIG_BLK_DEBUG_FS=y
CONFIG_BLK_DEBUG_FS_ZONED=y
# CONFIG_BLK_SED_OPAL is not set
@@ -915,6 +890,7 @@ CONFIG_BLK_MQ_PCI=y
CONFIG_BLK_MQ_VIRTIO=y
CONFIG_BLK_MQ_RDMA=y
CONFIG_BLK_PM=y
+CONFIG_BLOCK_HOLDER_DEPRECATED=y
#
# IO Schedulers
@@ -961,7 +937,6 @@ CONFIG_COREDUMP=y
CONFIG_SELECT_MEMORY_MODEL=y
CONFIG_SPARSEMEM_MANUAL=y
CONFIG_SPARSEMEM=y
-CONFIG_NEED_MULTIPLE_NODES=y
CONFIG_SPARSEMEM_EXTREME=y
CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y
CONFIG_SPARSEMEM_VMEMMAP=y
@@ -969,19 +944,24 @@ CONFIG_HAVE_FAST_GUP=y
CONFIG_NUMA_KEEP_MEMINFO=y
CONFIG_MEMORY_ISOLATION=y
CONFIG_HAVE_BOOTMEM_INFO_NODE=y
+CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
CONFIG_MEMORY_HOTPLUG=y
CONFIG_MEMORY_HOTPLUG_SPARSE=y
# CONFIG_MEMORY_HOTPLUG_DEFAULT_ONLINE is not set
+CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
CONFIG_MEMORY_HOTREMOVE=y
+CONFIG_MHP_MEMMAP_ON_MEMORY=y
CONFIG_SPLIT_PTLOCK_CPUS=4
+CONFIG_ARCH_ENABLE_SPLIT_PMD_PTLOCK=y
CONFIG_MEMORY_BALLOON=y
CONFIG_BALLOON_COMPACTION=y
CONFIG_COMPACTION=y
CONFIG_PAGE_REPORTING=y
CONFIG_MIGRATION=y
+CONFIG_ARCH_ENABLE_HUGEPAGE_MIGRATION=y
+CONFIG_ARCH_ENABLE_THP_MIGRATION=y
CONFIG_CONTIG_ALLOC=y
CONFIG_PHYS_ADDR_T_64BIT=y
-CONFIG_BOUNCE=y
CONFIG_VIRT_TO_BUS=y
CONFIG_MMU_NOTIFIER=y
CONFIG_KSM=y
@@ -1001,6 +981,7 @@ CONFIG_FRONTSWAP=y
CONFIG_CMA=y
# CONFIG_CMA_DEBUG is not set
# CONFIG_CMA_DEBUGFS is not set
+# CONFIG_CMA_SYSFS is not set
CONFIG_CMA_AREAS=7
# CONFIG_MEM_SOFT_DIRTY is not set
# CONFIG_ZSWAP is not set
@@ -1012,18 +993,27 @@ CONFIG_ZSMALLOC=y
CONFIG_GENERIC_EARLY_IOREMAP=y
# CONFIG_DEFERRED_STRUCT_PAGE_INIT is not set
# CONFIG_IDLE_PAGE_TRACKING is not set
+CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y
CONFIG_ARCH_HAS_PTE_DEVMAP=y
+CONFIG_ZONE_DMA=y
+CONFIG_ZONE_DMA32=y
# CONFIG_ZONE_DEVICE is not set
CONFIG_HMM_MIRROR=y
CONFIG_VMAP_PFN=y
-CONFIG_FRAME_VECTOR=y
CONFIG_ARCH_USES_HIGH_VMA_FLAGS=y
CONFIG_ARCH_HAS_PKEYS=y
# CONFIG_PERCPU_STATS is not set
-# CONFIG_GUP_BENCHMARK is not set
+# CONFIG_GUP_TEST is not set
# CONFIG_READ_ONLY_THP_FOR_FS is not set
CONFIG_ARCH_HAS_PTE_SPECIAL=y
CONFIG_MAPPING_DIRTY_HELPERS=y
+CONFIG_SECRETMEM=y
+
+#
+# Data Access Monitoring
+#
+# CONFIG_DAMON is not set
+# end of Data Access Monitoring
# end of Memory Management options
CONFIG_NET=y
@@ -1040,6 +1030,7 @@ CONFIG_PACKET=m
CONFIG_PACKET_DIAG=m
CONFIG_UNIX=m
CONFIG_UNIX_SCM=y
+CONFIG_AF_UNIX_OOB=y
CONFIG_UNIX_DIAG=m
CONFIG_TLS=m
# CONFIG_TLS_DEVICE is not set
@@ -1151,6 +1142,7 @@ CONFIG_IPV6_PIMSM_V2=y
CONFIG_IPV6_SEG6_LWTUNNEL=y
CONFIG_IPV6_SEG6_HMAC=y
CONFIG_IPV6_RPL_LWTUNNEL=y
+CONFIG_IPV6_IOAM6_LWTUNNEL=y
# CONFIG_NETLABEL is not set
CONFIG_MPTCP=y
CONFIG_INET_MPTCP_DIAG=m
@@ -1168,13 +1160,13 @@ CONFIG_NETFILTER_INGRESS=y
CONFIG_NETFILTER_NETLINK=m
CONFIG_NETFILTER_FAMILY_BRIDGE=y
CONFIG_NETFILTER_FAMILY_ARP=y
+CONFIG_NETFILTER_NETLINK_HOOK=m
CONFIG_NETFILTER_NETLINK_ACCT=m
CONFIG_NETFILTER_NETLINK_QUEUE=m
CONFIG_NETFILTER_NETLINK_LOG=m
CONFIG_NETFILTER_NETLINK_OSF=m
CONFIG_NF_CONNTRACK=m
-CONFIG_NF_LOG_COMMON=m
-CONFIG_NF_LOG_NETDEV=m
+CONFIG_NF_LOG_SYSLOG=m
CONFIG_NETFILTER_CONNCOUNT=m
CONFIG_NF_CONNTRACK_MARK=y
CONFIG_NF_CONNTRACK_SECMARK=y
@@ -1244,9 +1236,11 @@ CONFIG_NF_DUP_NETDEV=m
CONFIG_NFT_DUP_NETDEV=m
CONFIG_NFT_FWD_NETDEV=m
CONFIG_NFT_FIB_NETDEV=m
+CONFIG_NFT_REJECT_NETDEV=m
CONFIG_NF_FLOW_TABLE_INET=m
CONFIG_NF_FLOW_TABLE=m
CONFIG_NETFILTER_XTABLES=m
+CONFIG_NETFILTER_XTABLES_COMPAT=y
#
# Xtables combined modules
@@ -1386,6 +1380,7 @@ CONFIG_IP_VS_SH=m
CONFIG_IP_VS_MH=m
CONFIG_IP_VS_SED=m
CONFIG_IP_VS_NQ=m
+CONFIG_IP_VS_TWOS=m
#
# IPVS SH scheduler
@@ -1493,7 +1488,6 @@ CONFIG_DECNET_NF_GRABULATOR=m
CONFIG_NF_TABLES_BRIDGE=m
CONFIG_NFT_BRIDGE_META=m
CONFIG_NFT_BRIDGE_REJECT=m
-CONFIG_NF_LOG_BRIDGE=m
CONFIG_NF_CONNTRACK_BRIDGE=m
CONFIG_BRIDGE_NF_EBTABLES=m
CONFIG_BRIDGE_EBT_BROUTE=m
@@ -1571,24 +1565,28 @@ CONFIG_BRIDGE=m
CONFIG_BRIDGE_IGMP_SNOOPING=y
CONFIG_BRIDGE_VLAN_FILTERING=y
# CONFIG_BRIDGE_MRP is not set
-CONFIG_HAVE_NET_DSA=y
+# CONFIG_BRIDGE_CFM is not set
CONFIG_NET_DSA=m
-CONFIG_NET_DSA_TAG_8021Q=m
CONFIG_NET_DSA_TAG_AR9331=m
CONFIG_NET_DSA_TAG_BRCM_COMMON=m
CONFIG_NET_DSA_TAG_BRCM=m
+CONFIG_NET_DSA_TAG_BRCM_LEGACY=m
CONFIG_NET_DSA_TAG_BRCM_PREPEND=m
+CONFIG_NET_DSA_TAG_HELLCREEK=m
CONFIG_NET_DSA_TAG_GSWIP=m
+CONFIG_NET_DSA_TAG_DSA_COMMON=m
CONFIG_NET_DSA_TAG_DSA=m
CONFIG_NET_DSA_TAG_EDSA=m
CONFIG_NET_DSA_TAG_MTK=m
CONFIG_NET_DSA_TAG_KSZ=m
CONFIG_NET_DSA_TAG_RTL4_A=m
CONFIG_NET_DSA_TAG_OCELOT=m
+CONFIG_NET_DSA_TAG_OCELOT_8021Q=m
CONFIG_NET_DSA_TAG_QCA=m
CONFIG_NET_DSA_TAG_LAN9303=m
CONFIG_NET_DSA_TAG_SJA1105=m
CONFIG_NET_DSA_TAG_TRAILER=m
+CONFIG_NET_DSA_TAG_XRS700X=m
CONFIG_VLAN_8021Q=m
CONFIG_VLAN_8021Q_GVRP=y
CONFIG_VLAN_8021Q_MVRP=y
@@ -1726,9 +1724,7 @@ CONFIG_BATMAN_ADV_BLA=y
CONFIG_BATMAN_ADV_DAT=y
CONFIG_BATMAN_ADV_NC=y
CONFIG_BATMAN_ADV_MCAST=y
-CONFIG_BATMAN_ADV_DEBUGFS=y
# CONFIG_BATMAN_ADV_DEBUG is not set
-CONFIG_BATMAN_ADV_SYSFS=y
# CONFIG_BATMAN_ADV_TRACING is not set
CONFIG_OPENVSWITCH=m
CONFIG_OPENVSWITCH_GRE=m
@@ -1755,14 +1751,15 @@ CONFIG_QRTR_SMD=m
CONFIG_QRTR_TUN=m
CONFIG_QRTR_MHI=m
# CONFIG_NET_NCSI is not set
+CONFIG_PCPU_DEV_REFCNT=y
CONFIG_RPS=y
CONFIG_RFS_ACCEL=y
+CONFIG_SOCK_RX_QUEUE_MAPPING=y
CONFIG_XPS=y
CONFIG_CGROUP_NET_PRIO=y
CONFIG_CGROUP_NET_CLASSID=y
CONFIG_NET_RX_BUSY_POLL=y
CONFIG_BQL=y
-CONFIG_BPF_JIT=y
CONFIG_BPF_STREAM_PARSER=y
CONFIG_NET_FLOW_LIMIT=y
@@ -1821,6 +1818,7 @@ CONFIG_CAN_CC770_ISA=m
CONFIG_CAN_CC770_PLATFORM=m
CONFIG_CAN_IFI_CANFD=m
CONFIG_CAN_M_CAN=m
+CONFIG_CAN_M_CAN_PCI=m
CONFIG_CAN_M_CAN_PLATFORM=m
CONFIG_CAN_M_CAN_TCAN4X5X=m
CONFIG_CAN_PEAK_PCIEFD=m
@@ -1853,6 +1851,7 @@ CONFIG_CAN_MCP251XFD=m
CONFIG_CAN_8DEV_USB=m
CONFIG_CAN_EMS_USB=m
CONFIG_CAN_ESD_USB2=m
+CONFIG_CAN_ETAS_ES58X=m
CONFIG_CAN_GS_USB=m
CONFIG_CAN_KVASER_USB=m
CONFIG_CAN_MCBA_USB=m
@@ -1877,6 +1876,7 @@ CONFIG_BT_LE=y
CONFIG_BT_6LOWPAN=m
CONFIG_BT_LEDS=y
CONFIG_BT_MSFTEXT=y
+CONFIG_BT_AOSPEXT=y
CONFIG_BT_DEBUGFS=y
# CONFIG_BT_SELFTEST is not set
# CONFIG_BT_FEATURE_DEBUG is not set
@@ -1920,6 +1920,7 @@ CONFIG_BT_ATH3K=m
CONFIG_BT_MTKSDIO=m
CONFIG_BT_MTKUART=m
CONFIG_BT_HCIRSI=m
+CONFIG_BT_VIRTIO=m
# end of Bluetooth device drivers
CONFIG_AF_RXRPC=m
@@ -1929,6 +1930,7 @@ CONFIG_AF_RXRPC_IPV6=y
# CONFIG_RXKAD is not set
CONFIG_AF_KCM=m
CONFIG_STREAM_PARSER=y
+CONFIG_MCTP=m
CONFIG_FIB_RULES=y
CONFIG_WIRELESS=y
CONFIG_WIRELESS_EXT=y
@@ -1962,8 +1964,6 @@ CONFIG_MAC80211_LEDS=y
# CONFIG_MAC80211_MESSAGE_TRACING is not set
# CONFIG_MAC80211_DEBUG_MENU is not set
CONFIG_MAC80211_STA_HASH_MAX_SIZE=0
-CONFIG_WIMAX=m
-CONFIG_WIMAX_DEBUG_LEVEL=8
CONFIG_RFKILL=m
CONFIG_RFKILL_LEDS=y
CONFIG_RFKILL_INPUT=y
@@ -1994,6 +1994,7 @@ CONFIG_NFC_TRF7970A=m
CONFIG_NFC_MEI_PHY=m
CONFIG_NFC_SIM=m
CONFIG_NFC_PORT100=m
+CONFIG_NFC_VIRTUAL_NCI=m
CONFIG_NFC_FDP=m
CONFIG_NFC_FDP_I2C=m
CONFIG_NFC_PN544=m
@@ -2020,6 +2021,7 @@ CONFIG_NFC_NXP_NCI=m
CONFIG_NFC_NXP_NCI_I2C=m
CONFIG_NFC_S3FWRN5=m
CONFIG_NFC_S3FWRN5_I2C=m
+CONFIG_NFC_S3FWRN82_UART=m
CONFIG_NFC_ST95HF=m
# end of Near Field Communication (NFC) devices
@@ -2029,12 +2031,12 @@ CONFIG_LWTUNNEL=y
CONFIG_LWTUNNEL_BPF=y
CONFIG_DST_CACHE=y
CONFIG_GRO_CELLS=y
+CONFIG_NET_SELFTESTS=m
CONFIG_NET_SOCK_MSG=y
CONFIG_NET_DEVLINK=y
CONFIG_PAGE_POOL=y
CONFIG_FAILOVER=m
CONFIG_ETHTOOL_NETLINK=y
-CONFIG_HAVE_EBPF_JIT=y
#
# Device Drivers
@@ -2111,6 +2113,7 @@ CONFIG_PCI_HYPERV_INTERFACE=m
CONFIG_PCI_ENDPOINT=y
CONFIG_PCI_ENDPOINT_CONFIGFS=y
# CONFIG_PCI_EPF_TEST is not set
+CONFIG_PCI_EPF_NTB=m
# end of PCI Endpoint
#
@@ -2119,6 +2122,11 @@ CONFIG_PCI_ENDPOINT_CONFIGFS=y
CONFIG_PCI_SW_SWITCHTEC=m
# end of PCI switch controller drivers
+CONFIG_CXL_BUS=m
+CONFIG_CXL_MEM=m
+# CONFIG_CXL_MEM_RAW_COMMANDS is not set
+CONFIG_CXL_ACPI=m
+CONFIG_CXL_PMEM=m
CONFIG_PCCARD=m
CONFIG_PCMCIA=m
CONFIG_PCMCIA_LOAD_CIS=y
@@ -2159,6 +2167,7 @@ CONFIG_RAPIDIO_RXS_GEN3=m
#
# Generic Driver Options
#
+CONFIG_AUXILIARY_BUS=y
# CONFIG_UEVENT_HELPER is not set
CONFIG_DEVTMPFS=y
CONFIG_DEVTMPFS_MOUNT=y
@@ -2196,6 +2205,7 @@ CONFIG_REGMAP_W1=m
CONFIG_REGMAP_MMIO=y
CONFIG_REGMAP_IRQ=y
CONFIG_REGMAP_SOUNDWIRE=m
+CONFIG_REGMAP_SOUNDWIRE_MBQ=m
CONFIG_REGMAP_SCCB=m
CONFIG_REGMAP_I3C=m
CONFIG_REGMAP_SPI_AVMM=m
@@ -2208,9 +2218,74 @@ CONFIG_DMA_SHARED_BUFFER=y
#
CONFIG_MHI_BUS=m
# CONFIG_MHI_BUS_DEBUG is not set
+CONFIG_MHI_BUS_PCI_GENERIC=m
# end of Bus devices
CONFIG_CONNECTOR=m
+
+#
+# Firmware Drivers
+#
+
+#
+# ARM System Control and Management Interface Protocol
+#
+# end of ARM System Control and Management Interface Protocol
+
+CONFIG_EDD=m
+# CONFIG_EDD_OFF is not set
+CONFIG_FIRMWARE_MEMMAP=y
+CONFIG_DMIID=y
+CONFIG_DMI_SYSFS=m
+CONFIG_DMI_SCAN_MACHINE_NON_EFI_FALLBACK=y
+CONFIG_ISCSI_IBFT_FIND=y
+CONFIG_ISCSI_IBFT=m
+CONFIG_FW_CFG_SYSFS=m
+# CONFIG_FW_CFG_SYSFS_CMDLINE is not set
+CONFIG_SYSFB=y
+CONFIG_SYSFB_SIMPLEFB=y
+CONFIG_GOOGLE_FIRMWARE=y
+CONFIG_GOOGLE_SMI=m
+CONFIG_GOOGLE_COREBOOT_TABLE=m
+CONFIG_GOOGLE_MEMCONSOLE=m
+CONFIG_GOOGLE_MEMCONSOLE_X86_LEGACY=m
+CONFIG_GOOGLE_FRAMEBUFFER_COREBOOT=m
+CONFIG_GOOGLE_MEMCONSOLE_COREBOOT=m
+CONFIG_GOOGLE_VPD=m
+
+#
+# EFI (Extensible Firmware Interface) Support
+#
+CONFIG_EFI_VARS=m
+CONFIG_EFI_ESRT=y
+CONFIG_EFI_VARS_PSTORE=m
+CONFIG_EFI_VARS_PSTORE_DEFAULT_DISABLE=y
+CONFIG_EFI_RUNTIME_MAP=y
+# CONFIG_EFI_FAKE_MEMMAP is not set
+CONFIG_EFI_SOFT_RESERVE=y
+CONFIG_EFI_RUNTIME_WRAPPERS=y
+CONFIG_EFI_GENERIC_STUB_INITRD_CMDLINE_LOADER=y
+CONFIG_EFI_BOOTLOADER_CONTROL=m
+CONFIG_EFI_CAPSULE_LOADER=m
+CONFIG_EFI_TEST=m
+CONFIG_APPLE_PROPERTIES=y
+CONFIG_RESET_ATTACK_MITIGATION=y
+CONFIG_EFI_RCI2_TABLE=y
+# CONFIG_EFI_DISABLE_PCI_DMA is not set
+# end of EFI (Extensible Firmware Interface) Support
+
+CONFIG_UEFI_CPER=y
+CONFIG_UEFI_CPER_X86=y
+CONFIG_EFI_DEV_PATH_PARSER=y
+CONFIG_EFI_EARLYCON=y
+CONFIG_EFI_CUSTOM_SSDT_OVERLAYS=y
+
+#
+# Tegra firmware driver
+#
+# end of Tegra firmware driver
+# end of Firmware Drivers
+
CONFIG_GNSS=m
CONFIG_GNSS_SERIAL=m
CONFIG_GNSS_MTK_SERIAL=m
@@ -2236,6 +2311,10 @@ CONFIG_MTD_REDBOOT_PARTS_READONLY=y
CONFIG_MTD_BLKDEVS=m
CONFIG_MTD_BLOCK=m
CONFIG_MTD_BLOCK_RO=m
+
+#
+# Note that in some cases UBI block is preferred. See MTD_UBI_BLOCK.
+#
CONFIG_FTL=m
CONFIG_NFTL=m
CONFIG_NFTL_RW=y
@@ -2244,6 +2323,7 @@ CONFIG_RFD_FTL=m
CONFIG_SSFDC=m
CONFIG_SM_FTL=m
CONFIG_MTD_OOPS=m
+CONFIG_MTD_PSTORE=m
CONFIG_MTD_SWAP=m
# CONFIG_MTD_PARTITIONED_MASTER is not set
@@ -2300,6 +2380,7 @@ CONFIG_MTD_DATAFLASH=m
CONFIG_MTD_DATAFLASH_WRITE_VERIFY=y
CONFIG_MTD_DATAFLASH_OTP=y
CONFIG_MTD_MCHP23K256=m
+CONFIG_MTD_MCHP48L640=m
CONFIG_MTD_SST25L=m
CONFIG_MTD_SLRAM=m
CONFIG_MTD_PHRAM=m
@@ -2325,10 +2406,7 @@ CONFIG_MTD_ONENAND_VERIFY_WRITE=y
CONFIG_MTD_ONENAND_GENERIC=m
CONFIG_MTD_ONENAND_OTP=y
CONFIG_MTD_ONENAND_2X_PROGRAM=y
-CONFIG_MTD_NAND_ECC_SW_HAMMING=m
-# CONFIG_MTD_NAND_ECC_SW_HAMMING_SMC is not set
CONFIG_MTD_RAW_NAND=m
-CONFIG_MTD_NAND_ECC_SW_BCH=y
#
# Raw/parallel NAND flash controllers
@@ -2358,6 +2436,9 @@ CONFIG_MTD_SPI_NAND=m
# ECC engine support
#
CONFIG_MTD_NAND_ECC=y
+CONFIG_MTD_NAND_ECC_SW_HAMMING=y
+# CONFIG_MTD_NAND_ECC_SW_HAMMING_SMC is not set
+CONFIG_MTD_NAND_ECC_SW_BCH=y
# end of ECC engine support
# end of NAND
@@ -2370,6 +2451,9 @@ CONFIG_MTD_QINFO_PROBE=m
CONFIG_MTD_SPI_NOR=m
CONFIG_MTD_SPI_NOR_USE_4K_SECTORS=y
+# CONFIG_MTD_SPI_NOR_SWP_DISABLE is not set
+CONFIG_MTD_SPI_NOR_SWP_DISABLE_ON_VOLATILE=y
+# CONFIG_MTD_SPI_NOR_SWP_KEEP is not set
CONFIG_SPI_INTEL_SPI=m
CONFIG_SPI_INTEL_SPI_PCI=m
CONFIG_SPI_INTEL_SPI_PLATFORM=m
@@ -2433,16 +2517,21 @@ CONFIG_PARIDE_ON20=m
CONFIG_PARIDE_ON26=m
CONFIG_BLK_DEV_PCIESSD_MTIP32XX=m
CONFIG_ZRAM=m
+# CONFIG_ZRAM_DEF_COMP_LZORLE is not set
+# CONFIG_ZRAM_DEF_COMP_ZSTD is not set
+CONFIG_ZRAM_DEF_COMP_LZ4=y
+# CONFIG_ZRAM_DEF_COMP_LZO is not set
+# CONFIG_ZRAM_DEF_COMP_LZ4HC is not set
+# CONFIG_ZRAM_DEF_COMP_842 is not set
+CONFIG_ZRAM_DEF_COMP="lz4"
CONFIG_ZRAM_WRITEBACK=y
# CONFIG_ZRAM_MEMORY_TRACKING is not set
-CONFIG_BLK_DEV_UMEM=m
CONFIG_BLK_DEV_LOOP=y
CONFIG_BLK_DEV_LOOP_MIN_COUNT=8
CONFIG_BLK_DEV_CRYPTOLOOP=m
CONFIG_BLK_DEV_DRBD=m
# CONFIG_DRBD_FAULT_INJECTION is not set
CONFIG_BLK_DEV_NBD=m
-CONFIG_BLK_DEV_SKD=m
CONFIG_BLK_DEV_SX8=m
CONFIG_BLK_DEV_RAM=m
CONFIG_BLK_DEV_RAM_COUNT=16
@@ -2504,10 +2593,10 @@ CONFIG_DS1682=m
CONFIG_VMWARE_BALLOON=m
CONFIG_LATTICE_ECP3_CONFIG=m
CONFIG_SRAM=y
+CONFIG_DW_XDATA_PCIE=m
CONFIG_PCI_ENDPOINT_TEST=m
CONFIG_XILINX_SDFEC=m
CONFIG_MISC_RTSX=m
-CONFIG_PVPANIC=m
# CONFIG_C2PORT is not set
#
@@ -2547,21 +2636,22 @@ CONFIG_VMWARE_VMCI=m
CONFIG_GENWQE=m
CONFIG_GENWQE_PLATFORM_ERROR_RECOVERY=0
CONFIG_ECHO=m
+CONFIG_BCM_VK=m
+# CONFIG_BCM_VK_TTY is not set
CONFIG_MISC_ALCOR_PCI=m
CONFIG_MISC_RTSX_PCI=m
CONFIG_MISC_RTSX_USB=m
CONFIG_HABANA_AI=m
CONFIG_UACCE=m
+# CONFIG_PVPANIC is not set
# end of Misc devices
-CONFIG_HAVE_IDE=y
-# CONFIG_IDE is not set
-
#
# SCSI device support
#
CONFIG_SCSI_MOD=m
CONFIG_RAID_ATTRS=m
+CONFIG_SCSI_COMMON=y
CONFIG_SCSI=m
CONFIG_SCSI_DMA=y
CONFIG_SCSI_NETLINK=y
@@ -2574,6 +2664,7 @@ CONFIG_BLK_DEV_SD=m
CONFIG_CHR_DEV_ST=m
CONFIG_BLK_DEV_SR=m
CONFIG_CHR_DEV_SG=m
+CONFIG_BLK_DEV_BSG=y
CONFIG_CHR_DEV_SCH=m
CONFIG_SCSI_ENCLOSURE=m
CONFIG_SCSI_CONSTANTS=y
@@ -2638,6 +2729,7 @@ CONFIG_SCSI_MPT3SAS=m
CONFIG_SCSI_MPT2SAS_MAX_SGE=128
CONFIG_SCSI_MPT3SAS_MAX_SGE=128
CONFIG_SCSI_MPT2SAS=m
+CONFIG_SCSI_MPI3MR=m
CONFIG_SCSI_SMARTPQI=m
CONFIG_SCSI_UFSHCD=m
CONFIG_SCSI_UFSHCD_PCI=m
@@ -2646,6 +2738,7 @@ CONFIG_SCSI_UFSHCD_PLATFORM=m
CONFIG_SCSI_UFS_CDNS_PLATFORM=m
CONFIG_SCSI_UFS_DWC_TC_PLATFORM=m
# CONFIG_SCSI_UFS_BSG is not set
+# CONFIG_SCSI_UFS_HPB is not set
CONFIG_SCSI_HPTIOP=m
CONFIG_SCSI_BUSLOGIC=m
CONFIG_SCSI_FLASHPOINT=y
@@ -2662,7 +2755,6 @@ CONFIG_SCSI_SNIC=m
CONFIG_SCSI_DMX3191D=m
CONFIG_SCSI_FDOMAIN=m
CONFIG_SCSI_FDOMAIN_PCI=m
-CONFIG_SCSI_GDTH=m
CONFIG_SCSI_ISCI=m
CONFIG_SCSI_IPS=m
CONFIG_SCSI_INITIO=m
@@ -2689,6 +2781,7 @@ CONFIG_QEDI=m
CONFIG_QEDF=m
CONFIG_SCSI_LPFC=m
# CONFIG_SCSI_LPFC_DEBUG_FS is not set
+CONFIG_SCSI_EFCT=m
CONFIG_SCSI_DC395x=m
CONFIG_SCSI_AM53C974=m
CONFIG_SCSI_WD719X=m
@@ -2848,6 +2941,7 @@ CONFIG_DM_MULTIPATH=m
CONFIG_DM_MULTIPATH_QL=m
CONFIG_DM_MULTIPATH_ST=m
CONFIG_DM_MULTIPATH_HST=m
+CONFIG_DM_MULTIPATH_IOA=m
CONFIG_DM_DELAY=m
CONFIG_DM_DUST=m
CONFIG_DM_UEVENT=y
@@ -2932,6 +3026,7 @@ CONFIG_VIRTIO_NET=m
CONFIG_NLMON=m
CONFIG_NET_VRF=m
CONFIG_VSOCKMON=m
+CONFIG_MHI_NET=m
CONFIG_SUNGEM_PHY=m
CONFIG_ARCNET=m
CONFIG_ARCNET_1201=m
@@ -2987,6 +3082,7 @@ CONFIG_B53_SRAB_DRIVER=m
CONFIG_B53_SERDES=m
CONFIG_NET_DSA_BCM_SF2=m
CONFIG_NET_DSA_LOOP=m
+CONFIG_NET_DSA_HIRSCHMANN_HELLCREEK=m
CONFIG_NET_DSA_LANTIQ_GSWIP=m
CONFIG_NET_DSA_MT7530=m
CONFIG_NET_DSA_MV88E6060=m
@@ -2996,8 +3092,8 @@ CONFIG_NET_DSA_MICROCHIP_KSZ9477_I2C=m
CONFIG_NET_DSA_MICROCHIP_KSZ9477_SPI=m
CONFIG_NET_DSA_MICROCHIP_KSZ8795=m
CONFIG_NET_DSA_MICROCHIP_KSZ8795_SPI=m
+CONFIG_NET_DSA_MICROCHIP_KSZ8863_SMI=m
CONFIG_NET_DSA_MV88E6XXX=m
-CONFIG_NET_DSA_MV88E6XXX_GLOBAL2=y
CONFIG_NET_DSA_MV88E6XXX_PTP=y
CONFIG_NET_DSA_MSCC_SEVILLE=m
CONFIG_NET_DSA_AR9331=m
@@ -3005,6 +3101,9 @@ CONFIG_NET_DSA_SJA1105=m
CONFIG_NET_DSA_SJA1105_PTP=y
CONFIG_NET_DSA_SJA1105_TAS=y
# CONFIG_NET_DSA_SJA1105_VL is not set
+CONFIG_NET_DSA_XRS700X=m
+CONFIG_NET_DSA_XRS700X_I2C=m
+CONFIG_NET_DSA_XRS700X_MDIO=m
CONFIG_NET_DSA_QCA8K=m
CONFIG_NET_DSA_REALTEK_SMI=m
CONFIG_NET_DSA_SMSC_LAN9303=m
@@ -3050,8 +3149,6 @@ CONFIG_ATL1=m
CONFIG_ATL1E=m
CONFIG_ATL1C=m
CONFIG_ALX=m
-CONFIG_NET_VENDOR_AURORA=y
-CONFIG_AURORA_NB8800=m
CONFIG_NET_VENDOR_BROADCOM=y
CONFIG_B44=m
CONFIG_B44_PCI_AUTOSELECT=y
@@ -3157,7 +3254,10 @@ CONFIG_I40EVF=m
CONFIG_ICE=m
CONFIG_FM10K=m
CONFIG_IGC=m
+CONFIG_NET_VENDOR_MICROSOFT=y
+CONFIG_MICROSOFT_MANA=m
CONFIG_JME=m
+CONFIG_NET_VENDOR_LITEX=y
CONFIG_NET_VENDOR_MARVELL=y
CONFIG_MVMDIO=m
CONFIG_SKGE=m
@@ -3183,8 +3283,6 @@ CONFIG_MLXSW_CORE_HWMON=y
CONFIG_MLXSW_CORE_THERMAL=y
CONFIG_MLXSW_PCI=m
CONFIG_MLXSW_I2C=m
-CONFIG_MLXSW_SWITCHIB=m
-CONFIG_MLXSW_SWITCHX2=m
CONFIG_MLXSW_SPECTRUM=m
CONFIG_MLXSW_SPECTRUM_DCB=y
CONFIG_MLXSW_MINIMAL=m
@@ -3292,6 +3390,7 @@ CONFIG_STMMAC_ETH=m
CONFIG_STMMAC_PLATFORM=m
CONFIG_DWMAC_GENERIC=m
CONFIG_DWMAC_INTEL=m
+CONFIG_DWMAC_LOONGSON=m
CONFIG_STMMAC_PCI=m
CONFIG_NET_VENDOR_SUN=y
CONFIG_HAPPYMEAL=m
@@ -3318,13 +3417,13 @@ CONFIG_WIZNET_W5300=m
CONFIG_WIZNET_BUS_ANY=y
CONFIG_WIZNET_W5100_SPI=m
CONFIG_NET_VENDOR_XILINX=y
+CONFIG_XILINX_EMACLITE=m
CONFIG_XILINX_AXI_EMAC=m
CONFIG_XILINX_LL_TEMAC=m
CONFIG_NET_VENDOR_XIRCOM=y
CONFIG_PCMCIA_XIRC2PS=m
CONFIG_FDDI=m
CONFIG_DEFXX=m
-# CONFIG_DEFXX_MMIO is not set
CONFIG_SKFP=m
CONFIG_HIPPI=y
CONFIG_ROADRUNNER=m
@@ -3359,11 +3458,16 @@ CONFIG_INTEL_XWAY_PHY=m
CONFIG_LSI_ET1011C_PHY=m
CONFIG_MARVELL_PHY=m
CONFIG_MARVELL_10G_PHY=m
+CONFIG_MARVELL_88X2222_PHY=m
+CONFIG_MAXLINEAR_GPHY=m
+CONFIG_MEDIATEK_GE_PHY=m
CONFIG_MICREL_PHY=m
CONFIG_MICROCHIP_PHY=m
CONFIG_MICROCHIP_T1_PHY=m
CONFIG_MICROSEMI_PHY=m
+CONFIG_MOTORCOMM_PHY=m
CONFIG_NATIONAL_PHY=m
+CONFIG_NXP_C45_TJA11XX_PHY=m
CONFIG_NXP_TJA11XX_PHY=m
CONFIG_AT803X_PHY=m
CONFIG_QSEMI_PHY=m
@@ -3381,8 +3485,14 @@ CONFIG_DP83869_PHY=m
CONFIG_VITESSE_PHY=m
CONFIG_XILINX_GMII2RGMII=m
CONFIG_MICREL_KS8995MA=m
+
+#
+# MCTP Device Drivers
+#
CONFIG_MDIO_DEVICE=m
CONFIG_MDIO_BUS=m
+CONFIG_FWNODE_MDIO=m
+CONFIG_ACPI_MDIO=m
CONFIG_MDIO_DEVRES=m
CONFIG_MDIO_BITBANG=m
CONFIG_MDIO_BCM_UNIMAC=m
@@ -3471,6 +3581,7 @@ CONFIG_USB_SIERRA_NET=m
CONFIG_USB_VL600=m
CONFIG_USB_NET_CH9200=m
CONFIG_USB_NET_AQC111=m
+CONFIG_USB_RTL8153_ECM=m
CONFIG_WLAN=y
CONFIG_WLAN_VENDOR_ADMTEK=y
CONFIG_ADM8211=m
@@ -3633,7 +3744,6 @@ CONFIG_P54_PCI=m
CONFIG_P54_SPI=m
CONFIG_P54_SPI_DEFAULT_EEPROM=y
CONFIG_P54_LEDS=y
-CONFIG_PRISM54=m
CONFIG_WLAN_VENDOR_MARVELL=y
CONFIG_LIBERTAS=m
CONFIG_LIBERTAS_USB=m
@@ -3658,6 +3768,7 @@ CONFIG_MT76_USB=m
CONFIG_MT76_SDIO=m
CONFIG_MT76x02_LIB=m
CONFIG_MT76x02_USB=m
+CONFIG_MT76_CONNAC_LIB=m
CONFIG_MT76x0_COMMON=m
CONFIG_MT76x0U=m
CONFIG_MT76x0E=m
@@ -3671,6 +3782,7 @@ CONFIG_MT7663_USB_SDIO_COMMON=m
CONFIG_MT7663U=m
CONFIG_MT7663S=m
CONFIG_MT7915E=m
+CONFIG_MT7921E=m
CONFIG_WLAN_VENDOR_MICROCHIP=y
CONFIG_WILC1000=m
CONFIG_WILC1000_SDIO=m
@@ -3772,15 +3884,6 @@ CONFIG_PCMCIA_WL3501=m
# CONFIG_MAC80211_HWSIM is not set
CONFIG_USB_NET_RNDIS_WLAN=m
CONFIG_VIRT_WIFI=m
-
-#
-# WiMAX Wireless Broadband devices
-#
-CONFIG_WIMAX_I2400M=m
-CONFIG_WIMAX_I2400M_USB=m
-CONFIG_WIMAX_I2400M_DEBUG_LEVEL=8
-# end of WiMAX Wireless Broadband devices
-
CONFIG_WAN=y
CONFIG_LANMEDIA=m
CONFIG_HDLC=m
@@ -3794,12 +3897,7 @@ CONFIG_PCI200SYN=m
CONFIG_WANXL=m
CONFIG_PC300TOO=m
CONFIG_FARSYNC=m
-CONFIG_DLCI=m
-CONFIG_DLCI_MAX=8
CONFIG_LAPBETHER=m
-CONFIG_X25_ASY=m
-CONFIG_SBNI=m
-CONFIG_SBNI_MULTILINE=y
CONFIG_IEEE802154_DRIVERS=m
CONFIG_IEEE802154_FAKELB=m
CONFIG_IEEE802154_AT86RF230=m
@@ -3812,6 +3910,18 @@ CONFIG_IEEE802154_CA8210=m
# CONFIG_IEEE802154_CA8210_DEBUGFS is not set
CONFIG_IEEE802154_MCR20A=m
CONFIG_IEEE802154_HWSIM=m
+
+#
+# Wireless WAN
+#
+CONFIG_WWAN=m
+CONFIG_WWAN_HWSIM=m
+CONFIG_MHI_WWAN_CTRL=m
+CONFIG_MHI_WWAN_MBIM=m
+CONFIG_RPMSG_WWAN_CTRL=m
+CONFIG_IOSM=m
+# end of Wireless WAN
+
CONFIG_VMXNET3=m
CONFIG_FUJITSU_ES=m
CONFIG_USB4_NET=m
@@ -3840,9 +3950,6 @@ CONFIG_MISDN_NETJET=m
CONFIG_MISDN_HDLC=m
CONFIG_MISDN_IPAC=m
CONFIG_MISDN_ISAR=m
-CONFIG_NVM=y
-CONFIG_NVM_PBLK=m
-# CONFIG_NVM_PBLK_DEBUG is not set
#
# Input device support
@@ -3850,7 +3957,6 @@ CONFIG_NVM_PBLK=m
CONFIG_INPUT=y
CONFIG_INPUT_LEDS=m
CONFIG_INPUT_FF_MEMLESS=m
-CONFIG_INPUT_POLLDEV=m
CONFIG_INPUT_SPARSEKMAP=m
CONFIG_INPUT_MATRIXKMAP=m
@@ -3892,6 +3998,7 @@ CONFIG_KEYBOARD_MPR121=m
CONFIG_KEYBOARD_NEWTON=m
CONFIG_KEYBOARD_OPENCORES=m
CONFIG_KEYBOARD_SAMSUNG=m
+# CONFIG_KEYBOARD_GOLDFISH_EVENTS is not set
CONFIG_KEYBOARD_STOWAWAY=m
CONFIG_KEYBOARD_SUNKBD=m
CONFIG_KEYBOARD_IQS62X=m
@@ -3962,17 +4069,16 @@ CONFIG_JOYSTICK_WALKERA0701=m
CONFIG_JOYSTICK_PSXPAD_SPI=m
CONFIG_JOYSTICK_PSXPAD_SPI_FF=y
CONFIG_JOYSTICK_PXRC=m
+CONFIG_JOYSTICK_QWIIC=m
CONFIG_JOYSTICK_FSIA6B=m
CONFIG_INPUT_TABLET=y
CONFIG_TABLET_USB_ACECAD=m
CONFIG_TABLET_USB_AIPTEK=m
-CONFIG_TABLET_USB_GTCO=m
CONFIG_TABLET_USB_HANWANG=m
CONFIG_TABLET_USB_KBTAB=m
CONFIG_TABLET_USB_PEGASUS=m
CONFIG_TABLET_SERIAL_WACOM4=m
CONFIG_INPUT_TOUCHSCREEN=y
-CONFIG_TOUCHSCREEN_PROPERTIES=y
CONFIG_TOUCHSCREEN_ADS7846=m
CONFIG_TOUCHSCREEN_AD7877=m
CONFIG_TOUCHSCREEN_AD7879=m
@@ -4002,7 +4108,9 @@ CONFIG_TOUCHSCREEN_EXC3000=m
CONFIG_TOUCHSCREEN_FUJITSU=m
CONFIG_TOUCHSCREEN_GOODIX=m
CONFIG_TOUCHSCREEN_HIDEEP=m
+CONFIG_TOUCHSCREEN_HYCON_HY46XX=m
CONFIG_TOUCHSCREEN_ILI210X=m
+CONFIG_TOUCHSCREEN_ILITEK=m
CONFIG_TOUCHSCREEN_S6SY761=m
CONFIG_TOUCHSCREEN_GUNZE=m
CONFIG_TOUCHSCREEN_EKTF2127=m
@@ -4014,6 +4122,7 @@ CONFIG_TOUCHSCREEN_MAX11801=m
CONFIG_TOUCHSCREEN_MCS5000=m
CONFIG_TOUCHSCREEN_MMS114=m
CONFIG_TOUCHSCREEN_MELFAS_MIP4=m
+CONFIG_TOUCHSCREEN_MSG2638=m
CONFIG_TOUCHSCREEN_MTOUCH=m
CONFIG_TOUCHSCREEN_INEXIO=m
CONFIG_TOUCHSCREEN_MK712=m
@@ -4078,6 +4187,7 @@ CONFIG_INPUT_AD714X=m
CONFIG_INPUT_AD714X_I2C=m
CONFIG_INPUT_AD714X_SPI=m
CONFIG_INPUT_ARIZONA_HAPTICS=m
+CONFIG_INPUT_ATC260X_ONKEY=m
CONFIG_INPUT_BMA150=m
CONFIG_INPUT_E3X0_BUTTON=m
CONFIG_INPUT_PCSPKR=m
@@ -4104,6 +4214,7 @@ CONFIG_INPUT_PCF8574=m
CONFIG_INPUT_PWM_BEEPER=m
CONFIG_INPUT_PWM_VIBRA=m
CONFIG_INPUT_GPIO_ROTARY_ENCODER=m
+CONFIG_INPUT_DA7280_HAPTICS=m
CONFIG_INPUT_DA9052_ONKEY=m
CONFIG_INPUT_DA9063_ONKEY=m
CONFIG_INPUT_WM831X_ON=m
@@ -4113,6 +4224,7 @@ CONFIG_INPUT_ADXL34X_I2C=m
CONFIG_INPUT_ADXL34X_SPI=m
CONFIG_INPUT_IMS_PCU=m
CONFIG_INPUT_IQS269A=m
+CONFIG_INPUT_IQS626A=m
CONFIG_INPUT_CMA3000=m
CONFIG_INPUT_CMA3000_I2C=m
CONFIG_INPUT_IDEAPAD_SLIDEBAR=m
@@ -4221,11 +4333,12 @@ CONFIG_SERIAL_SC16IS7XX_CORE=m
CONFIG_SERIAL_SC16IS7XX=m
CONFIG_SERIAL_SC16IS7XX_I2C=y
CONFIG_SERIAL_SC16IS7XX_SPI=y
+CONFIG_SERIAL_BCM63XX=y
+CONFIG_SERIAL_BCM63XX_CONSOLE=y
CONFIG_SERIAL_ALTERA_JTAGUART=m
CONFIG_SERIAL_ALTERA_UART=m
CONFIG_SERIAL_ALTERA_UART_MAXPORTS=4
CONFIG_SERIAL_ALTERA_UART_BAUDRATE=115200
-CONFIG_SERIAL_IFX6X60=m
CONFIG_SERIAL_ARC=m
CONFIG_SERIAL_ARC_NR_PORTS=1
CONFIG_SERIAL_RP2=m
@@ -4238,21 +4351,14 @@ CONFIG_SERIAL_SPRD=m
CONFIG_SERIAL_MCTRL_GPIO=y
CONFIG_SERIAL_NONSTANDARD=y
-CONFIG_ROCKETPORT=m
-CONFIG_CYCLADES=m
-CONFIG_CYZ_INTR=y
CONFIG_MOXA_INTELLIO=m
CONFIG_MOXA_SMARTIO=m
-CONFIG_SYNCLINK=m
-CONFIG_SYNCLINKMP=m
CONFIG_SYNCLINK_GT=m
-CONFIG_ISI=m
CONFIG_N_HDLC=m
+# CONFIG_GOLDFISH_TTY is not set
CONFIG_N_GSM=m
CONFIG_NOZOMI=m
CONFIG_NULL_TTY=m
-CONFIG_TRACE_ROUTER=m
-CONFIG_TRACE_SINK=m
CONFIG_HVC_DRIVER=y
CONFIG_SERIAL_DEV_BUS=m
CONFIG_PRINTER=m
@@ -4292,10 +4398,7 @@ CONFIG_IPWIRELESS=m
CONFIG_MWAVE=m
CONFIG_DEVMEM=y
-# CONFIG_DEVKMEM is not set
CONFIG_NVRAM=m
-CONFIG_RAW_DRIVER=m
-CONFIG_MAX_RAW_DEVS=256
CONFIG_DEVPORT=y
CONFIG_HPET=y
CONFIG_HPET_MMAP=y
@@ -4307,6 +4410,7 @@ CONFIG_TCG_TIS_CORE=m
CONFIG_TCG_TIS=m
CONFIG_TCG_TIS_SPI=m
# CONFIG_TCG_TIS_SPI_CR50 is not set
+CONFIG_TCG_TIS_I2C_CR50=m
CONFIG_TCG_TIS_I2C_ATMEL=m
CONFIG_TCG_TIS_I2C_INFINEON=m
CONFIG_TCG_TIS_I2C_NUVOTON=m
@@ -4319,12 +4423,13 @@ CONFIG_TCG_TIS_ST33ZP24=m
CONFIG_TCG_TIS_ST33ZP24_I2C=m
CONFIG_TCG_TIS_ST33ZP24_SPI=m
CONFIG_TELCLOCK=m
+CONFIG_XILLYBUS_CLASS=m
CONFIG_XILLYBUS=m
CONFIG_XILLYBUS_PCIE=m
-# end of Character devices
-
+CONFIG_XILLYUSB=m
CONFIG_RANDOM_TRUST_CPU=y
CONFIG_RANDOM_TRUST_BOOTLOADER=y
+# end of Character devices
#
# I2C support
@@ -4406,6 +4511,7 @@ CONFIG_I2C_XILINX=m
#
CONFIG_I2C_DIOLAN_U2C=m
CONFIG_I2C_DLN2=m
+CONFIG_I2C_CP2615=m
CONFIG_I2C_PARPORT=m
CONFIG_I2C_ROBOTFUZZ_OSIF=m
CONFIG_I2C_TAOS_EVM=m
@@ -4417,6 +4523,7 @@ CONFIG_I2C_VIPERBOARD=m
#
CONFIG_I2C_MLXCPLD=m
CONFIG_I2C_CROS_EC_TUNNEL=m
+CONFIG_I2C_VIRTIO=m
# end of I2C Hardware Bus support
# CONFIG_I2C_STUB is not set
@@ -4431,6 +4538,8 @@ CONFIG_I2C_SLAVE_TESTUNIT=m
CONFIG_I3C=m
CONFIG_CDNS_I3C_MASTER=m
CONFIG_DW_I3C_MASTER=m
+CONFIG_SVC_I3C_MASTER=m
+# CONFIG_MIPI_I3C_HCI is not set
CONFIG_SPI=y
# CONFIG_SPI_DEBUG is not set
CONFIG_SPI_MASTER=y
@@ -4440,6 +4549,8 @@ CONFIG_SPI_MEM=y
# SPI Master Controller Drivers
#
CONFIG_SPI_ALTERA=m
+CONFIG_SPI_ALTERA_CORE=m
+CONFIG_SPI_ALTERA_DFL=m
CONFIG_SPI_AXI_SPI_ENGINE=m
CONFIG_SPI_BITBANG=m
CONFIG_SPI_BUTTERFLY=m
@@ -4481,6 +4592,7 @@ CONFIG_SPI_SLAVE_TIME=m
CONFIG_SPI_SLAVE_SYSTEM_CONTROL=m
CONFIG_SPI_DYNAMIC=y
CONFIG_SPMI=m
+CONFIG_SPMI_HISI3670=m
CONFIG_HSI=m
CONFIG_HSI_BOARDINFO=y
@@ -4511,12 +4623,14 @@ CONFIG_PPS_CLIENT_GPIO=m
# PTP clock support
#
CONFIG_PTP_1588_CLOCK=y
+CONFIG_PTP_1588_CLOCK_OPTIONAL=y
CONFIG_DP83640_PHY=m
CONFIG_PTP_1588_CLOCK_INES=m
CONFIG_PTP_1588_CLOCK_KVM=m
CONFIG_PTP_1588_CLOCK_IDT82P33=m
CONFIG_PTP_1588_CLOCK_IDTCM=m
CONFIG_PTP_1588_CLOCK_VMW=m
+CONFIG_PTP_1588_CLOCK_OCP=m
# end of PTP clock support
CONFIG_PINCTRL=y
@@ -4533,14 +4647,17 @@ CONFIG_PINCTRL_BAYTRAIL=y
CONFIG_PINCTRL_CHERRYVIEW=m
CONFIG_PINCTRL_LYNXPOINT=m
CONFIG_PINCTRL_INTEL=y
+CONFIG_PINCTRL_ALDERLAKE=m
CONFIG_PINCTRL_BROXTON=m
CONFIG_PINCTRL_CANNONLAKE=m
CONFIG_PINCTRL_CEDARFORK=m
CONFIG_PINCTRL_DENVERTON=m
+CONFIG_PINCTRL_ELKHARTLAKE=m
CONFIG_PINCTRL_EMMITSBURG=m
CONFIG_PINCTRL_GEMINILAKE=m
CONFIG_PINCTRL_ICELAKE=m
CONFIG_PINCTRL_JASPERLAKE=m
+CONFIG_PINCTRL_LAKEFIELD=m
CONFIG_PINCTRL_LEWISBURG=m
CONFIG_PINCTRL_SUNRISEPOINT=m
CONFIG_PINCTRL_TIGERLAKE=m
@@ -4561,7 +4678,6 @@ CONFIG_GPIOLIB_FASTPATH_LIMIT=512
CONFIG_GPIO_ACPI=y
CONFIG_GPIOLIB_IRQCHIP=y
# CONFIG_DEBUG_GPIO is not set
-CONFIG_GPIO_SYSFS=y
CONFIG_GPIO_CDEV=y
CONFIG_GPIO_CDEV_V1=y
CONFIG_GPIO_GENERIC=m
@@ -4579,7 +4695,6 @@ CONFIG_GPIO_MB86S7X=m
CONFIG_GPIO_MENZ127=m
CONFIG_GPIO_SIOX=m
CONFIG_GPIO_VX855=m
-CONFIG_GPIO_XILINX=m
CONFIG_GPIO_AMD_FCH=m
# end of Memory mapped GPIO drivers
@@ -4621,6 +4736,7 @@ CONFIG_GPIO_LP873X=m
CONFIG_GPIO_MADERA=m
CONFIG_GPIO_TPS65086=m
CONFIG_GPIO_TPS65912=m
+# CONFIG_GPIO_TPS68470 is not set
CONFIG_GPIO_TQMX86=m
CONFIG_GPIO_UCB1400=m
CONFIG_GPIO_WHISKEY_COVE=m
@@ -4654,8 +4770,14 @@ CONFIG_GPIO_XRA1403=m
CONFIG_GPIO_VIPERBOARD=m
# end of USB GPIO expanders
+#
+# Virtual GPIO drivers
+#
CONFIG_GPIO_AGGREGATOR=m
CONFIG_GPIO_MOCKUP=m
+CONFIG_GPIO_VIRTIO=m
+# end of Virtual GPIO drivers
+
CONFIG_W1=m
CONFIG_W1_CON=y
@@ -4695,8 +4817,10 @@ CONFIG_W1_SLAVE_DS28E17=m
# end of 1-wire Slaves
CONFIG_POWER_RESET=y
+CONFIG_POWER_RESET_ATC260X=m
CONFIG_POWER_RESET_MT6323=y
# CONFIG_POWER_RESET_RESTART is not set
+CONFIG_POWER_RESET_TPS65086=y
CONFIG_POWER_SUPPLY=y
# CONFIG_POWER_SUPPLY_DEBUG is not set
CONFIG_POWER_SUPPLY_HWMON=y
@@ -4736,9 +4860,11 @@ CONFIG_CHARGER_LP8727=m
CONFIG_CHARGER_GPIO=m
CONFIG_CHARGER_MANAGER=y
CONFIG_CHARGER_LT3651=m
+CONFIG_CHARGER_LTC4162L=m
CONFIG_CHARGER_MAX14577=m
CONFIG_CHARGER_MAX77693=m
CONFIG_CHARGER_MP2629=m
+CONFIG_CHARGER_MT6360=m
CONFIG_CHARGER_BQ2415X=m
CONFIG_CHARGER_BQ24190=m
CONFIG_CHARGER_BQ24257=m
@@ -4746,13 +4872,18 @@ CONFIG_CHARGER_BQ24735=m
CONFIG_CHARGER_BQ2515X=m
CONFIG_CHARGER_BQ25890=m
CONFIG_CHARGER_BQ25980=m
+CONFIG_CHARGER_BQ256XX=m
CONFIG_CHARGER_SMB347=m
CONFIG_BATTERY_GAUGE_LTC2941=m
+CONFIG_BATTERY_GOLDFISH=m
CONFIG_BATTERY_RT5033=m
CONFIG_CHARGER_RT9455=m
CONFIG_CHARGER_CROS_USBPD=m
+CONFIG_CHARGER_CROS_PCHG=m
CONFIG_CHARGER_BD99954=m
CONFIG_CHARGER_WILCO=m
+CONFIG_BATTERY_SURFACE=m
+CONFIG_CHARGER_SURFACE=m
CONFIG_HWMON=y
CONFIG_HWMON_VID=m
# CONFIG_HWMON_DEBUG_CHIP is not set
@@ -4779,18 +4910,20 @@ CONFIG_SENSORS_ADT7411=m
CONFIG_SENSORS_ADT7462=m
CONFIG_SENSORS_ADT7470=m
CONFIG_SENSORS_ADT7475=m
+CONFIG_SENSORS_AHT10=m
+CONFIG_SENSORS_AQUACOMPUTER_D5NEXT=m
CONFIG_SENSORS_AS370=m
CONFIG_SENSORS_ASC7621=m
CONFIG_SENSORS_AXI_FAN_CONTROL=m
CONFIG_SENSORS_K8TEMP=m
CONFIG_SENSORS_K10TEMP=m
CONFIG_SENSORS_FAM15H_POWER=m
-CONFIG_SENSORS_AMD_ENERGY=m
CONFIG_SENSORS_APPLESMC=m
CONFIG_SENSORS_ASB100=m
CONFIG_SENSORS_ASPEED=m
CONFIG_SENSORS_ATXP1=m
CONFIG_SENSORS_CORSAIR_CPRO=m
+CONFIG_SENSORS_CORSAIR_PSU=m
CONFIG_SENSORS_DRIVETEMP=m
CONFIG_SENSORS_DS620=m
CONFIG_SENSORS_DS1621=m
@@ -4822,6 +4955,7 @@ CONFIG_SENSORS_LTC2947=m
CONFIG_SENSORS_LTC2947_I2C=m
CONFIG_SENSORS_LTC2947_SPI=m
CONFIG_SENSORS_LTC2990=m
+CONFIG_SENSORS_LTC2992=m
CONFIG_SENSORS_LTC4151=m
CONFIG_SENSORS_LTC4215=m
CONFIG_SENSORS_LTC4222=m
@@ -4829,6 +4963,7 @@ CONFIG_SENSORS_LTC4245=m
CONFIG_SENSORS_LTC4260=m
CONFIG_SENSORS_LTC4261=m
CONFIG_SENSORS_MAX1111=m
+CONFIG_SENSORS_MAX127=m
CONFIG_SENSORS_MAX16065=m
CONFIG_SENSORS_MAX1619=m
CONFIG_SENSORS_MAX1668=m
@@ -4844,6 +4979,7 @@ CONFIG_SENSORS_MAX31790=m
CONFIG_SENSORS_MCP3021=m
CONFIG_SENSORS_MLXREG_FAN=m
CONFIG_SENSORS_TC654=m
+CONFIG_SENSORS_TPS23861=m
CONFIG_SENSORS_MENF21BMC_HWMON=m
CONFIG_SENSORS_MR75203=m
CONFIG_SENSORS_ADCXX=m
@@ -4871,15 +5007,20 @@ CONFIG_SENSORS_NCT6775=m
CONFIG_SENSORS_NCT7802=m
CONFIG_SENSORS_NCT7904=m
CONFIG_SENSORS_NPCM7XX=m
+CONFIG_SENSORS_NZXT_KRAKEN2=m
CONFIG_SENSORS_PCF8591=m
CONFIG_PMBUS=m
CONFIG_SENSORS_PMBUS=m
CONFIG_SENSORS_ADM1266=m
CONFIG_SENSORS_ADM1275=m
CONFIG_SENSORS_BEL_PFE=m
+CONFIG_SENSORS_BPA_RS600=m
+CONFIG_SENSORS_FSP_3Y=m
CONFIG_SENSORS_IBM_CFFPS=m
+CONFIG_SENSORS_DPS920AB=m
CONFIG_SENSORS_INSPUR_IPSPS=m
CONFIG_SENSORS_IR35221=m
+CONFIG_SENSORS_IR36021=m
CONFIG_SENSORS_IR38064=m
CONFIG_SENSORS_IRPS5401=m
CONFIG_SENSORS_ISL68137=m
@@ -4887,6 +5028,7 @@ CONFIG_SENSORS_LM25066=m
CONFIG_SENSORS_LTC2978=m
CONFIG_SENSORS_LTC2978_REGULATOR=y
CONFIG_SENSORS_LTC3815=m
+CONFIG_SENSORS_MAX15301=m
CONFIG_SENSORS_MAX16064=m
CONFIG_SENSORS_MAX16601=m
CONFIG_SENSORS_MAX20730=m
@@ -4894,8 +5036,13 @@ CONFIG_SENSORS_MAX20751=m
CONFIG_SENSORS_MAX31785=m
CONFIG_SENSORS_MAX34440=m
CONFIG_SENSORS_MAX8688=m
+CONFIG_SENSORS_MP2888=m
CONFIG_SENSORS_MP2975=m
+CONFIG_SENSORS_PIM4328=m
+CONFIG_SENSORS_PM6764TR=m
CONFIG_SENSORS_PXE1610=m
+CONFIG_SENSORS_Q54SJ108A2=m
+CONFIG_SENSORS_STPDDC60=m
CONFIG_SENSORS_TPS40422=m
CONFIG_SENSORS_TPS53679=m
CONFIG_SENSORS_UCD9000=m
@@ -4903,9 +5050,11 @@ CONFIG_SENSORS_UCD9200=m
CONFIG_SENSORS_XDPE122=m
CONFIG_SENSORS_ZL6100=m
CONFIG_SENSORS_SBTSI=m
+CONFIG_SENSORS_SBRMI=m
CONFIG_SENSORS_SHT15=m
CONFIG_SENSORS_SHT21=m
CONFIG_SENSORS_SHT3x=m
+CONFIG_SENSORS_SHT4x=m
CONFIG_SENSORS_SHTC1=m
CONFIG_SENSORS_SIS5595=m
CONFIG_SENSORS_DME1737=m
@@ -4981,6 +5130,7 @@ CONFIG_DEVFREQ_THERMAL=y
# Intel thermal drivers
#
CONFIG_INTEL_POWERCLAMP=m
+CONFIG_X86_THERMAL_VECTOR=y
CONFIG_X86_PKG_TEMP_THERMAL=m
CONFIG_INTEL_SOC_DTS_IOSF_CORE=m
CONFIG_INTEL_SOC_DTS_THERMAL=m
@@ -4991,11 +5141,13 @@ CONFIG_INTEL_SOC_DTS_THERMAL=m
CONFIG_INT340X_THERMAL=m
CONFIG_ACPI_THERMAL_REL=m
CONFIG_INT3406_THERMAL=m
-CONFIG_PROC_THERMAL_MMIO_RAPL=y
+CONFIG_PROC_THERMAL_MMIO_RAPL=m
# end of ACPI INT340X thermal drivers
CONFIG_INTEL_BXT_PMIC_THERMAL=m
CONFIG_INTEL_PCH_THERMAL=m
+CONFIG_INTEL_TCC_COOLING=m
+CONFIG_INTEL_MENLOW=m
# end of Intel thermal drivers
CONFIG_GENERIC_ADC_THERMAL=m
@@ -5005,6 +5157,7 @@ CONFIG_WATCHDOG_CORE=y
CONFIG_WATCHDOG_HANDLE_BOOT_ENABLED=y
CONFIG_WATCHDOG_OPEN_TIMEOUT=0
# CONFIG_WATCHDOG_SYSFS is not set
+# CONFIG_WATCHDOG_HRTIMER_PRETIMEOUT is not set
#
# Watchdog Pretimeout Governors
@@ -5149,8 +5302,8 @@ CONFIG_INTEL_SOC_PMIC_MRFLD=m
CONFIG_MFD_INTEL_LPSS=m
CONFIG_MFD_INTEL_LPSS_ACPI=m
CONFIG_MFD_INTEL_LPSS_PCI=m
-# CONFIG_MFD_INTEL_MSIC is not set
CONFIG_MFD_INTEL_PMC_BXT=m
+CONFIG_MFD_INTEL_PMT=m
CONFIG_MFD_IQS62X=m
CONFIG_MFD_JANZ_CMODIO=m
CONFIG_MFD_KEMPLD=m
@@ -5170,12 +5323,12 @@ CONFIG_PCF50633_ADC=m
CONFIG_PCF50633_GPIO=m
CONFIG_UCB1400_CORE=m
CONFIG_MFD_RDC321X=m
+CONFIG_MFD_RT4831=m
CONFIG_MFD_RT5033=m
CONFIG_MFD_SI476X_CORE=m
CONFIG_MFD_SM501=m
CONFIG_MFD_SM501_GPIO=y
CONFIG_MFD_SKY81452=m
-CONFIG_ABX500_CORE=y
CONFIG_MFD_SYSCON=y
CONFIG_MFD_TI_AM335X_TSCADC=m
CONFIG_MFD_LP3943=m
@@ -5192,7 +5345,7 @@ CONFIG_MFD_WL1273_CORE=m
CONFIG_MFD_LM3533=m
CONFIG_MFD_TQMX86=m
CONFIG_MFD_VX855=m
-CONFIG_MFD_ARIZONA=y
+CONFIG_MFD_ARIZONA=m
CONFIG_MFD_ARIZONA_I2C=m
CONFIG_MFD_ARIZONA_SPI=m
CONFIG_MFD_CS47L24=y
@@ -5204,6 +5357,8 @@ CONFIG_MFD_WM831X=y
CONFIG_MFD_WM831X_SPI=y
CONFIG_MFD_WM8994=m
CONFIG_MFD_WCD934X=m
+CONFIG_MFD_ATC260X=m
+CONFIG_MFD_ATC260X_I2C=m
CONFIG_RAVE_SP_CORE=m
CONFIG_MFD_INTEL_M10_BMC=m
# end of Multifunction device drivers
@@ -5219,6 +5374,7 @@ CONFIG_REGULATOR_ACT8865=m
CONFIG_REGULATOR_AD5398=m
CONFIG_REGULATOR_ARIZONA_LDO1=m
CONFIG_REGULATOR_ARIZONA_MICSUPP=m
+CONFIG_REGULATOR_ATC260X=m
CONFIG_REGULATOR_AXP20X=m
CONFIG_REGULATOR_BCM590XX=m
CONFIG_REGULATOR_BD9571MWV=m
@@ -5241,6 +5397,7 @@ CONFIG_REGULATOR_MAX14577=m
CONFIG_REGULATOR_MAX1586=m
CONFIG_REGULATOR_MAX8649=m
CONFIG_REGULATOR_MAX8660=m
+CONFIG_REGULATOR_MAX8893=m
CONFIG_REGULATOR_MAX8907=m
CONFIG_REGULATOR_MAX8952=m
CONFIG_REGULATOR_MAX77693=m
@@ -5250,14 +5407,15 @@ CONFIG_REGULATOR_MC13783=m
CONFIG_REGULATOR_MC13892=m
CONFIG_REGULATOR_MP8859=m
CONFIG_REGULATOR_MT6311=m
+CONFIG_REGULATOR_MT6315=m
CONFIG_REGULATOR_MT6323=m
CONFIG_REGULATOR_MT6358=m
+CONFIG_REGULATOR_MT6359=m
CONFIG_REGULATOR_MT6360=m
CONFIG_REGULATOR_MT6397=m
CONFIG_REGULATOR_PCA9450=m
CONFIG_REGULATOR_PCAP=m
CONFIG_REGULATOR_PCF50633=m
-CONFIG_REGULATOR_PFUZE100=m
CONFIG_REGULATOR_PV88060=m
CONFIG_REGULATOR_PV88080=m
CONFIG_REGULATOR_PV88090=m
@@ -5266,8 +5424,13 @@ CONFIG_REGULATOR_QCOM_SPMI=m
CONFIG_REGULATOR_QCOM_USB_VBUS=m
CONFIG_REGULATOR_RASPBERRYPI_TOUCHSCREEN_ATTINY=m
CONFIG_REGULATOR_RT4801=m
+CONFIG_REGULATOR_RT4831=m
CONFIG_REGULATOR_RT5033=m
+CONFIG_REGULATOR_RT6160=m
+CONFIG_REGULATOR_RT6245=m
+CONFIG_REGULATOR_RTQ2134=m
CONFIG_REGULATOR_RTMV20=m
+CONFIG_REGULATOR_RTQ6752=m
CONFIG_REGULATOR_SKY81452=m
CONFIG_REGULATOR_SLG51000=m
CONFIG_REGULATOR_TPS51632=m
@@ -5363,6 +5526,7 @@ CONFIG_VIDEO_TUNER=m
CONFIG_V4L2_MEM2MEM_DEV=m
CONFIG_V4L2_FLASH_LED_CLASS=m
CONFIG_V4L2_FWNODE=m
+CONFIG_V4L2_ASYNC=m
CONFIG_VIDEOBUF_GEN=m
CONFIG_VIDEOBUF_DMA_SG=m
CONFIG_VIDEOBUF_VMALLOC=m
@@ -5392,7 +5556,6 @@ CONFIG_DVB_DYNAMIC_MINORS=y
#
# Drivers filtered as selected at 'Filter media drivers'
#
-CONFIG_TTPCI_EEPROM=m
CONFIG_MEDIA_USB_SUPPORT=y
#
@@ -5570,7 +5733,6 @@ CONFIG_VIDEO_TW686X=m
# Media capture/analog TV support
#
CONFIG_VIDEO_IVTV=m
-# CONFIG_VIDEO_IVTV_DEPRECATED_IOCTLS is not set
CONFIG_VIDEO_IVTV_ALSA=m
CONFIG_VIDEO_FB_IVTV=m
# CONFIG_VIDEO_FB_IVTV_FORCE_PAT is not set
@@ -5608,14 +5770,10 @@ CONFIG_VIDEO_SAA7164=m
#
# Media digital TV PCI Adapters
#
-CONFIG_DVB_AV7110_IR=y
-CONFIG_DVB_AV7110=m
-CONFIG_DVB_AV7110_OSD=y
CONFIG_DVB_BUDGET_CORE=m
CONFIG_DVB_BUDGET=m
CONFIG_DVB_BUDGET_CI=m
CONFIG_DVB_BUDGET_AV=m
-CONFIG_DVB_BUDGET_PATCH=m
CONFIG_DVB_B2C2_FLEXCOP_PCI=m
# CONFIG_DVB_B2C2_FLEXCOP_PCI_DEBUG is not set
CONFIG_DVB_PLUTO2=m
@@ -5631,6 +5789,7 @@ CONFIG_DVB_DDBRIDGE=m
CONFIG_DVB_SMIPCIE=m
CONFIG_DVB_NETUP_UNIDVB=m
CONFIG_VIDEO_IPU3_CIO2=m
+# CONFIG_CIO2_BRIDGE is not set
CONFIG_RADIO_ADAPTERS=y
CONFIG_RADIO_TEA575X=m
CONFIG_RADIO_SI470X=m
@@ -5661,6 +5820,7 @@ CONFIG_MEDIA_COMMON_OPTIONS=y
#
CONFIG_VIDEO_CX2341X=m
CONFIG_VIDEO_TVEEPROM=m
+CONFIG_TTPCI_EEPROM=m
CONFIG_CYPRESS_FIRMWARE=m
CONFIG_VIDEOBUF2_CORE=m
CONFIG_VIDEOBUF2_V4L2=m
@@ -5758,8 +5918,9 @@ CONFIG_VIDEO_M52790=m
# Camera sensor devices
#
CONFIG_VIDEO_APTINA_PLL=m
-CONFIG_VIDEO_SMIAPP_PLL=m
+CONFIG_VIDEO_CCS_PLL=m
CONFIG_VIDEO_HI556=m
+CONFIG_VIDEO_IMX208=m
CONFIG_VIDEO_IMX214=m
CONFIG_VIDEO_IMX219=m
CONFIG_VIDEO_IMX258=m
@@ -5767,12 +5928,14 @@ CONFIG_VIDEO_IMX274=m
CONFIG_VIDEO_IMX290=m
CONFIG_VIDEO_IMX319=m
CONFIG_VIDEO_IMX355=m
+CONFIG_VIDEO_OV02A10=m
CONFIG_VIDEO_OV2640=m
CONFIG_VIDEO_OV2659=m
CONFIG_VIDEO_OV2680=m
CONFIG_VIDEO_OV2685=m
CONFIG_VIDEO_OV2740=m
CONFIG_VIDEO_OV5647=m
+CONFIG_VIDEO_OV5648=m
CONFIG_VIDEO_OV6650=m
CONFIG_VIDEO_OV5670=m
CONFIG_VIDEO_OV5675=m
@@ -5783,8 +5946,10 @@ CONFIG_VIDEO_OV7640=m
CONFIG_VIDEO_OV7670=m
CONFIG_VIDEO_OV7740=m
CONFIG_VIDEO_OV8856=m
+CONFIG_VIDEO_OV8865=m
CONFIG_VIDEO_OV9640=m
CONFIG_VIDEO_OV9650=m
+CONFIG_VIDEO_OV9734=m
CONFIG_VIDEO_OV13858=m
CONFIG_VIDEO_VS6624=m
CONFIG_VIDEO_MT9M001=m
@@ -5799,13 +5964,15 @@ CONFIG_VIDEO_MT9V111=m
CONFIG_VIDEO_SR030PC30=m
CONFIG_VIDEO_NOON010PC30=m
CONFIG_VIDEO_M5MOLS=m
+CONFIG_VIDEO_MAX9271_LIB=m
CONFIG_VIDEO_RDACM20=m
+CONFIG_VIDEO_RDACM21=m
CONFIG_VIDEO_RJ54N1=m
CONFIG_VIDEO_S5K6AA=m
CONFIG_VIDEO_S5K6A3=m
CONFIG_VIDEO_S5K4ECGX=m
CONFIG_VIDEO_S5K5BAF=m
-CONFIG_VIDEO_SMIAPP=m
+CONFIG_VIDEO_CCS=m
CONFIG_VIDEO_ET8EK8=m
CONFIG_VIDEO_S5C73M3=m
# end of Camera sensor devices
@@ -5940,7 +6107,6 @@ CONFIG_DVB_TDA10071=m
#
# DVB-T (terrestrial) frontends
#
-CONFIG_DVB_SP8870=m
CONFIG_DVB_SP887X=m
CONFIG_DVB_CX22700=m
CONFIG_DVB_CX22702=m
@@ -5992,6 +6158,7 @@ CONFIG_DVB_AU8522=m
CONFIG_DVB_AU8522_DTV=m
CONFIG_DVB_AU8522_V4L=m
CONFIG_DVB_S5H1411=m
+CONFIG_DVB_MXL692=m
#
# ISDB-T (terrestrial) frontends
@@ -6058,19 +6225,16 @@ CONFIG_DRM_MIPI_DSI=y
CONFIG_DRM_DP_AUX_CHARDEV=y
CONFIG_DRM_DEBUG_SELFTEST=m
CONFIG_DRM_KMS_HELPER=m
-CONFIG_DRM_KMS_FB_HELPER=y
CONFIG_DRM_FBDEV_EMULATION=y
CONFIG_DRM_FBDEV_OVERALLOC=100
# CONFIG_DRM_LOAD_EDID_FIRMWARE is not set
# CONFIG_DRM_DP_CEC is not set
CONFIG_DRM_TTM=m
-CONFIG_DRM_TTM_DMA_PAGE_POOL=y
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_VM=y
CONFIG_DRM_SCHED=m
#
@@ -6092,8 +6256,7 @@ CONFIG_DRM_RADEON=m
CONFIG_DRM_AMDGPU=m
CONFIG_DRM_AMDGPU_SI=y
CONFIG_DRM_AMDGPU_CIK=y
-# CONFIG_DRM_AMDGPU_USERPTR is not set
-# CONFIG_DRM_AMDGPU_GART_DEBUGFS is not set
+CONFIG_DRM_AMDGPU_USERPTR=y
#
# ACP (Audio CoProcessor) Configuration
@@ -6106,9 +6269,9 @@ CONFIG_DRM_AMD_ACP=y
#
CONFIG_DRM_AMD_DC=y
CONFIG_DRM_AMD_DC_DCN=y
-CONFIG_DRM_AMD_DC_DCN3_0=y
CONFIG_DRM_AMD_DC_HDCP=y
# CONFIG_DRM_AMD_DC_SI is not set
+# CONFIG_DRM_AMD_SECURE_DISPLAY is not set
# end of Display Engine Configuration
CONFIG_HSA_AMD=y
@@ -6126,6 +6289,7 @@ CONFIG_DRM_I915_COMPRESS_ERROR=y
CONFIG_DRM_I915_USERPTR=y
CONFIG_DRM_I915_GVT=y
CONFIG_DRM_I915_GVT_KVMGT=m
+CONFIG_DRM_I915_REQUEST_TIMEOUT=20000
CONFIG_DRM_I915_FENCE_TIMEOUT=10000
CONFIG_DRM_I915_USERFAULT_AUTOSUSPEND=250
CONFIG_DRM_I915_HEARTBEAT_INTERVAL=2500
@@ -6137,14 +6301,12 @@ CONFIG_DRM_VGEM=m
CONFIG_DRM_VKMS=m
CONFIG_DRM_VMWGFX=m
CONFIG_DRM_VMWGFX_FBCON=y
+CONFIG_DRM_VMWGFX_MKSSTATS=y
CONFIG_DRM_GMA500=m
-CONFIG_DRM_GMA600=y
-CONFIG_DRM_GMA3600=y
CONFIG_DRM_UDL=m
CONFIG_DRM_AST=m
CONFIG_DRM_MGAG200=m
CONFIG_DRM_QXL=m
-CONFIG_DRM_BOCHS=m
CONFIG_DRM_VIRTIO_GPU=m
CONFIG_DRM_PANEL=y
@@ -6152,6 +6314,7 @@ CONFIG_DRM_PANEL=y
# Display Panels
#
CONFIG_DRM_PANEL_RASPBERRYPI_TOUCHSCREEN=m
+CONFIG_DRM_PANEL_WIDECHIPS_WS2401=m
# end of Display Panels
CONFIG_DRM_BRIDGE=y
@@ -6166,8 +6329,10 @@ CONFIG_DRM_ANALOGIX_DP=m
CONFIG_DRM_ETNAVIV=m
CONFIG_DRM_ETNAVIV_THERMAL=y
+CONFIG_DRM_BOCHS=m
CONFIG_DRM_CIRRUS_QEMU=m
CONFIG_DRM_GM12U320=m
+CONFIG_DRM_SIMPLEDRM=m
CONFIG_TINYDRM_HX8357D=m
CONFIG_TINYDRM_ILI9225=m
CONFIG_TINYDRM_ILI9341=m
@@ -6177,6 +6342,8 @@ CONFIG_TINYDRM_REPAPER=m
CONFIG_TINYDRM_ST7586=m
CONFIG_TINYDRM_ST7735R=m
CONFIG_DRM_VBOXVIDEO=m
+CONFIG_DRM_GUD=m
+CONFIG_DRM_HYPERV=m
CONFIG_DRM_LEGACY=y
CONFIG_DRM_TDFX=m
CONFIG_DRM_R128=m
@@ -6254,11 +6421,13 @@ CONFIG_FB_EFI=y
# CONFIG_FB_SMSCUFX is not set
# CONFIG_FB_UDL is not set
# CONFIG_FB_IBM_GXT4500 is not set
+# CONFIG_FB_GOLDFISH is not set
# CONFIG_FB_VIRTUAL is not set
# CONFIG_FB_METRONOME is not set
# CONFIG_FB_MB862XX is not set
# CONFIG_FB_HYPERV is not set
-CONFIG_FB_SIMPLE=y
+CONFIG_FB_SIMPLE=m
+CONFIG_FB_SSD1307=m
# CONFIG_FB_SM712 is not set
# end of Frame buffer Devices
@@ -6285,6 +6454,7 @@ CONFIG_BACKLIGHT_PWM=m
CONFIG_BACKLIGHT_DA9052=m
CONFIG_BACKLIGHT_APPLE=m
CONFIG_BACKLIGHT_QCOM_WLED=m
+CONFIG_BACKLIGHT_RT4831=m
CONFIG_BACKLIGHT_SAHARA=m
CONFIG_BACKLIGHT_WM831X=m
CONFIG_BACKLIGHT_ADP8860=m
@@ -6311,6 +6481,7 @@ CONFIG_DUMMY_CONSOLE=y
CONFIG_DUMMY_CONSOLE_COLUMNS=80
CONFIG_DUMMY_CONSOLE_ROWS=25
CONFIG_FRAMEBUFFER_CONSOLE=y
+CONFIG_FRAMEBUFFER_CONSOLE_LEGACY_ACCELERATION=y
CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y
CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y
CONFIG_FRAMEBUFFER_CONSOLE_DEFERRED_TAKEOVER=y
@@ -6349,6 +6520,7 @@ CONFIG_SND_VERBOSE_PROCFS=y
# CONFIG_SND_DEBUG is not set
CONFIG_SND_VMASTER=y
CONFIG_SND_DMA_SGBUF=y
+CONFIG_SND_CTL_LED=m
CONFIG_SND_SEQUENCER=m
CONFIG_SND_SEQ_DUMMY=m
CONFIG_SND_SEQUENCER_OSS=m
@@ -6466,6 +6638,7 @@ CONFIG_SND_HDA_CODEC_SIGMATEL=m
CONFIG_SND_HDA_CODEC_VIA=m
CONFIG_SND_HDA_CODEC_HDMI=m
CONFIG_SND_HDA_CODEC_CIRRUS=m
+CONFIG_SND_HDA_CODEC_CS8409=m
CONFIG_SND_HDA_CODEC_CONEXANT=m
CONFIG_SND_HDA_CODEC_CA0110=m
CONFIG_SND_HDA_CODEC_CA0132=m
@@ -6485,6 +6658,8 @@ CONFIG_SND_HDA_EXT_CORE=m
CONFIG_SND_HDA_PREALLOC_SIZE=0
CONFIG_SND_INTEL_NHLT=y
CONFIG_SND_INTEL_DSP_CONFIG=m
+CONFIG_SND_INTEL_SOUNDWIRE_ACPI=m
+# CONFIG_SND_INTEL_BYT_PREFER_SOF is not set
CONFIG_SND_SPI=y
CONFIG_SND_USB=y
CONFIG_SND_USB_AUDIO=m
@@ -6521,6 +6696,9 @@ CONFIG_SND_SOC_GENERIC_DMAENGINE_PCM=y
CONFIG_SND_SOC_COMPRESS=y
CONFIG_SND_SOC_TOPOLOGY=y
CONFIG_SND_SOC_ACPI=m
+CONFIG_SND_SOC_ADI=m
+CONFIG_SND_SOC_ADI_AXI_I2S=m
+CONFIG_SND_SOC_ADI_AXI_SPDIF=m
CONFIG_SND_SOC_AMD_ACP=m
CONFIG_SND_SOC_AMD_CZ_DA7219MX98357_MACH=m
CONFIG_SND_SOC_AMD_CZ_RT5645_MACH=m
@@ -6528,6 +6706,7 @@ CONFIG_SND_SOC_AMD_ACP3x=m
CONFIG_SND_SOC_AMD_RV_RT5682_MACH=m
CONFIG_SND_SOC_AMD_RENOIR=m
CONFIG_SND_SOC_AMD_RENOIR_MACH=m
+CONFIG_SND_SOC_AMD_ACP5x=m
CONFIG_SND_ATMEL_SOC=m
CONFIG_SND_BCM63XX_I2S_WHISTLER=m
CONFIG_SND_DESIGNWARE_I2S=m
@@ -6549,6 +6728,8 @@ CONFIG_SND_SOC_FSL_SPDIF=m
CONFIG_SND_SOC_FSL_ESAI=m
CONFIG_SND_SOC_FSL_MICFIL=m
CONFIG_SND_SOC_FSL_EASRC=m
+CONFIG_SND_SOC_FSL_XCVR=m
+CONFIG_SND_SOC_FSL_RPMSG=m
CONFIG_SND_SOC_IMX_AUDMUX=m
# end of SoC Audio for Freescale CPUs
@@ -6582,12 +6763,15 @@ CONFIG_SND_SOC_INTEL_SKYLAKE_COMMON=m
CONFIG_SND_SOC_ACPI_INTEL_MATCH=m
CONFIG_SND_SOC_INTEL_MACH=y
# CONFIG_SND_SOC_INTEL_USER_FRIENDLY_LONG_NAMES is not set
+CONFIG_SND_SOC_INTEL_HDA_DSP_COMMON=m
+CONFIG_SND_SOC_INTEL_SOF_MAXIM_COMMON=m
CONFIG_SND_SOC_INTEL_HASWELL_MACH=m
CONFIG_SND_SOC_INTEL_BDW_RT5650_MACH=m
CONFIG_SND_SOC_INTEL_BDW_RT5677_MACH=m
CONFIG_SND_SOC_INTEL_BROADWELL_MACH=m
CONFIG_SND_SOC_INTEL_BYTCR_RT5640_MACH=m
CONFIG_SND_SOC_INTEL_BYTCR_RT5651_MACH=m
+CONFIG_SND_SOC_INTEL_BYTCR_WM5102_MACH=m
CONFIG_SND_SOC_INTEL_CHT_BSW_RT5672_MACH=m
CONFIG_SND_SOC_INTEL_CHT_BSW_RT5645_MACH=m
CONFIG_SND_SOC_INTEL_CHT_BSW_MAX98090_TI_MACH=m
@@ -6613,6 +6797,7 @@ CONFIG_SND_SOC_INTEL_GLK_DA7219_MAX98357A_MACH=m
CONFIG_SND_SOC_INTEL_GLK_RT5682_MAX98357A_MACH=m
CONFIG_SND_SOC_INTEL_SKL_HDA_DSP_GENERIC_MACH=m
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_CML_LP_DA7219_MAX98357A_MACH=m
CONFIG_SND_SOC_INTEL_SOF_CML_RT1011_RT5682_MACH=m
@@ -6620,46 +6805,41 @@ CONFIG_SND_SOC_INTEL_SOF_DA7219_MAX98373_MACH=m
CONFIG_SND_SOC_INTEL_EHL_RT5660_MACH=m
CONFIG_SND_SOC_MTK_BTCVSD=m
CONFIG_SND_SOC_SOF_TOPLEVEL=y
+CONFIG_SND_SOC_SOF_PCI_DEV=m
CONFIG_SND_SOC_SOF_PCI=m
CONFIG_SND_SOC_SOF_ACPI=m
+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_INTEL_TOPLEVEL=y
-CONFIG_SND_SOC_SOF_INTEL_ACPI=m
-CONFIG_SND_SOC_SOF_INTEL_PCI=m
CONFIG_SND_SOC_SOF_INTEL_HIFI_EP_IPC=m
CONFIG_SND_SOC_SOF_INTEL_ATOM_HIFI_EP=m
CONFIG_SND_SOC_SOF_INTEL_COMMON=m
-CONFIG_SND_SOC_SOF_MERRIFIELD_SUPPORT=y
+CONFIG_SND_SOC_SOF_BAYTRAIL=m
+CONFIG_SND_SOC_SOF_BROADWELL=m
CONFIG_SND_SOC_SOF_MERRIFIELD=m
-CONFIG_SND_SOC_SOF_APOLLOLAKE_SUPPORT=y
+CONFIG_SND_SOC_SOF_INTEL_APL=m
CONFIG_SND_SOC_SOF_APOLLOLAKE=m
-CONFIG_SND_SOC_SOF_GEMINILAKE_SUPPORT=y
CONFIG_SND_SOC_SOF_GEMINILAKE=m
-CONFIG_SND_SOC_SOF_CANNONLAKE_SUPPORT=y
+CONFIG_SND_SOC_SOF_INTEL_CNL=m
CONFIG_SND_SOC_SOF_CANNONLAKE=m
-CONFIG_SND_SOC_SOF_COFFEELAKE_SUPPORT=y
CONFIG_SND_SOC_SOF_COFFEELAKE=m
-CONFIG_SND_SOC_SOF_ICELAKE_SUPPORT=y
-CONFIG_SND_SOC_SOF_ICELAKE=m
CONFIG_SND_SOC_SOF_COMETLAKE=m
-CONFIG_SND_SOC_SOF_COMETLAKE_SUPPORT=y
-CONFIG_SND_SOC_SOF_COMETLAKE_LP_SUPPORT=y
-CONFIG_SND_SOC_SOF_TIGERLAKE_SUPPORT=y
+CONFIG_SND_SOC_SOF_INTEL_ICL=m
+CONFIG_SND_SOC_SOF_ICELAKE=m
+CONFIG_SND_SOC_SOF_JASPERLAKE=m
+CONFIG_SND_SOC_SOF_INTEL_TGL=m
CONFIG_SND_SOC_SOF_TIGERLAKE=m
-CONFIG_SND_SOC_SOF_ELKHARTLAKE_SUPPORT=y
CONFIG_SND_SOC_SOF_ELKHARTLAKE=m
-CONFIG_SND_SOC_SOF_JASPERLAKE_SUPPORT=y
-CONFIG_SND_SOC_SOF_JASPERLAKE=m
+CONFIG_SND_SOC_SOF_ALDERLAKE=m
CONFIG_SND_SOC_SOF_HDA_COMMON=m
CONFIG_SND_SOC_SOF_HDA_LINK=y
CONFIG_SND_SOC_SOF_HDA_AUDIO_CODEC=y
-CONFIG_SND_SOC_SOF_HDA_ALWAYS_ENABLE_DMI_L1=y
CONFIG_SND_SOC_SOF_HDA_LINK_BASELINE=m
CONFIG_SND_SOC_SOF_HDA=m
-# CONFIG_SND_SOC_SOF_INTEL_SOUNDWIRE_LINK is not set
CONFIG_SND_SOC_SOF_INTEL_SOUNDWIRE_LINK_BASELINE=m
+CONFIG_SND_SOC_SOF_INTEL_SOUNDWIRE=m
CONFIG_SND_SOC_SOF_XTENSA=m
#
@@ -6671,14 +6851,18 @@ CONFIG_SND_SOC_XILINX_I2S=m
CONFIG_SND_SOC_XILINX_AUDIO_FORMATTER=m
CONFIG_SND_SOC_XILINX_SPDIF=m
CONFIG_SND_SOC_XTFPGA_I2S=m
-CONFIG_ZX_TDM=m
CONFIG_SND_SOC_I2C_AND_SPI=m
#
# CODEC drivers
#
+CONFIG_SND_SOC_ARIZONA=m
+CONFIG_SND_SOC_WM_ADSP=m
# CONFIG_SND_SOC_AC97_CODEC is not set
CONFIG_SND_SOC_ADAU_UTILS=m
+CONFIG_SND_SOC_ADAU1372=m
+CONFIG_SND_SOC_ADAU1372_I2C=m
+CONFIG_SND_SOC_ADAU1372_SPI=m
CONFIG_SND_SOC_ADAU1701=m
CONFIG_SND_SOC_ADAU17X1=m
CONFIG_SND_SOC_ADAU1761=m
@@ -6737,6 +6921,7 @@ CONFIG_SND_SOC_ES8328_SPI=m
CONFIG_SND_SOC_GTM601=m
CONFIG_SND_SOC_HDAC_HDMI=m
CONFIG_SND_SOC_HDAC_HDA=m
+CONFIG_SND_SOC_ICS43432=m
CONFIG_SND_SOC_INNO_RK3036=m
CONFIG_SND_SOC_MAX98088=m
CONFIG_SND_SOC_MAX98090=m
@@ -6766,6 +6951,7 @@ CONFIG_SND_SOC_PCM3060_SPI=m
CONFIG_SND_SOC_PCM3168A=m
CONFIG_SND_SOC_PCM3168A_I2C=m
CONFIG_SND_SOC_PCM3168A_SPI=m
+CONFIG_SND_SOC_PCM5102A=m
CONFIG_SND_SOC_PCM512x=m
CONFIG_SND_SOC_PCM512x_I2C=m
CONFIG_SND_SOC_PCM512x_SPI=m
@@ -6776,7 +6962,9 @@ CONFIG_SND_SOC_RT286=m
CONFIG_SND_SOC_RT298=m
CONFIG_SND_SOC_RT1011=m
CONFIG_SND_SOC_RT1015=m
+CONFIG_SND_SOC_RT1015P=m
CONFIG_SND_SOC_RT1308_SDW=m
+CONFIG_SND_SOC_RT1316_SDW=m
CONFIG_SND_SOC_RT5514=m
CONFIG_SND_SOC_RT5514_SPI=m
CONFIG_SND_SOC_RT5616=m
@@ -6784,6 +6972,7 @@ CONFIG_SND_SOC_RT5631=m
CONFIG_SND_SOC_RT5640=m
CONFIG_SND_SOC_RT5645=m
CONFIG_SND_SOC_RT5651=m
+CONFIG_SND_SOC_RT5659=m
CONFIG_SND_SOC_RT5660=m
CONFIG_SND_SOC_RT5663=m
CONFIG_SND_SOC_RT5670=m
@@ -6796,17 +6985,20 @@ CONFIG_SND_SOC_RT700=m
CONFIG_SND_SOC_RT700_SDW=m
CONFIG_SND_SOC_RT711=m
CONFIG_SND_SOC_RT711_SDW=m
+CONFIG_SND_SOC_RT711_SDCA_SDW=m
CONFIG_SND_SOC_RT715=m
CONFIG_SND_SOC_RT715_SDW=m
+CONFIG_SND_SOC_RT715_SDCA_SDW=m
CONFIG_SND_SOC_SGTL5000=m
CONFIG_SND_SOC_SI476X=m
CONFIG_SND_SOC_SIGMADSP=m
CONFIG_SND_SOC_SIGMADSP_I2C=m
CONFIG_SND_SOC_SIGMADSP_REGMAP=m
CONFIG_SND_SOC_SIMPLE_AMPLIFIER=m
-CONFIG_SND_SOC_SIRF_AUDIO_CODEC=m
+CONFIG_SND_SOC_SIMPLE_MUX=m
CONFIG_SND_SOC_SPDIF=m
CONFIG_SND_SOC_SSM2305=m
+CONFIG_SND_SOC_SSM2518=m
CONFIG_SND_SOC_SSM2602=m
CONFIG_SND_SOC_SSM2602_SPI=m
CONFIG_SND_SOC_SSM2602_I2C=m
@@ -6824,6 +7016,7 @@ CONFIG_SND_SOC_TAS5720=m
CONFIG_SND_SOC_TAS6424=m
CONFIG_SND_SOC_TDA7419=m
CONFIG_SND_SOC_TFA9879=m
+CONFIG_SND_SOC_TFA989X=m
CONFIG_SND_SOC_TLV320AIC23=m
CONFIG_SND_SOC_TLV320AIC23_I2C=m
CONFIG_SND_SOC_TLV320AIC23_SPI=m
@@ -6832,13 +7025,19 @@ CONFIG_SND_SOC_TLV320AIC32X4=m
CONFIG_SND_SOC_TLV320AIC32X4_I2C=m
CONFIG_SND_SOC_TLV320AIC32X4_SPI=m
CONFIG_SND_SOC_TLV320AIC3X=m
+CONFIG_SND_SOC_TLV320AIC3X_I2C=m
+CONFIG_SND_SOC_TLV320AIC3X_SPI=m
CONFIG_SND_SOC_TLV320ADCX140=m
CONFIG_SND_SOC_TS3A227E=m
CONFIG_SND_SOC_TSCS42XX=m
CONFIG_SND_SOC_TSCS454=m
CONFIG_SND_SOC_UDA1334=m
CONFIG_SND_SOC_WCD9335=m
+CONFIG_SND_SOC_WCD_MBHC=m
CONFIG_SND_SOC_WCD934X=m
+CONFIG_SND_SOC_WCD938X=m
+CONFIG_SND_SOC_WCD938X_SDW=m
+CONFIG_SND_SOC_WM5102=m
CONFIG_SND_SOC_WM8510=m
CONFIG_SND_SOC_WM8523=m
CONFIG_SND_SOC_WM8524=m
@@ -6865,17 +7064,21 @@ CONFIG_SND_SOC_WM8978=m
CONFIG_SND_SOC_WM8985=m
CONFIG_SND_SOC_WSA881X=m
CONFIG_SND_SOC_ZL38060=m
-CONFIG_SND_SOC_ZX_AUD96P22=m
CONFIG_SND_SOC_MAX9759=m
CONFIG_SND_SOC_MT6351=m
CONFIG_SND_SOC_MT6358=m
CONFIG_SND_SOC_MT6660=m
+CONFIG_SND_SOC_NAU8315=m
CONFIG_SND_SOC_NAU8540=m
CONFIG_SND_SOC_NAU8810=m
CONFIG_SND_SOC_NAU8822=m
CONFIG_SND_SOC_NAU8824=m
CONFIG_SND_SOC_NAU8825=m
CONFIG_SND_SOC_TPA6130A2=m
+CONFIG_SND_SOC_LPASS_WSA_MACRO=m
+CONFIG_SND_SOC_LPASS_VA_MACRO=m
+CONFIG_SND_SOC_LPASS_RX_MACRO=m
+CONFIG_SND_SOC_LPASS_TX_MACRO=m
# end of CODEC drivers
CONFIG_SND_SIMPLE_CARD_UTILS=m
@@ -6883,6 +7086,7 @@ CONFIG_SND_SIMPLE_CARD=m
CONFIG_SND_X86=y
CONFIG_HDMI_LPE_AUDIO=m
CONFIG_SND_SYNTH_EMUX=m
+CONFIG_SND_VIRTIO=m
CONFIG_AC97_BUS=m
#
@@ -6925,6 +7129,7 @@ CONFIG_HID_ELAN=m
CONFIG_HID_ELECOM=m
CONFIG_HID_ELO=m
CONFIG_HID_EZKEY=m
+CONFIG_HID_FT260=m
CONFIG_HID_GEMBIRD=m
CONFIG_HID_GFRM=m
CONFIG_HID_GLORIOUS=m
@@ -6975,11 +7180,14 @@ CONFIG_HID_PICOLCD_LCD=y
CONFIG_HID_PICOLCD_LEDS=y
CONFIG_HID_PICOLCD_CIR=y
CONFIG_HID_PLANTRONICS=m
+CONFIG_HID_PLAYSTATION=m
+# CONFIG_PLAYSTATION_FF is not set
CONFIG_HID_PRIMAX=m
CONFIG_HID_RETRODE=m
CONFIG_HID_ROCCAT=m
CONFIG_HID_SAITEK=m
CONFIG_HID_SAMSUNG=m
+CONFIG_HID_SEMITEK=m
CONFIG_HID_SONY=m
CONFIG_SONY_FF=y
CONFIG_HID_SPEEDLINK=m
@@ -7022,9 +7230,11 @@ CONFIG_USB_HIDDEV=y
#
# I2C HID support
#
-CONFIG_I2C_HID=m
+CONFIG_I2C_HID_ACPI=m
# end of I2C HID support
+CONFIG_I2C_HID_CORE=m
+
#
# Intel ISH HID support
#
@@ -7037,11 +7247,20 @@ CONFIG_INTEL_ISH_FIRMWARE_DOWNLOADER=m
#
CONFIG_AMD_SFH_HID=m
# end of AMD SFH HID Support
+
+#
+# Surface System Aggregator Module HID support
+#
+CONFIG_SURFACE_HID=m
+CONFIG_SURFACE_KBD=m
+# end of Surface System Aggregator Module HID support
+
+CONFIG_SURFACE_HID_CORE=m
# end of HID support
CONFIG_USB_OHCI_LITTLE_ENDIAN=y
CONFIG_USB_SUPPORT=y
-CONFIG_USB_COMMON=y
+CONFIG_USB_COMMON=m
CONFIG_USB_LED_TRIG=y
CONFIG_USB_ULPI_BUS=m
CONFIG_USB_CONN_GPIO=m
@@ -7142,10 +7361,15 @@ CONFIG_USBIP_VHCI_NR_HCS=1
CONFIG_USBIP_HOST=m
CONFIG_USBIP_VUDC=m
# CONFIG_USBIP_DEBUG is not set
+CONFIG_USB_CDNS_SUPPORT=m
+CONFIG_USB_CDNS_HOST=y
CONFIG_USB_CDNS3=m
CONFIG_USB_CDNS3_GADGET=y
CONFIG_USB_CDNS3_HOST=y
CONFIG_USB_CDNS3_PCI_WRAP=m
+CONFIG_USB_CDNSP_PCI=m
+# CONFIG_USB_CDNSP_GADGET is not set
+# CONFIG_USB_CDNSP_HOST is not set
CONFIG_USB_MUSB_HDRC=m
# CONFIG_USB_MUSB_HOST is not set
# CONFIG_USB_MUSB_GADGET is not set
@@ -7243,7 +7467,6 @@ CONFIG_USB_SERIAL_SIERRAWIRELESS=m
CONFIG_USB_SERIAL_SYMBOL=m
CONFIG_USB_SERIAL_TI=m
CONFIG_USB_SERIAL_CYBERJACK=m
-CONFIG_USB_SERIAL_XIRCOM=m
CONFIG_USB_SERIAL_WWAN=m
CONFIG_USB_SERIAL_OPTION=m
CONFIG_USB_SERIAL_OMNINET=m
@@ -7253,6 +7476,7 @@ CONFIG_USB_SERIAL_WISHBONE=m
CONFIG_USB_SERIAL_SSU100=m
CONFIG_USB_SERIAL_QT2=m
# CONFIG_USB_SERIAL_UPD78F0730 is not set
+CONFIG_USB_SERIAL_XR=m
# CONFIG_USB_SERIAL_DEBUG is not set
#
@@ -7321,10 +7545,6 @@ CONFIG_USB_MV_U3D=m
CONFIG_USB_SNP_CORE=m
CONFIG_USB_M66592=m
CONFIG_USB_BDC_UDC=m
-
-#
-# Platform Support
-#
CONFIG_USB_AMD5536UDC=m
CONFIG_USB_NET2272=m
CONFIG_USB_NET2272_DMA=y
@@ -7424,8 +7644,8 @@ CONFIG_TYPEC_FUSB302=m
CONFIG_TYPEC_UCSI=m
CONFIG_UCSI_CCG=m
CONFIG_UCSI_ACPI=m
-CONFIG_TYPEC_HD3SS3220=m
CONFIG_TYPEC_TPS6598X=m
+CONFIG_TYPEC_HD3SS3220=m
CONFIG_TYPEC_STUSB160X=m
#
@@ -7506,12 +7726,10 @@ CONFIG_LEDS_CLASS_MULTICOLOR=m
# LED drivers
#
CONFIG_LEDS_APU=m
-CONFIG_LEDS_AS3645A=m
CONFIG_LEDS_LM3530=m
CONFIG_LEDS_LM3532=m
CONFIG_LEDS_LM3533=m
CONFIG_LEDS_LM3642=m
-CONFIG_LEDS_LM3601X=m
CONFIG_LEDS_MT6323=m
CONFIG_LEDS_PCA9532=m
CONFIG_LEDS_PCA9532_GPIO=y
@@ -7530,6 +7748,7 @@ CONFIG_LEDS_PWM=m
CONFIG_LEDS_REGULATOR=m
CONFIG_LEDS_BD2802=m
CONFIG_LEDS_INTEL_SS4200=m
+CONFIG_LEDS_LT3593=m
CONFIG_LEDS_MC13783=m
CONFIG_LEDS_TCA6507=m
CONFIG_LEDS_TLC591XX=m
@@ -7547,6 +7766,13 @@ CONFIG_LEDS_NIC78BX=m
CONFIG_LEDS_TI_LMU_COMMON=m
CONFIG_LEDS_LM36274=m
CONFIG_LEDS_TPS6105X=m
+
+#
+# Flash and Torch LED drivers
+#
+CONFIG_LEDS_AS3645A=m
+CONFIG_LEDS_LM3601X=m
+CONFIG_LEDS_RT8515=m
CONFIG_LEDS_SGM3140=m
#
@@ -7573,6 +7799,7 @@ CONFIG_LEDS_TRIGGER_PANIC=y
CONFIG_LEDS_TRIGGER_NETDEV=m
CONFIG_LEDS_TRIGGER_PATTERN=m
CONFIG_LEDS_TRIGGER_AUDIO=m
+CONFIG_LEDS_TRIGGER_TTY=m
CONFIG_ACCESSIBILITY=y
CONFIG_A11Y_BRAILLE_CONSOLE=y
@@ -7607,7 +7834,7 @@ CONFIG_INFINIBAND_QIB=m
CONFIG_INFINIBAND_QIB_DCA=y
CONFIG_INFINIBAND_CXGB4=m
CONFIG_INFINIBAND_EFA=m
-CONFIG_INFINIBAND_I40IW=m
+CONFIG_INFINIBAND_IRDMA=m
CONFIG_MLX4_INFINIBAND=m
CONFIG_MLX5_INFINIBAND=m
CONFIG_INFINIBAND_OCRDMA=m
@@ -7641,7 +7868,6 @@ CONFIG_EDAC_LEGACY_SYSFS=y
CONFIG_EDAC_DECODE_MCE=m
CONFIG_EDAC_GHES=y
CONFIG_EDAC_AMD64=m
-CONFIG_EDAC_AMD64_ERROR_INJECTION=y
CONFIG_EDAC_E752X=m
CONFIG_EDAC_I82975X=m
CONFIG_EDAC_I3000=m
@@ -7657,6 +7883,7 @@ CONFIG_EDAC_SBRIDGE=m
CONFIG_EDAC_SKX=m
CONFIG_EDAC_I10NM=m
CONFIG_EDAC_PND2=m
+CONFIG_EDAC_IGEN6=m
CONFIG_RTC_LIB=y
CONFIG_RTC_MC146818_LIB=y
CONFIG_RTC_CLASS=y
@@ -7726,7 +7953,6 @@ CONFIG_RTC_DRV_DS1390=m
CONFIG_RTC_DRV_MAX6916=m
CONFIG_RTC_DRV_R9701=m
CONFIG_RTC_DRV_RX4581=m
-CONFIG_RTC_DRV_RX6110=m
CONFIG_RTC_DRV_RS5C348=m
CONFIG_RTC_DRV_MAX6902=m
CONFIG_RTC_DRV_PCF2123=m
@@ -7741,6 +7967,7 @@ CONFIG_RTC_DRV_DS3232_HWMON=y
CONFIG_RTC_DRV_PCF2127=m
CONFIG_RTC_DRV_RV3029C2=m
CONFIG_RTC_DRV_RV3029_HWMON=y
+CONFIG_RTC_DRV_RX6110=m
#
# Platform RTC drivers
@@ -7783,6 +8010,7 @@ CONFIG_RTC_DRV_MT6397=m
# HID Sensor RTC drivers
#
CONFIG_RTC_DRV_HID_SENSOR_TIME=m
+CONFIG_RTC_DRV_GOLDFISH=m
CONFIG_RTC_DRV_WILCO_EC=m
CONFIG_DMADEVICES=y
# CONFIG_DMADEVICES_DEBUG is not set
@@ -7795,9 +8023,14 @@ CONFIG_DMA_VIRTUAL_CHANNELS=y
CONFIG_DMA_ACPI=y
CONFIG_ALTERA_MSGDMA=m
CONFIG_INTEL_IDMA64=m
+CONFIG_INTEL_IDXD_BUS=y
CONFIG_INTEL_IDXD=m
+CONFIG_INTEL_IDXD_COMPAT=y
+# CONFIG_INTEL_IDXD_SVM is not set
+# CONFIG_INTEL_IDXD_PERFMON is not set
CONFIG_INTEL_IOATDMA=m
CONFIG_PLX_DMA=m
+CONFIG_AMD_PTDMA=m
CONFIG_QCOM_HIDMA_MGMT=m
CONFIG_QCOM_HIDMA=m
CONFIG_DW_DMAC_CORE=y
@@ -7807,6 +8040,7 @@ CONFIG_DW_EDMA=m
CONFIG_DW_EDMA_PCIE=m
CONFIG_HSU_DMA=y
CONFIG_SF_PDMA=m
+# CONFIG_INTEL_LDMA is not set
#
# DMA Clients
@@ -7822,12 +8056,16 @@ CONFIG_SYNC_FILE=y
# CONFIG_SW_SYNC is not set
# CONFIG_UDMABUF is not set
# CONFIG_DMABUF_MOVE_NOTIFY is not set
+# CONFIG_DMABUF_DEBUG is not set
CONFIG_DMABUF_SELFTESTS=m
# CONFIG_DMABUF_HEAPS is not set
+# CONFIG_DMABUF_SYSFS_STATS is not set
# end of DMABUF options
CONFIG_DCA=m
CONFIG_AUXDISPLAY=y
+CONFIG_CHARLCD=m
+CONFIG_HD44780_COMMON=m
CONFIG_HD44780=m
CONFIG_KS0108=m
CONFIG_KS0108_PORT=0x378
@@ -7835,6 +8073,7 @@ CONFIG_KS0108_DELAY=2
CONFIG_CFAG12864B=m
CONFIG_CFAG12864B_RATE=20
CONFIG_IMG_ASCII_LCD=m
+CONFIG_LCD2S=m
CONFIG_PARPORT_PANEL=m
CONFIG_PANEL_PARPORT=0
CONFIG_PANEL_PROFILE=5
@@ -7843,7 +8082,6 @@ CONFIG_PANEL_PROFILE=5
# CONFIG_CHARLCD_BL_ON is not set
CONFIG_CHARLCD_BL_FLASH=y
CONFIG_PANEL=m
-CONFIG_CHARLCD=m
CONFIG_UIO=m
CONFIG_UIO_CIF=m
CONFIG_UIO_PDRV_GENIRQ=m
@@ -7855,22 +8093,25 @@ CONFIG_UIO_NETX=m
CONFIG_UIO_PRUSS=m
CONFIG_UIO_MF624=m
CONFIG_UIO_HV_GENERIC=m
+CONFIG_UIO_DFL=m
+CONFIG_VFIO=m
CONFIG_VFIO_IOMMU_TYPE1=m
CONFIG_VFIO_VIRQFD=m
-CONFIG_VFIO=m
# CONFIG_VFIO_NOIOMMU is not set
-CONFIG_VFIO_PCI=m
-CONFIG_VFIO_PCI_VGA=y
+CONFIG_VFIO_PCI_CORE=m
CONFIG_VFIO_PCI_MMAP=y
CONFIG_VFIO_PCI_INTX=y
+CONFIG_VFIO_PCI=m
+CONFIG_VFIO_PCI_VGA=y
CONFIG_VFIO_PCI_IGD=y
CONFIG_VFIO_MDEV=m
-CONFIG_VFIO_MDEV_DEVICE=m
CONFIG_IRQ_BYPASS_MANAGER=m
CONFIG_VIRT_DRIVERS=y
CONFIG_VBOXGUEST=m
CONFIG_NITRO_ENCLAVES=m
CONFIG_VIRTIO=m
+CONFIG_ARCH_HAS_RESTRICTED_VIRTIO_MEMORY_ACCESS=y
+CONFIG_VIRTIO_PCI_LIB=m
CONFIG_VIRTIO_MENU=y
CONFIG_VIRTIO_PCI=m
CONFIG_VIRTIO_PCI_LEGACY=y
@@ -7883,10 +8124,13 @@ CONFIG_VIRTIO_MMIO=m
CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES=y
CONFIG_VIRTIO_DMA_SHARED_BUFFER=m
CONFIG_VDPA=m
+CONFIG_VDPA_USER=m
CONFIG_IFCVF=m
CONFIG_MLX5_VDPA=y
CONFIG_MLX5_VDPA_NET=m
+CONFIG_VP_VDPA=m
CONFIG_VHOST_IOTLB=m
+CONFIG_VHOST_RING=m
CONFIG_VHOST=m
CONFIG_VHOST_MENU=y
CONFIG_VHOST_NET=m
@@ -7906,8 +8150,6 @@ CONFIG_HYPERV_BALLOON=m
CONFIG_GREYBUS=m
CONFIG_GREYBUS_ES2=m
-CONFIG_STAGING=y
-CONFIG_PRISM2_USB=m
CONFIG_COMEDI=m
# CONFIG_COMEDI_DEBUG is not set
CONFIG_COMEDI_DEFAULT_BUF_SIZE_KB=2048
@@ -8046,6 +8288,11 @@ CONFIG_COMEDI_NI_LABPC=m
CONFIG_COMEDI_NI_LABPC_ISADMA=m
CONFIG_COMEDI_NI_TIO=m
CONFIG_COMEDI_NI_ROUTING=m
+CONFIG_COMEDI_TESTS=m
+CONFIG_COMEDI_TESTS_EXAMPLE=m
+CONFIG_COMEDI_TESTS_NI_ROUTES=m
+CONFIG_STAGING=y
+CONFIG_PRISM2_USB=m
CONFIG_RTL8192U=m
CONFIG_RTLLIB=m
CONFIG_RTLLIB_CRYPTO_CCMP=m
@@ -8089,7 +8336,6 @@ CONFIG_ADT7316_I2C=m
#
# Capacitance to digital converters
#
-CONFIG_AD7150=m
CONFIG_AD7746=m
# end of Capacitance to digital converters
@@ -8143,6 +8389,11 @@ CONFIG_VIDEO_ZORAN_LML33=m
CONFIG_VIDEO_ZORAN_LML33R10=m
CONFIG_VIDEO_ZORAN_AVS6EYES=m
CONFIG_VIDEO_IPU3_IMGU=m
+CONFIG_DVB_AV7110_IR=y
+CONFIG_DVB_AV7110=m
+CONFIG_DVB_AV7110_OSD=y
+CONFIG_DVB_BUDGET_PATCH=m
+CONFIG_DVB_SP8870=m
#
# Android
@@ -8193,7 +8444,6 @@ CONFIG_FB_TFT_UPD161704=m
CONFIG_FB_TFT_WATTEROTT=m
CONFIG_MOST_COMPONENTS=m
CONFIG_MOST_NET=m
-CONFIG_MOST_SOUND=m
CONFIG_MOST_VIDEO=m
CONFIG_MOST_I2C=m
CONFIG_KS7010=m
@@ -8217,61 +8467,52 @@ CONFIG_GREYBUS_SPI=m
CONFIG_GREYBUS_UART=m
CONFIG_GREYBUS_USB=m
CONFIG_PI433=m
-
-#
-# Gasket devices
-#
-CONFIG_STAGING_GASKET_FRAMEWORK=m
-CONFIG_STAGING_APEX_DRIVER=m
-# end of Gasket devices
-
CONFIG_FIELDBUS_DEV=m
-CONFIG_KPC2000=y
-CONFIG_KPC2000_CORE=m
-CONFIG_KPC2000_SPI=m
-CONFIG_KPC2000_I2C=m
-CONFIG_KPC2000_DMA=m
CONFIG_QLGE=m
CONFIG_WFX=m
-CONFIG_SPMI_HISI3670=m
CONFIG_X86_PLATFORM_DEVICES=y
CONFIG_ACPI_WMI=m
CONFIG_WMI_BMOF=m
-CONFIG_ALIENWARE_WMI=m
CONFIG_HUAWEI_WMI=m
-CONFIG_INTEL_WMI_SBL_FW_UPDATE=m
-CONFIG_INTEL_WMI_THUNDERBOLT=m
CONFIG_MXM_WMI=m
CONFIG_PEAQ_WMI=m
CONFIG_XIAOMI_WMI=m
+CONFIG_GIGABYTE_WMI=m
CONFIG_ACERHDF=m
CONFIG_ACER_WIRELESS=m
CONFIG_ACER_WMI=m
+CONFIG_AMD_PMC=m
+CONFIG_ADV_SWBUTTON=m
CONFIG_APPLE_GMUX=m
CONFIG_ASUS_LAPTOP=m
CONFIG_ASUS_WIRELESS=m
CONFIG_ASUS_WMI=m
CONFIG_ASUS_NB_WMI=m
+CONFIG_MERAKI_MX100=m
CONFIG_EEEPC_LAPTOP=m
CONFIG_EEEPC_WMI=m
+CONFIG_X86_PLATFORM_DRIVERS_DELL=y
+CONFIG_ALIENWARE_WMI=m
CONFIG_DCDBAS=m
+CONFIG_DELL_LAPTOP=m
+CONFIG_DELL_RBU=m
+CONFIG_DELL_RBTN=m
CONFIG_DELL_SMBIOS=m
CONFIG_DELL_SMBIOS_WMI=y
CONFIG_DELL_SMBIOS_SMM=y
-CONFIG_DELL_LAPTOP=m
-CONFIG_DELL_RBTN=m
-CONFIG_DELL_RBU=m
CONFIG_DELL_SMO8800=m
CONFIG_DELL_WMI=m
-CONFIG_DELL_WMI_DESCRIPTOR=m
+# CONFIG_DELL_WMI_PRIVACY is not set
CONFIG_DELL_WMI_AIO=m
+CONFIG_DELL_WMI_DESCRIPTOR=m
CONFIG_DELL_WMI_LED=m
+CONFIG_DELL_WMI_SYSMAN=m
CONFIG_AMILO_RFKILL=m
CONFIG_FUJITSU_LAPTOP=m
CONFIG_FUJITSU_TABLET=m
CONFIG_GPD_POCKET_FAN=m
CONFIG_HP_ACCEL=m
-CONFIG_HP_WIRELESS=m
+CONFIG_WIRELESS_HOTKEY=m
CONFIG_HP_WMI=m
CONFIG_IBM_RTL=m
CONFIG_IDEAPAD_LAPTOP=m
@@ -8283,17 +8524,38 @@ CONFIG_THINKPAD_ACPI_ALSA_SUPPORT=y
# CONFIG_THINKPAD_ACPI_UNSAFE_LEDS is not set
CONFIG_THINKPAD_ACPI_VIDEO=y
CONFIG_THINKPAD_ACPI_HOTKEY_POLL=y
+CONFIG_THINKPAD_LMI=m
+CONFIG_INTEL_ATOMISP2_PDX86=y
CONFIG_INTEL_ATOMISP2_LED=m
+CONFIG_INTEL_SAR_INT1092=m
CONFIG_INTEL_CHT_INT33FE=m
+CONFIG_INTEL_SKL_INT3472=m
+CONFIG_INTEL_PMC_CORE=y
+# CONFIG_INTEL_PMT_TELEMETRY is not set
+# CONFIG_INTEL_PMT_CRASHLOG is not set
+
+#
+# Intel Speed Select Technology interface support
+#
+CONFIG_INTEL_SPEED_SELECT_INTERFACE=m
+# end of Intel Speed Select Technology interface support
+
+CONFIG_INTEL_TELEMETRY=m
+CONFIG_INTEL_WMI=y
+CONFIG_INTEL_WMI_SBL_FW_UPDATE=m
+CONFIG_INTEL_WMI_THUNDERBOLT=m
CONFIG_INTEL_HID_EVENT=m
+CONFIG_INTEL_VBTN=m
CONFIG_INTEL_INT0002_VGPIO=m
-CONFIG_INTEL_MENLOW=m
CONFIG_INTEL_OAKTRAIL=m
-CONFIG_INTEL_VBTN=m
-CONFIG_SURFACE3_WMI=m
-CONFIG_SURFACE_3_BUTTON=m
-CONFIG_SURFACE_3_POWER_OPREGION=m
-CONFIG_SURFACE_PRO3_BUTTON=m
+CONFIG_INTEL_BXTWC_PMIC_TMU=m
+CONFIG_INTEL_CHTDC_TI_PWRBTN=m
+CONFIG_INTEL_MRFLD_PWRBTN=m
+CONFIG_INTEL_PUNIT_IPC=m
+CONFIG_INTEL_RST=m
+CONFIG_INTEL_SMARTCONNECT=m
+CONFIG_INTEL_TURBO_MAX_3=y
+CONFIG_INTEL_UNCORE_FREQ_CONTROL=m
CONFIG_MSI_LAPTOP=m
CONFIG_MSI_WMI=m
CONFIG_PCENGINES_APU2=m
@@ -8313,31 +8575,15 @@ CONFIG_SYSTEM76_ACPI=m
CONFIG_TOPSTAR_LAPTOP=m
CONFIG_I2C_MULTI_INSTANTIATE=m
CONFIG_MLX_PLATFORM=m
+CONFIG_FW_ATTR_CLASS=m
CONFIG_INTEL_IPS=m
-CONFIG_INTEL_RST=m
-CONFIG_INTEL_SMARTCONNECT=m
-
-#
-# Intel Speed Select Technology interface support
-#
-CONFIG_INTEL_SPEED_SELECT_INTERFACE=m
-# end of Intel Speed Select Technology interface support
-
-CONFIG_INTEL_TURBO_MAX_3=y
-CONFIG_INTEL_UNCORE_FREQ_CONTROL=m
-CONFIG_INTEL_BXTWC_PMIC_TMU=m
-CONFIG_INTEL_CHTDC_TI_PWRBTN=m
-CONFIG_INTEL_MID_POWER_BUTTON=m
-CONFIG_INTEL_MRFLD_PWRBTN=m
-CONFIG_INTEL_PMC_CORE=y
-CONFIG_INTEL_PUNIT_IPC=m
CONFIG_INTEL_SCU_IPC=y
CONFIG_INTEL_SCU=y
CONFIG_INTEL_SCU_PCI=y
CONFIG_INTEL_SCU_PLATFORM=m
CONFIG_INTEL_SCU_IPC_UTIL=m
-CONFIG_INTEL_TELEMETRY=m
CONFIG_PMC_ATOM=y
+CONFIG_GOLDFISH_PIPE=m
CONFIG_CHROME_PLATFORMS=y
CONFIG_CHROMEOS_LAPTOP=m
CONFIG_CHROMEOS_PSTORE=m
@@ -8364,11 +8610,33 @@ CONFIG_WILCO_EC_TELEMETRY=m
CONFIG_MELLANOX_PLATFORM=y
CONFIG_MLXREG_HOTPLUG=m
CONFIG_MLXREG_IO=m
+CONFIG_SURFACE_PLATFORMS=y
+CONFIG_SURFACE3_WMI=m
+CONFIG_SURFACE_3_BUTTON=m
+CONFIG_SURFACE_3_POWER_OPREGION=m
+CONFIG_SURFACE_ACPI_NOTIFY=m
+CONFIG_SURFACE_AGGREGATOR_CDEV=m
+CONFIG_SURFACE_AGGREGATOR_REGISTRY=m
+CONFIG_SURFACE_DTX=m
+CONFIG_SURFACE_GPE=m
+CONFIG_SURFACE_HOTPLUG=m
+CONFIG_SURFACE_PLATFORM_PROFILE=m
+CONFIG_SURFACE_PRO3_BUTTON=m
+CONFIG_SURFACE_AGGREGATOR=m
+CONFIG_SURFACE_AGGREGATOR_BUS=y
CONFIG_HAVE_CLK=y
-CONFIG_CLKDEV_LOOKUP=y
CONFIG_HAVE_CLK_PREPARE=y
CONFIG_COMMON_CLK=y
CONFIG_COMMON_CLK_WM831X=m
+
+#
+# Clock driver for ARM Reference designs
+#
+# CONFIG_ICST is not set
+# CONFIG_CLK_SP810 is not set
+# end of Clock driver for ARM Reference designs
+
+CONFIG_LMK04832=m
CONFIG_COMMON_CLK_MAX9485=m
CONFIG_COMMON_CLK_SI5341=m
CONFIG_COMMON_CLK_SI5351=m
@@ -8376,6 +8644,7 @@ CONFIG_COMMON_CLK_SI544=m
CONFIG_COMMON_CLK_CDCE706=m
CONFIG_COMMON_CLK_CS2000_CP=m
CONFIG_COMMON_CLK_PWM=m
+# CONFIG_XILINX_VCU is not set
CONFIG_HWSPINLOCK=y
#
@@ -8397,11 +8666,15 @@ CONFIG_IOMMU_SUPPORT=y
#
# Generic IOMMU Pagetable Support
#
+CONFIG_IOMMU_IO_PGTABLE=y
# end of Generic IOMMU Pagetable Support
# CONFIG_IOMMU_DEBUGFS is not set
+# CONFIG_IOMMU_DEFAULT_DMA_STRICT is not set
+CONFIG_IOMMU_DEFAULT_DMA_LAZY=y
# CONFIG_IOMMU_DEFAULT_PASSTHROUGH is not set
CONFIG_IOMMU_DMA=y
+CONFIG_IOMMU_SVA_LIB=y
CONFIG_AMD_IOMMU=y
CONFIG_AMD_IOMMU_V2=m
CONFIG_DMAR_TABLE=y
@@ -8412,6 +8685,7 @@ CONFIG_INTEL_IOMMU_FLOPPY_WA=y
# CONFIG_INTEL_IOMMU_SCALABLE_MODE_DEFAULT_ON is not set
CONFIG_IRQ_REMAP=y
CONFIG_HYPERV_IOMMU=y
+CONFIG_VIRTIO_IOMMU=m
#
# Remoteproc drivers
@@ -8424,6 +8698,7 @@ CONFIG_HYPERV_IOMMU=y
#
CONFIG_RPMSG=m
CONFIG_RPMSG_CHAR=m
+CONFIG_RPMSG_NS=m
CONFIG_RPMSG_QCOM_GLINK=m
CONFIG_RPMSG_QCOM_GLINK_RPM=m
CONFIG_RPMSG_VIRTIO=m
@@ -8449,11 +8724,6 @@ CONFIG_SOUNDWIRE_GENERIC_ALLOCATION=m
# end of Amlogic SoC drivers
#
-# Aspeed SoC drivers
-#
-# end of Aspeed SoC drivers
-
-#
# Broadcom SoC drivers
#
# end of Broadcom SoC drivers
@@ -8469,6 +8739,11 @@ CONFIG_SOUNDWIRE_GENERIC_ALLOCATION=m
# end of i.MX SoC drivers
#
+# Enable LiteX SoC Builder specific drivers
+#
+# end of Enable LiteX SoC Builder specific drivers
+
+#
# Qualcomm SoC drivers
#
CONFIG_QCOM_QMI_HELPERS=m
@@ -8479,7 +8754,6 @@ CONFIG_QCOM_QMI_HELPERS=m
#
# Xilinx SoC drivers
#
-# CONFIG_XILINX_VCU is not set
# end of Xilinx SoC drivers
# end of SOC (System On Chip) specific Drivers
@@ -8504,7 +8778,6 @@ CONFIG_EXTCON=y
# Extcon Device Drivers
#
CONFIG_EXTCON_ADC_JACK=m
-CONFIG_EXTCON_ARIZONA=m
CONFIG_EXTCON_AXP288=m
CONFIG_EXTCON_FSA9480=m
CONFIG_EXTCON_GPIO=m
@@ -8518,7 +8791,9 @@ CONFIG_EXTCON_RT8973A=m
CONFIG_EXTCON_SM5502=m
CONFIG_EXTCON_USB_GPIO=m
CONFIG_EXTCON_USBC_CROS_EC=m
+CONFIG_EXTCON_USBC_TUSB320=m
CONFIG_MEMORY=y
+CONFIG_FPGA_DFL_EMIF=m
CONFIG_IIO=m
CONFIG_IIO_BUFFER=y
CONFIG_IIO_BUFFER_CB=m
@@ -8549,10 +8824,15 @@ CONFIG_BMA400_SPI=m
CONFIG_BMC150_ACCEL=m
CONFIG_BMC150_ACCEL_I2C=m
CONFIG_BMC150_ACCEL_SPI=m
+CONFIG_BMI088_ACCEL=m
+CONFIG_BMI088_ACCEL_SPI=m
CONFIG_DA280=m
CONFIG_DA311=m
CONFIG_DMARD09=m
CONFIG_DMARD10=m
+CONFIG_FXLS8962AF=m
+CONFIG_FXLS8962AF_I2C=m
+CONFIG_FXLS8962AF_SPI=m
CONFIG_HID_SENSOR_ACCEL_3D=m
CONFIG_IIO_CROS_EC_ACCEL_LEGACY=m
CONFIG_IIO_ST_ACCEL_3AXIS=m
@@ -8574,6 +8854,7 @@ CONFIG_MMA9553=m
CONFIG_MXC4005=m
CONFIG_MXC6255=m
CONFIG_SCA3000=m
+CONFIG_SCA3300=m
CONFIG_STK8312=m
CONFIG_STK8BA50=m
# end of Accelerometers
@@ -8624,6 +8905,7 @@ CONFIG_MAX9611=m
CONFIG_MCP320X=m
CONFIG_MCP3422=m
CONFIG_MCP3911=m
+CONFIG_MEDIATEK_MT6360_ADC=m
CONFIG_MEN_Z188_ADC=m
CONFIG_MP2629_ADC=m
CONFIG_NAU7802=m
@@ -8640,8 +8922,10 @@ CONFIG_TI_ADC128S052=m
CONFIG_TI_ADC161S626=m
CONFIG_TI_ADS1015=m
CONFIG_TI_ADS7950=m
+CONFIG_TI_ADS131E08=m
CONFIG_TI_AM335X_ADC=m
CONFIG_TI_TLC4541=m
+CONFIG_TI_TSC2046=m
CONFIG_VIPERBOARD_ADC=m
CONFIG_XILINX_XADC=m
# end of Analog to digital converters
@@ -8659,6 +8943,12 @@ CONFIG_HMC425=m
# end of Amplifiers
#
+# Capacitance to digital converters
+#
+CONFIG_AD7150=m
+# end of Capacitance to digital converters
+
+#
# Chemical Sensors
#
CONFIG_ATLAS_PH_SENSOR=m
@@ -8673,7 +8963,10 @@ CONFIG_SCD30_CORE=m
CONFIG_SCD30_I2C=m
CONFIG_SCD30_SERIAL=m
CONFIG_SENSIRION_SGP30=m
+CONFIG_SENSIRION_SGP40=m
CONFIG_SPS30=m
+CONFIG_SPS30_I2C=m
+CONFIG_SPS30_SERIAL=m
CONFIG_VZ89X=m
# end of Chemical Sensors
@@ -8691,6 +8984,11 @@ CONFIG_HID_SENSOR_IIO_TRIGGER=m
CONFIG_IIO_MS_SENSORS_I2C=m
#
+# IIO SCMI Sensors
+#
+# end of IIO SCMI Sensors
+
+#
# SSP Sensor Common
#
CONFIG_IIO_SSP_SENSORS_COMMONS=m
@@ -8722,6 +9020,7 @@ CONFIG_AD5755=m
CONFIG_AD5758=m
CONFIG_AD5761=m
CONFIG_AD5764=m
+CONFIG_AD5766=m
CONFIG_AD5770R=m
CONFIG_AD5791=m
CONFIG_AD7303=m
@@ -8841,6 +9140,9 @@ CONFIG_IIO_ST_LSM6DSX=m
CONFIG_IIO_ST_LSM6DSX_I2C=m
CONFIG_IIO_ST_LSM6DSX_SPI=m
CONFIG_IIO_ST_LSM6DSX_I3C=m
+CONFIG_IIO_ST_LSM9DS0=m
+CONFIG_IIO_ST_LSM9DS0_I2C=m
+CONFIG_IIO_ST_LSM9DS0_SPI=m
# end of Inertial measurement units
CONFIG_IIO_ADIS_LIB=m
@@ -8892,6 +9194,7 @@ CONFIG_TCS3414=m
CONFIG_TCS3472=m
CONFIG_SENSORS_TSL2563=m
CONFIG_TSL2583=m
+CONFIG_TSL2591=m
CONFIG_TSL2772=m
CONFIG_TSL4531=m
CONFIG_US5182D=m
@@ -8923,6 +9226,7 @@ CONFIG_SENSORS_HMC5843_SPI=m
CONFIG_SENSORS_RM3100=m
CONFIG_SENSORS_RM3100_I2C=m
CONFIG_SENSORS_RM3100_SPI=m
+CONFIG_YAMAHA_YAS530=m
# end of Magnetometer sensors
#
@@ -8950,11 +9254,13 @@ CONFIG_IIO_SYSFS_TRIGGER=m
# Linear and angular position sensors
#
CONFIG_IQS624_POS=m
+CONFIG_HID_SENSOR_CUSTOM_INTEL_HINGE=m
# end of Linear and angular position sensors
#
# Digital potentiometers
#
+CONFIG_AD5110=m
CONFIG_AD5272=m
CONFIG_DS1803=m
CONFIG_MAX5432=m
@@ -9013,6 +9319,7 @@ CONFIG_AS3935=m
#
# Proximity and distance sensors
#
+CONFIG_CROS_EC_MKBP_PROXIMITY=m
CONFIG_ISL29501=m
CONFIG_LIDAR_LITE_V2=m
CONFIG_MB1232=m
@@ -9044,6 +9351,7 @@ CONFIG_MLX90614=m
CONFIG_MLX90632=m
CONFIG_TMP006=m
CONFIG_TMP007=m
+CONFIG_TMP117=m
CONFIG_TSYS01=m
CONFIG_TSYS02D=m
CONFIG_MAX31856=m
@@ -9054,6 +9362,7 @@ CONFIG_NTB_MSI=y
CONFIG_NTB_AMD=m
CONFIG_NTB_IDT=m
CONFIG_NTB_INTEL=m
+CONFIG_NTB_EPF=m
CONFIG_NTB_SWITCHTEC=m
CONFIG_NTB_PINGPONG=m
CONFIG_NTB_TOOL=m
@@ -9082,6 +9391,7 @@ CONFIG_PWM=y
CONFIG_PWM_SYSFS=y
# CONFIG_PWM_DEBUG is not set
CONFIG_PWM_CROS_EC=m
+CONFIG_PWM_DWC=m
CONFIG_PWM_IQS620A=m
CONFIG_PWM_LP3943=m
CONFIG_PWM_LPSS=m
@@ -9106,6 +9416,7 @@ CONFIG_RESET_TI_SYSCON=m
#
CONFIG_GENERIC_PHY=y
CONFIG_USB_LGM_PHY=m
+CONFIG_PHY_CAN_TRANSCEIVER=m
CONFIG_BCM_KONA_USB2_PHY=m
CONFIG_PHY_PXA_28NM_HSIC=m
CONFIG_PHY_PXA_28NM_USB2=m
@@ -9121,6 +9432,7 @@ CONFIG_POWERCAP=y
CONFIG_INTEL_RAPL_CORE=m
CONFIG_INTEL_RAPL=m
# CONFIG_IDLE_INJECT is not set
+# CONFIG_DTPM is not set
CONFIG_MCB=m
CONFIG_MCB_PCI=m
CONFIG_MCB_LPC=m
@@ -9135,6 +9447,7 @@ CONFIG_RAS_CEC=y
# CONFIG_RAS_CEC_DEBUG is not set
CONFIG_USB4=m
# CONFIG_USB4_DEBUGFS_WRITE is not set
+CONFIG_USB4_DMA_TEST=m
#
# Android
@@ -9159,6 +9472,7 @@ CONFIG_NVMEM=y
CONFIG_NVMEM_SYSFS=y
CONFIG_NVMEM_SPMI_SDAM=m
CONFIG_RAVE_SP_EEPROM=m
+CONFIG_NVMEM_RMEM=m
#
# HW tracing support
@@ -9196,6 +9510,7 @@ CONFIG_FPGA_DFL_FME_MGR=m
CONFIG_FPGA_DFL_FME_BRIDGE=m
CONFIG_FPGA_DFL_FME_REGION=m
CONFIG_FPGA_DFL_AFU=m
+CONFIG_FPGA_DFL_NIOS_INTEL_PAC_N3000=m
CONFIG_FPGA_DFL_PCI=m
CONFIG_TEE=m
@@ -9223,9 +9538,12 @@ CONFIG_SLIMBUS=m
CONFIG_SLIM_QCOM_CTRL=m
# CONFIG_INTERCONNECT is not set
CONFIG_COUNTER=m
+CONFIG_INTERRUPT_CNT=m
+CONFIG_INTEL_QEP=m
CONFIG_MOST=m
CONFIG_MOST_USB_HDM=m
CONFIG_MOST_CDEV=m
+CONFIG_MOST_SND=m
# end of Device Drivers
#
@@ -9290,20 +9608,20 @@ CONFIG_F2FS_FS_XATTR=y
CONFIG_F2FS_FS_POSIX_ACL=y
CONFIG_F2FS_FS_SECURITY=y
CONFIG_F2FS_CHECK_FS=y
-# CONFIG_F2FS_IO_TRACE is not set
# CONFIG_F2FS_FAULT_INJECTION is not set
CONFIG_F2FS_FS_COMPRESSION=y
CONFIG_F2FS_FS_LZO=y
+CONFIG_F2FS_FS_LZORLE=y
CONFIG_F2FS_FS_LZ4=y
+CONFIG_F2FS_FS_LZ4HC=y
CONFIG_F2FS_FS_ZSTD=y
-CONFIG_F2FS_FS_LZORLE=y
+CONFIG_F2FS_IOSTAT=y
CONFIG_ZONEFS_FS=m
CONFIG_FS_DAX=y
CONFIG_FS_POSIX_ACL=y
CONFIG_EXPORTFS=y
CONFIG_EXPORTFS_BLOCK_OPS=y
CONFIG_FILE_LOCKING=y
-CONFIG_MANDATORY_FILE_LOCKING=y
CONFIG_FS_ENCRYPTION=y
CONFIG_FS_ENCRYPTION_ALGS=m
# CONFIG_FS_VERITY is not set
@@ -9337,14 +9655,13 @@ CONFIG_OVERLAY_FS_XINO_AUTO=y
#
# Caches
#
+CONFIG_NETFS_SUPPORT=m
+CONFIG_NETFS_STATS=y
CONFIG_FSCACHE=m
CONFIG_FSCACHE_STATS=y
-# CONFIG_FSCACHE_HISTOGRAM is not set
# CONFIG_FSCACHE_DEBUG is not set
-# CONFIG_FSCACHE_OBJECT_LIST is not set
CONFIG_CACHEFILES=m
# CONFIG_CACHEFILES_DEBUG is not set
-# CONFIG_CACHEFILES_HISTOGRAM is not set
# end of Caches
#
@@ -9370,6 +9687,10 @@ CONFIG_EXFAT_DEFAULT_IOCHARSET="utf8"
CONFIG_NTFS_FS=m
# CONFIG_NTFS_DEBUG is not set
CONFIG_NTFS_RW=y
+CONFIG_NTFS3_FS=m
+# CONFIG_NTFS3_64BIT_CLUSTER is not set
+CONFIG_NTFS3_LZX_XPRESS=y
+CONFIG_NTFS3_FS_POSIX_ACL=y
# end of DOS/FAT/EXFAT/NT Filesystems
#
@@ -9390,6 +9711,8 @@ CONFIG_TMPFS_XATTR=y
# CONFIG_TMPFS_INODE64 is not set
CONFIG_HUGETLBFS=y
CONFIG_HUGETLB_PAGE=y
+CONFIG_HUGETLB_PAGE_FREE_VMEMMAP=y
+# CONFIG_HUGETLB_PAGE_FREE_VMEMMAP_DEFAULT_ON is not set
CONFIG_MEMFD_CREATE=y
CONFIG_ARCH_HAS_GIGANTIC_PAGE=y
CONFIG_CONFIGFS_FS=y
@@ -9467,6 +9790,7 @@ CONFIG_ROMFS_BACKED_BY_BOTH=y
CONFIG_ROMFS_ON_BLOCK=y
CONFIG_ROMFS_ON_MTD=y
CONFIG_PSTORE=y
+CONFIG_PSTORE_DEFAULT_KMSG_BYTES=10240
CONFIG_PSTORE_DEFLATE_COMPRESS=y
CONFIG_PSTORE_LZO_COMPRESS=y
CONFIG_PSTORE_LZ4_COMPRESS=y
@@ -9485,6 +9809,12 @@ CONFIG_PSTORE_COMPRESS_DEFAULT="zstd"
CONFIG_PSTORE_PMSG=y
# CONFIG_PSTORE_FTRACE is not set
CONFIG_PSTORE_RAM=m
+CONFIG_PSTORE_ZONE=m
+CONFIG_PSTORE_BLK=m
+CONFIG_PSTORE_BLK_BLKDEV=""
+CONFIG_PSTORE_BLK_KMSG_SIZE=64
+CONFIG_PSTORE_BLK_MAX_REASON=2
+CONFIG_PSTORE_BLK_PMSG_SIZE=64
CONFIG_SYSV_FS=m
CONFIG_UFS_FS=m
# CONFIG_UFS_FS_WRITE is not set
@@ -9532,6 +9862,7 @@ CONFIG_LOCKD=m
CONFIG_LOCKD_V4=y
CONFIG_NFS_ACL_SUPPORT=m
CONFIG_NFS_COMMON=y
+CONFIG_NFS_V4_2_SSC_HELPER=y
CONFIG_SUNRPC=m
CONFIG_SUNRPC_GSS=m
CONFIG_SUNRPC_BACKCHANNEL=y
@@ -9547,14 +9878,16 @@ CONFIG_CEPH_FS_POSIX_ACL=y
CONFIG_CIFS=m
CONFIG_CIFS_STATS2=y
CONFIG_CIFS_ALLOW_INSECURE_LEGACY=y
-CONFIG_CIFS_WEAK_PW_HASH=y
CONFIG_CIFS_UPCALL=y
CONFIG_CIFS_XATTR=y
CONFIG_CIFS_POSIX=y
# CONFIG_CIFS_DEBUG is not set
CONFIG_CIFS_DFS_UPCALL=y
+CONFIG_CIFS_SWN_UPCALL=y
# CONFIG_CIFS_SMB_DIRECT is not set
CONFIG_CIFS_FSCACHE=y
+# CONFIG_SMB_SERVER is not set
+CONFIG_SMBFS_COMMON=m
CONFIG_CODA_FS=m
CONFIG_AFS_FS=m
# CONFIG_AFS_DEBUG is not set
@@ -9656,6 +9989,7 @@ CONFIG_SECURITY_APPARMOR_HASH_DEFAULT=y
CONFIG_SECURITY_YAMA=y
# CONFIG_SECURITY_SAFESETID is not set
# CONFIG_SECURITY_LOCKDOWN_LSM is not set
+# CONFIG_SECURITY_LANDLOCK is not set
CONFIG_INTEGRITY=y
# CONFIG_INTEGRITY_SIGNATURE is not set
CONFIG_INTEGRITY_AUDIT=y
@@ -9719,7 +10053,6 @@ CONFIG_CRYPTO_CRYPTD=m
CONFIG_CRYPTO_AUTHENC=m
CONFIG_CRYPTO_TEST=m
CONFIG_CRYPTO_SIMD=m
-CONFIG_CRYPTO_GLUE_HELPER_X86=m
CONFIG_CRYPTO_ENGINE=m
#
@@ -9729,6 +10062,7 @@ CONFIG_CRYPTO_RSA=y
CONFIG_CRYPTO_DH=m
CONFIG_CRYPTO_ECC=m
CONFIG_CRYPTO_ECDH=m
+CONFIG_CRYPTO_ECDSA=m
CONFIG_CRYPTO_ECRDSA=m
CONFIG_CRYPTO_SM2=m
CONFIG_CRYPTO_CURVE25519=m
@@ -9791,10 +10125,7 @@ CONFIG_CRYPTO_POLY1305_X86_64=m
CONFIG_CRYPTO_MD4=m
CONFIG_CRYPTO_MD5=y
CONFIG_CRYPTO_MICHAEL_MIC=m
-CONFIG_CRYPTO_RMD128=m
CONFIG_CRYPTO_RMD160=m
-CONFIG_CRYPTO_RMD256=m
-CONFIG_CRYPTO_RMD320=m
CONFIG_CRYPTO_SHA1=y
CONFIG_CRYPTO_SHA1_SSSE3=m
CONFIG_CRYPTO_SHA256_SSSE3=m
@@ -9804,7 +10135,6 @@ CONFIG_CRYPTO_SHA512=y
CONFIG_CRYPTO_SHA3=m
CONFIG_CRYPTO_SM3=m
CONFIG_CRYPTO_STREEBOG=m
-CONFIG_CRYPTO_TGR192=m
CONFIG_CRYPTO_WP512=m
CONFIG_CRYPTO_GHASH_CLMUL_NI_INTEL=m
@@ -9832,7 +10162,6 @@ CONFIG_CRYPTO_DES=m
CONFIG_CRYPTO_DES3_EDE_X86_64=m
CONFIG_CRYPTO_FCRYPT=m
CONFIG_CRYPTO_KHAZAD=m
-CONFIG_CRYPTO_SALSA20=m
CONFIG_CRYPTO_CHACHA20=m
CONFIG_CRYPTO_CHACHA20_X86_64=m
CONFIG_CRYPTO_SEED=m
@@ -9841,6 +10170,8 @@ CONFIG_CRYPTO_SERPENT_SSE2_X86_64=m
CONFIG_CRYPTO_SERPENT_AVX_X86_64=m
CONFIG_CRYPTO_SERPENT_AVX2_X86_64=m
CONFIG_CRYPTO_SM4=m
+CONFIG_CRYPTO_SM4_AESNI_AVX_X86_64=m
+CONFIG_CRYPTO_SM4_AESNI_AVX2_X86_64=m
CONFIG_CRYPTO_TEA=m
CONFIG_CRYPTO_TWOFISH=m
CONFIG_CRYPTO_TWOFISH_COMMON=m
@@ -9899,6 +10230,7 @@ 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
@@ -9916,6 +10248,7 @@ CONFIG_CRYPTO_DEV_QAT=m
CONFIG_CRYPTO_DEV_QAT_DH895xCC=m
CONFIG_CRYPTO_DEV_QAT_C3XXX=m
CONFIG_CRYPTO_DEV_QAT_C62X=m
+CONFIG_CRYPTO_DEV_QAT_4XXX=m
CONFIG_CRYPTO_DEV_QAT_DH895xCCVF=m
CONFIG_CRYPTO_DEV_QAT_C3XXXVF=m
CONFIG_CRYPTO_DEV_QAT_C62XVF=m
@@ -10051,6 +10384,7 @@ CONFIG_CMA_SIZE_SEL_MBYTES=y
# CONFIG_CMA_SIZE_SEL_MAX is not set
CONFIG_CMA_ALIGNMENT=8
# CONFIG_DMA_API_DEBUG is not set
+# CONFIG_DMA_MAP_BENCHMARK is not set
CONFIG_SGL_ALLOC=y
CONFIG_IOMMU_HELPER=y
CONFIG_CHECK_SIGNATURE=y
@@ -10094,10 +10428,10 @@ CONFIG_ARCH_STACKWALK=y
CONFIG_SBITMAP=y
CONFIG_PARMAN=m
CONFIG_OBJAGG=m
-# CONFIG_STRING_SELFTEST is not set
# end of Library routines
CONFIG_PLDMFW=y
+CONFIG_ASN1_ENCODER=m
#
# Kernel hacking
@@ -10108,6 +10442,7 @@ CONFIG_PLDMFW=y
#
# CONFIG_PRINTK_TIME is not set
# CONFIG_PRINTK_CALLER is not set
+# CONFIG_STACKTRACE_BUILD_ID is not set
CONFIG_CONSOLE_LOGLEVEL_DEFAULT=1
CONFIG_CONSOLE_LOGLEVEL_QUIET=4
CONFIG_MESSAGE_LOGLEVEL_DEFAULT=1
@@ -10122,7 +10457,6 @@ CONFIG_DEBUG_BUGVERBOSE=y
# Compile-time checks and compiler options
#
# CONFIG_DEBUG_INFO is not set
-# CONFIG_ENABLE_MUST_CHECK is not set
CONFIG_FRAME_WARN=0
CONFIG_STRIP_ASM_SYMS=y
# CONFIG_READABLE_ASM is not set
@@ -10187,6 +10521,8 @@ CONFIG_HAVE_ARCH_KASAN_VMALLOC=y
CONFIG_CC_HAS_KASAN_GENERIC=y
CONFIG_CC_HAS_WORKING_NOSANITIZE_ADDRESS=y
# CONFIG_KASAN is not set
+CONFIG_HAVE_ARCH_KFENCE=y
+# CONFIG_KFENCE is not set
# end of Memory Debugging
# CONFIG_DEBUG_SHIRQ is not set
@@ -10236,6 +10572,7 @@ CONFIG_SCF_TORTURE_TEST=m
# CONFIG_CSD_LOCK_WAIT_DEBUG is not set
# end of Lock Debugging (spinlocks, mutexes, etc...)
+# CONFIG_DEBUG_IRQFLAGS is not set
CONFIG_STACKTRACE=y
# CONFIG_WARN_ALL_UNSEEDED_RANDOM is not set
# CONFIG_DEBUG_KOBJECT is not set
@@ -10265,7 +10602,6 @@ CONFIG_RCU_CPU_STALL_TIMEOUT=60
# end of RCU Debugging
# CONFIG_DEBUG_WQ_FORCE_RR_CPU is not set
-# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
# CONFIG_CPU_HOTPLUG_STATE_CONTROL is not set
CONFIG_LATENCYTOP=y
CONFIG_USER_STACKTRACE_SUPPORT=y
@@ -10275,9 +10611,11 @@ CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
CONFIG_HAVE_DYNAMIC_FTRACE=y
CONFIG_HAVE_DYNAMIC_FTRACE_WITH_REGS=y
CONFIG_HAVE_DYNAMIC_FTRACE_WITH_DIRECT_CALLS=y
+CONFIG_HAVE_DYNAMIC_FTRACE_WITH_ARGS=y
CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
CONFIG_HAVE_SYSCALL_TRACEPOINTS=y
CONFIG_HAVE_FENTRY=y
+CONFIG_HAVE_OBJTOOL_MCOUNT=y
CONFIG_HAVE_C_RECORDMCOUNT=y
CONFIG_TRACE_CLOCK=y
CONFIG_RING_BUFFER=y
@@ -10293,12 +10631,15 @@ CONFIG_FUNCTION_TRACER=y
CONFIG_DYNAMIC_FTRACE=y
CONFIG_DYNAMIC_FTRACE_WITH_REGS=y
CONFIG_DYNAMIC_FTRACE_WITH_DIRECT_CALLS=y
+CONFIG_DYNAMIC_FTRACE_WITH_ARGS=y
CONFIG_FUNCTION_PROFILER=y
CONFIG_STACK_TRACER=y
# CONFIG_IRQSOFF_TRACER is not set
# CONFIG_PREEMPT_TRACER is not set
# CONFIG_SCHED_TRACER is not set
# CONFIG_HWLAT_TRACER is not set
+# CONFIG_OSNOISE_TRACER is not set
+# CONFIG_TIMERLAT_TRACER is not set
# CONFIG_MMIOTRACE is not set
CONFIG_FTRACE_SYSCALLS=y
# CONFIG_TRACER_SNAPSHOT is not set
@@ -10307,14 +10648,17 @@ CONFIG_BRANCH_PROFILE_NONE=y
CONFIG_BLK_DEV_IO_TRACE=y
# CONFIG_UPROBE_EVENTS is not set
CONFIG_FTRACE_MCOUNT_RECORD=y
+CONFIG_FTRACE_MCOUNT_USE_CC=y
# CONFIG_SYNTH_EVENTS is not set
# CONFIG_HIST_TRIGGERS is not set
# CONFIG_TRACE_EVENT_INJECT is not set
# CONFIG_TRACEPOINT_BENCHMARK is not set
# CONFIG_RING_BUFFER_BENCHMARK is not set
# CONFIG_TRACE_EVAL_MAP_FILE is not set
+# CONFIG_FTRACE_RECORD_RECURSION is not set
# CONFIG_FTRACE_STARTUP_TEST is not set
# CONFIG_RING_BUFFER_STARTUP_TEST is not set
+# CONFIG_RING_BUFFER_VALIDATE_TIME_DELTAS is not set
CONFIG_PREEMPTIRQ_DELAY_TEST=m
# CONFIG_PROVIDE_OHCI1394_DMA_INIT is not set
# CONFIG_SAMPLES is not set
@@ -10325,7 +10669,6 @@ CONFIG_IO_STRICT_DEVMEM=y
#
# x86 Debugging
#
-CONFIG_TRACE_IRQFLAGS_SUPPORT=y
CONFIG_TRACE_IRQFLAGS_NMI_SUPPORT=y
CONFIG_EARLY_PRINTK_USB=y
CONFIG_X86_VERBOSE_BOOTUP=y
@@ -10361,6 +10704,7 @@ CONFIG_ARCH_HAS_KCOV=y
CONFIG_CC_HAS_SANCOV_TRACE_PC=y
# CONFIG_KCOV is not set
# CONFIG_RUNTIME_TESTING_MENU is not set
+CONFIG_ARCH_USE_MEMTEST=y
CONFIG_MEMTEST=y
# CONFIG_HYPERV_TESTING is not set
# end of Kernel Testing and Coverage
diff --git a/sys-kernel/linux-image-redcore-lts/files/5.10-apic_vector-spam-in-debug-mode-only.patch b/sys-kernel/linux-image-redcore-lts/files/5.15-apic_vector-spam-in-debug-mode-only.patch
index 0771ca17..0771ca17 100644
--- a/sys-kernel/linux-image-redcore-lts/files/5.10-apic_vector-spam-in-debug-mode-only.patch
+++ b/sys-kernel/linux-image-redcore-lts/files/5.15-apic_vector-spam-in-debug-mode-only.patch
diff --git a/sys-kernel/linux-image-redcore-lts/files/5.10-ata-fix-NCQ-LOG-strings-and-move-to-debug.patch b/sys-kernel/linux-image-redcore-lts/files/5.15-ata-fix-NCQ-LOG-strings-and-move-to-debug.patch
index 344a8c4b..344a8c4b 100644
--- a/sys-kernel/linux-image-redcore-lts/files/5.10-ata-fix-NCQ-LOG-strings-and-move-to-debug.patch
+++ b/sys-kernel/linux-image-redcore-lts/files/5.15-ata-fix-NCQ-LOG-strings-and-move-to-debug.patch
diff --git a/sys-kernel/linux-image-redcore-lts/files/5.10-ath10k-be-quiet.patch b/sys-kernel/linux-image-redcore-lts/files/5.15-ath10k-be-quiet.patch
index a6c715e7..a6c715e7 100644
--- a/sys-kernel/linux-image-redcore-lts/files/5.10-ath10k-be-quiet.patch
+++ b/sys-kernel/linux-image-redcore-lts/files/5.15-ath10k-be-quiet.patch
diff --git a/sys-kernel/linux-image-redcore-lts/files/5.10-do_not_bug_the_next_18-years.patch b/sys-kernel/linux-image-redcore-lts/files/5.15-do_not_bug_the_next_18-years.patch
index 75763d62..75763d62 100644
--- a/sys-kernel/linux-image-redcore-lts/files/5.10-do_not_bug_the_next_18-years.patch
+++ b/sys-kernel/linux-image-redcore-lts/files/5.15-do_not_bug_the_next_18-years.patch
diff --git a/sys-kernel/linux-image-redcore-lts/files/5.10-fix-bootconfig-makefile.patch b/sys-kernel/linux-image-redcore-lts/files/5.15-fix-bootconfig-makefile.patch
index 4399ecda..4399ecda 100644
--- a/sys-kernel/linux-image-redcore-lts/files/5.10-fix-bootconfig-makefile.patch
+++ b/sys-kernel/linux-image-redcore-lts/files/5.15-fix-bootconfig-makefile.patch
diff --git a/sys-kernel/linux-image-redcore-lts/files/5.10-iwlwifi-fix-5e003982b07ae.patch b/sys-kernel/linux-image-redcore-lts/files/5.15-iwlwifi-fix-5e003982b07ae.patch
index e1eb15f9..e1eb15f9 100644
--- a/sys-kernel/linux-image-redcore-lts/files/5.10-iwlwifi-fix-5e003982b07ae.patch
+++ b/sys-kernel/linux-image-redcore-lts/files/5.15-iwlwifi-fix-5e003982b07ae.patch
diff --git a/sys-kernel/linux-image-redcore-lts/files/5.10-iwlwifi-use-debug-for-debug-infos.patch b/sys-kernel/linux-image-redcore-lts/files/5.15-iwlwifi-use-debug-for-debug-infos.patch
index 5ec56c69..5ec56c69 100644
--- a/sys-kernel/linux-image-redcore-lts/files/5.10-iwlwifi-use-debug-for-debug-infos.patch
+++ b/sys-kernel/linux-image-redcore-lts/files/5.15-iwlwifi-use-debug-for-debug-infos.patch
diff --git a/sys-kernel/linux-image-redcore-lts/files/5.10-radeon_dp_aux_transfer_native-no-ratelimited_debug.patch b/sys-kernel/linux-image-redcore-lts/files/5.15-radeon_dp_aux_transfer_native-no-ratelimited_debug.patch
index 6ffcb42c..6ffcb42c 100644
--- a/sys-kernel/linux-image-redcore-lts/files/5.10-radeon_dp_aux_transfer_native-no-ratelimited_debug.patch
+++ b/sys-kernel/linux-image-redcore-lts/files/5.15-radeon_dp_aux_transfer_native-no-ratelimited_debug.patch
diff --git a/sys-kernel/linux-image-redcore-lts/files/5.10-revert-parts-of-a00ec3874e7d326ab2dffbed92faddf6a77a84e9-no-Intel-NO.patch b/sys-kernel/linux-image-redcore-lts/files/5.15-revert-parts-of-a00ec3874e7d326ab2dffbed92faddf6a77a84e9-no-Intel-NO.patch
index dec57667..dec57667 100644
--- a/sys-kernel/linux-image-redcore-lts/files/5.10-revert-parts-of-a00ec3874e7d326ab2dffbed92faddf6a77a84e9-no-Intel-NO.patch
+++ b/sys-kernel/linux-image-redcore-lts/files/5.15-revert-parts-of-a00ec3874e7d326ab2dffbed92faddf6a77a84e9-no-Intel-NO.patch
diff --git a/sys-kernel/linux-image-redcore-lts/files/5.10-uksm.patch b/sys-kernel/linux-image-redcore-lts/files/5.15-uksm.patch
index eacd7b69..9ea6867f 100644
--- a/sys-kernel/linux-image-redcore-lts/files/5.10-uksm.patch
+++ b/sys-kernel/linux-image-redcore-lts/files/5.15-uksm.patch
@@ -66,33 +66,32 @@ index 000000000000..be19a3127001
+2016-09-10 UKSM 0.1.2.5 Fix a bug in dedup ratio calculation.
+2017-02-26 UKSM 0.1.2.6 Fix a bug in hugetlbpage handling and a race bug with page migration.
diff --git a/fs/exec.c b/fs/exec.c
-index 547a2390baf5..fc64a20db6bd 100644
+index a098c133d8d7..da9985b3e310 100644
--- a/fs/exec.c
+++ b/fs/exec.c
-@@ -64,6 +64,7 @@
- #include <linux/compat.h>
+@@ -65,6 +65,7 @@
#include <linux/vmalloc.h>
#include <linux/io_uring.h>
+ #include <linux/syscall_user_dispatch.h>
+#include <linux/ksm.h>
#include <linux/uaccess.h>
#include <asm/mmu_context.h>
diff --git a/fs/proc/meminfo.c b/fs/proc/meminfo.c
-index 887a5532e449..581a6762868e 100644
+index 6fa761c9cc78..45fd59a0d85c 100644
--- a/fs/proc/meminfo.c
+++ b/fs/proc/meminfo.c
-@@ -108,7 +108,10 @@ static int meminfo_proc_show(struct seq_file *m, void *v)
+@@ -108,6 +108,10 @@ static int meminfo_proc_show(struct seq_file *m, void *v)
#endif
show_val_kb(m, "PageTables: ",
- global_zone_page_state(NR_PAGETABLE));
--
+ global_node_page_state(NR_PAGETABLE));
+#ifdef CONFIG_UKSM
+ show_val_kb(m, "KsmZeroPages: ",
+ global_zone_page_state(NR_UKSM_ZERO_PAGES));
+#endif
+
show_val_kb(m, "NFS_Unstable: ", 0);
show_val_kb(m, "Bounce: ",
- global_zone_page_state(NR_BOUNCE));
diff --git a/include/linux/ksm.h b/include/linux/ksm.h
index 161e8164abcf..f0dbdf3c986a 100644
--- a/include/linux/ksm.h
@@ -165,10 +164,10 @@ index 161e8164abcf..f0dbdf3c986a 100644
+
#endif /* __LINUX_KSM_H */
diff --git a/include/linux/mm_types.h b/include/linux/mm_types.h
-index 5a9238f6caad..5dd1ccf5cb69 100644
+index 7f8ee09c711f..da86d7fc0ea3 100644
--- a/include/linux/mm_types.h
+++ b/include/linux/mm_types.h
-@@ -371,6 +371,9 @@ struct vm_area_struct {
+@@ -385,6 +385,9 @@ struct vm_area_struct {
struct mempolicy *vm_policy; /* NUMA policy for the VMA */
#endif
struct vm_userfaultfd_ctx vm_userfaultfd_ctx;
@@ -179,10 +178,10 @@ index 5a9238f6caad..5dd1ccf5cb69 100644
struct core_thread {
diff --git a/include/linux/mmzone.h b/include/linux/mmzone.h
-index fb3bf696c05e..e4477c3a9a4b 100644
+index 6a1d79d84675..4af26d848c40 100644
--- a/include/linux/mmzone.h
+++ b/include/linux/mmzone.h
-@@ -159,6 +159,9 @@ enum zone_stat_item {
+@@ -158,6 +158,9 @@ enum zone_stat_item {
NR_ZSPAGES, /* allocated in zsmalloc */
#endif
NR_FREE_CMA_PAGES,
@@ -193,10 +192,10 @@ index fb3bf696c05e..e4477c3a9a4b 100644
enum node_stat_item {
diff --git a/include/linux/pgtable.h b/include/linux/pgtable.h
-index e237004d498d..092cdfb7090b 100644
+index e24d2c992b11..8e9d8af58cf2 100644
--- a/include/linux/pgtable.h
+++ b/include/linux/pgtable.h
-@@ -1060,12 +1060,25 @@ extern void untrack_pfn(struct vm_area_struct *vma, unsigned long pfn,
+@@ -1137,13 +1137,26 @@ extern void untrack_pfn(struct vm_area_struct *vma, unsigned long pfn,
extern void untrack_pfn_moved(struct vm_area_struct *vma);
#endif
@@ -213,6 +212,7 @@ index e237004d498d..092cdfb7090b 100644
+}
+#endif
+
+ #ifdef CONFIG_MMU
#ifdef __HAVE_COLOR_ZERO_PAGE
static inline int is_zero_pfn(unsigned long pfn)
{
@@ -223,7 +223,7 @@ index e237004d498d..092cdfb7090b 100644
}
#define my_zero_pfn(addr) page_to_pfn(ZERO_PAGE(addr))
-@@ -1074,7 +1087,7 @@ static inline int is_zero_pfn(unsigned long pfn)
+@@ -1152,7 +1165,7 @@ static inline int is_zero_pfn(unsigned long pfn)
static inline int is_zero_pfn(unsigned long pfn)
{
extern unsigned long zero_pfn;
@@ -471,10 +471,10 @@ index 000000000000..bb8651f534f2
+#endif /* !CONFIG_UKSM */
+#endif /* __LINUX_UKSM_H */
diff --git a/kernel/fork.c b/kernel/fork.c
-index 6d266388d380..bb52f8731dd6 100644
+index 38681ad44c76..af32e377dcb7 100644
--- a/kernel/fork.c
+++ b/kernel/fork.c
-@@ -587,7 +587,7 @@ static __latent_entropy int dup_mmap(struct mm_struct *mm,
+@@ -604,7 +604,7 @@ static __latent_entropy int dup_mmap(struct mm_struct *mm,
__vma_link_rb(mm, tmp, rb_link, rb_parent);
rb_link = &tmp->vm_rb.rb_right;
rb_parent = &tmp->vm_rb;
@@ -484,11 +484,11 @@ index 6d266388d380..bb52f8731dd6 100644
if (!(tmp->vm_flags & VM_WIPEONFORK))
retval = copy_page_range(tmp, mpnt);
diff --git a/lib/Makefile b/lib/Makefile
-index d415fc7067c5..e4045ebec8cd 100644
+index a841be5244ac..446bb9818b42 100644
--- a/lib/Makefile
+++ b/lib/Makefile
-@@ -31,7 +31,7 @@ endif
- KCSAN_SANITIZE_random32.o := n
+@@ -28,7 +28,7 @@ CFLAGS_string.o += -fno-stack-protector
+ endif
lib-y := ctype.o string.o vsprintf.o cmdline.o \
- rbtree.o radix-tree.o timerqueue.o xarray.o \
@@ -979,10 +979,10 @@ index 000000000000..ab21e6309b93
+ return 0;
+}
diff --git a/mm/Kconfig b/mm/Kconfig
-index 390165ffbb0f..50d02cfa0b68 100644
+index d16ba9249bc5..744b0ed24de0 100644
--- a/mm/Kconfig
+++ b/mm/Kconfig
-@@ -317,6 +317,32 @@ config KSM
+@@ -301,6 +301,32 @@ config KSM
See Documentation/vm/ksm.rst for more information: KSM is inactive
until a program has madvised that an area is MADV_MERGEABLE, and
root has set /sys/kernel/mm/ksm/run to 1 (if CONFIG_SYSFS is set).
@@ -1016,10 +1016,10 @@ index 390165ffbb0f..50d02cfa0b68 100644
config DEFAULT_MMAP_MIN_ADDR
int "Low address space to protect from user allocation"
diff --git a/mm/Makefile b/mm/Makefile
-index d73aed0fc99c..d6612b76c5da 100644
+index fc60a40ce954..69015e892830 100644
--- a/mm/Makefile
+++ b/mm/Makefile
-@@ -76,7 +76,8 @@ obj-$(CONFIG_SPARSEMEM) += sparse.o
+@@ -81,7 +81,8 @@ obj-$(CONFIG_SPARSEMEM) += sparse.o
obj-$(CONFIG_SPARSEMEM_VMEMMAP) += sparse-vmemmap.o
obj-$(CONFIG_SLOB) += slob.o
obj-$(CONFIG_MMU_NOTIFIER) += mmu_notifier.o
@@ -1030,10 +1030,10 @@ index d73aed0fc99c..d6612b76c5da 100644
obj-$(CONFIG_SLAB) += slab.o
obj-$(CONFIG_SLUB) += slub.o
diff --git a/mm/ksm.c b/mm/ksm.c
-index 0960750bb316..ae17158cb67a 100644
+index a5716fdec1aa..b8a7f01cd823 100644
--- a/mm/ksm.c
+++ b/mm/ksm.c
-@@ -858,17 +858,6 @@ static int unmerge_ksm_pages(struct vm_area_struct *vma,
+@@ -852,17 +852,6 @@ static int unmerge_ksm_pages(struct vm_area_struct *vma,
return err;
}
@@ -1052,10 +1052,10 @@ index 0960750bb316..ae17158cb67a 100644
/*
* Only called through the sysfs control interface:
diff --git a/mm/memory.c b/mm/memory.c
-index c48f8df6e502..db47ee177008 100644
+index c52be6d6b605..c5512e69751c 100644
--- a/mm/memory.c
+++ b/mm/memory.c
-@@ -146,6 +146,25 @@ EXPORT_SYMBOL(zero_pfn);
+@@ -157,6 +157,25 @@ EXPORT_SYMBOL(zero_pfn);
unsigned long highest_memmap_pfn __read_mostly;
@@ -1081,7 +1081,7 @@ index c48f8df6e502..db47ee177008 100644
/*
* CONFIG_MMU architectures set up ZERO_PAGE in their paging_init()
*/
-@@ -161,6 +180,7 @@ void mm_trace_rss_stat(struct mm_struct *mm, int member, long count)
+@@ -172,6 +191,7 @@ void mm_trace_rss_stat(struct mm_struct *mm, int member, long count)
trace_rss_stat(mm, member, count);
}
@@ -1089,7 +1089,7 @@ index c48f8df6e502..db47ee177008 100644
#if defined(SPLIT_RSS_COUNTING)
void sync_mm_rss(struct mm_struct *mm)
-@@ -869,6 +889,11 @@ copy_present_pte(struct vm_area_struct *dst_vma, struct vm_area_struct *src_vma,
+@@ -954,6 +974,11 @@ copy_present_pte(struct vm_area_struct *dst_vma, struct vm_area_struct *src_vma,
get_page(page);
page_dup_rmap(page, false);
rss[mm_counter(page)]++;
@@ -1101,7 +1101,7 @@ index c48f8df6e502..db47ee177008 100644
}
/*
-@@ -1237,8 +1262,10 @@ static unsigned long zap_pte_range(struct mmu_gather *tlb,
+@@ -1346,8 +1371,10 @@ static unsigned long zap_pte_range(struct mmu_gather *tlb,
ptent = ptep_get_and_clear_full(mm, addr, pte,
tlb->fullmm);
tlb_remove_tlb_entry(tlb, pte, addr);
@@ -1113,7 +1113,7 @@ index c48f8df6e502..db47ee177008 100644
if (!PageAnon(page)) {
if (pte_dirty(ptent)) {
-@@ -2586,6 +2613,7 @@ static inline bool cow_user_page(struct page *dst, struct page *src,
+@@ -2753,6 +2780,7 @@ static inline bool cow_user_page(struct page *dst, struct page *src,
if (likely(src)) {
copy_user_highpage(dst, src, addr, vma);
@@ -1121,7 +1121,7 @@ index c48f8df6e502..db47ee177008 100644
return true;
}
-@@ -2832,6 +2860,7 @@ static vm_fault_t wp_page_copy(struct vm_fault *vmf)
+@@ -2999,6 +3027,7 @@ static vm_fault_t wp_page_copy(struct vm_fault *vmf)
vmf->address);
if (!new_page)
goto oom;
@@ -1129,7 +1129,7 @@ index c48f8df6e502..db47ee177008 100644
} else {
new_page = alloc_page_vma(GFP_HIGHUSER_MOVABLE, vma,
vmf->address);
-@@ -2874,7 +2903,9 @@ static vm_fault_t wp_page_copy(struct vm_fault *vmf)
+@@ -3041,7 +3070,9 @@ static vm_fault_t wp_page_copy(struct vm_fault *vmf)
mm_counter_file(old_page));
inc_mm_counter_fast(mm, MM_ANONPAGES);
}
@@ -1140,7 +1140,7 @@ index c48f8df6e502..db47ee177008 100644
}
flush_cache_page(vma, vmf->address, pte_pfn(vmf->orig_pte));
diff --git a/mm/mmap.c b/mm/mmap.c
-index 5c8b4485860d..b8dd56dd900d 100644
+index 88dcc5c25225..b93c12938b5f 100644
--- a/mm/mmap.c
+++ b/mm/mmap.c
@@ -46,6 +46,7 @@
@@ -1151,7 +1151,7 @@ index 5c8b4485860d..b8dd56dd900d 100644
#include <linux/sched/mm.h>
#include <linux/uaccess.h>
-@@ -181,6 +182,7 @@ static struct vm_area_struct *remove_vma(struct vm_area_struct *vma)
+@@ -185,6 +186,7 @@ static struct vm_area_struct *remove_vma(struct vm_area_struct *vma)
if (vma->vm_file)
fput(vma->vm_file);
mpol_put(vma_policy(vma));
@@ -1159,7 +1159,7 @@ index 5c8b4485860d..b8dd56dd900d 100644
vm_area_free(vma);
return next;
}
-@@ -750,9 +752,16 @@ int __vma_adjust(struct vm_area_struct *vma, unsigned long start,
+@@ -751,9 +753,16 @@ int __vma_adjust(struct vm_area_struct *vma, unsigned long start,
long adjust_next = 0;
int remove_next = 0;
@@ -1176,7 +1176,7 @@ index 5c8b4485860d..b8dd56dd900d 100644
if (end >= next->vm_end) {
/*
* vma expands, overlapping all the next, and
-@@ -883,6 +892,7 @@ int __vma_adjust(struct vm_area_struct *vma, unsigned long start,
+@@ -884,6 +893,7 @@ int __vma_adjust(struct vm_area_struct *vma, unsigned long start,
end_changed = true;
}
vma->vm_pgoff = pgoff;
@@ -1184,7 +1184,7 @@ index 5c8b4485860d..b8dd56dd900d 100644
if (adjust_next) {
next->vm_start += adjust_next;
next->vm_pgoff += adjust_next >> PAGE_SHIFT;
-@@ -987,6 +997,7 @@ int __vma_adjust(struct vm_area_struct *vma, unsigned long start,
+@@ -988,6 +998,7 @@ int __vma_adjust(struct vm_area_struct *vma, unsigned long start,
if (remove_next == 2) {
remove_next = 1;
end = next->vm_end;
@@ -1192,7 +1192,7 @@ index 5c8b4485860d..b8dd56dd900d 100644
goto again;
}
else if (next)
-@@ -1013,10 +1024,14 @@ int __vma_adjust(struct vm_area_struct *vma, unsigned long start,
+@@ -1014,10 +1025,14 @@ int __vma_adjust(struct vm_area_struct *vma, unsigned long start,
*/
VM_WARN_ON(mm->highest_vm_end != vm_end_gap(vma));
}
@@ -1207,7 +1207,7 @@ index 5c8b4485860d..b8dd56dd900d 100644
validate_mm(mm);
return 0;
-@@ -1472,6 +1487,9 @@ unsigned long do_mmap(struct file *file, unsigned long addr,
+@@ -1470,6 +1485,9 @@ unsigned long do_mmap(struct file *file, unsigned long addr,
vm_flags = calc_vm_prot_bits(prot, pkey) | calc_vm_flag_bits(flags) |
mm->def_flags | VM_MAYREAD | VM_MAYWRITE | VM_MAYEXEC;
@@ -1217,23 +1217,23 @@ index 5c8b4485860d..b8dd56dd900d 100644
if (flags & MAP_LOCKED)
if (!can_do_mlock())
return -EPERM;
-@@ -1867,6 +1885,7 @@ unsigned long mmap_region(struct file *file, unsigned long addr,
- allow_write_access(file);
- }
+@@ -1843,6 +1861,7 @@ unsigned long mmap_region(struct file *file, unsigned long addr,
+ if (file && vm_flags & VM_SHARED)
+ mapping_unmap_writable(file->f_mapping);
file = vma->vm_file;
+ uksm_vma_add_new(vma);
out:
perf_event_mmap(vma);
-@@ -1909,6 +1928,7 @@ unsigned long mmap_region(struct file *file, unsigned long addr,
- if (vm_flags & VM_DENYWRITE)
- allow_write_access(file);
+@@ -1882,6 +1901,7 @@ unsigned long mmap_region(struct file *file, unsigned long addr,
+ if (vm_flags & VM_SHARED)
+ mapping_unmap_writable(file->f_mapping);
free_vma:
+ uksm_remove_vma(vma);
vm_area_free(vma);
unacct_error:
if (charged)
-@@ -2768,6 +2788,8 @@ int __split_vma(struct mm_struct *mm, struct vm_area_struct *vma,
+@@ -2742,6 +2762,8 @@ int __split_vma(struct mm_struct *mm, struct vm_area_struct *vma,
else
err = vma_adjust(vma, vma->vm_start, addr, vma->vm_pgoff, new);
@@ -1242,7 +1242,7 @@ index 5c8b4485860d..b8dd56dd900d 100644
/* Success. */
if (!err)
return 0;
-@@ -3075,6 +3097,7 @@ static int do_brk_flags(unsigned long addr, unsigned long len, unsigned long fla
+@@ -3032,6 +3054,7 @@ static int do_brk_flags(unsigned long addr, unsigned long len, unsigned long fla
if ((flags & (~VM_EXEC)) != 0)
return -EINVAL;
flags |= VM_DATA_DEFAULT_FLAGS | VM_ACCOUNT | mm->def_flags;
@@ -1250,7 +1250,7 @@ index 5c8b4485860d..b8dd56dd900d 100644
mapped_addr = get_unmapped_area(NULL, addr, len, 0, MAP_FIXED);
if (IS_ERR_VALUE(mapped_addr))
-@@ -3120,6 +3143,7 @@ static int do_brk_flags(unsigned long addr, unsigned long len, unsigned long fla
+@@ -3077,6 +3100,7 @@ static int do_brk_flags(unsigned long addr, unsigned long len, unsigned long fla
vma->vm_flags = flags;
vma->vm_page_prot = vm_get_page_prot(flags);
vma_link(mm, vma, prev, rb_link, rb_parent);
@@ -1258,20 +1258,19 @@ index 5c8b4485860d..b8dd56dd900d 100644
out:
perf_event_mmap(vma);
mm->total_vm += len >> PAGE_SHIFT;
-@@ -3197,6 +3221,12 @@ void exit_mmap(struct mm_struct *mm)
+@@ -3153,6 +3177,11 @@ void exit_mmap(struct mm_struct *mm)
+ mmap_write_lock(mm);
mmap_write_unlock(mm);
}
-
+ /*
+ * Taking write lock on mmap does not harm others,
+ * but it's crucial for uksm to avoid races.
+ */
+ mmap_write_lock(mm);
-+
- if (mm->locked_vm) {
- vma = mm->mmap;
- while (vma) {
-@@ -3232,6 +3262,11 @@ void exit_mmap(struct mm_struct *mm)
+
+ if (mm->locked_vm)
+ unlock_range(mm->mmap, ULONG_MAX);
+@@ -3183,6 +3212,11 @@ void exit_mmap(struct mm_struct *mm)
cond_resched();
}
vm_unacct_memory(nr_accounted);
@@ -1283,7 +1282,7 @@ index 5c8b4485860d..b8dd56dd900d 100644
}
/* Insert vm structure into process list sorted by address
-@@ -3339,6 +3374,7 @@ struct vm_area_struct *copy_vma(struct vm_area_struct **vmap,
+@@ -3290,6 +3324,7 @@ struct vm_area_struct *copy_vma(struct vm_area_struct **vmap,
new_vma->vm_ops->open(new_vma);
vma_link(mm, new_vma, prev, rb_link, rb_parent);
*need_rmap_locks = false;
@@ -1291,7 +1290,7 @@ index 5c8b4485860d..b8dd56dd900d 100644
}
return new_vma;
-@@ -3491,6 +3527,7 @@ static struct vm_area_struct *__install_special_mapping(
+@@ -3454,6 +3489,7 @@ static struct vm_area_struct *__install_special_mapping(
vm_stat_account(mm, vma->vm_flags, len >> PAGE_SHIFT);
perf_event_mmap(vma);
@@ -6920,11 +6919,11 @@ index 000000000000..e4732c00be69
+#endif
+
diff --git a/mm/vmstat.c b/mm/vmstat.c
-index 698bc0bc18d1..b7590f4944ca 100644
+index 8ce2620344b2..c0bc685782d1 100644
--- a/mm/vmstat.c
+++ b/mm/vmstat.c
-@@ -1216,6 +1216,9 @@ const char * const vmstat_text[] = {
- "nr_shadow_call_stack",
+@@ -1237,6 +1237,9 @@ const char * const vmstat_text[] = {
+ "nr_swapcached",
#endif
+#ifdef CONFIG_UKSM