From 19cb40a97c60c6dca65f015eca0480656cf1e00b Mon Sep 17 00:00:00 2001 From: amazingfate Date: Fri, 13 Oct 2023 15:05:27 +0800 Subject: [PATCH] update kernel config, add xiaomi keyboard vendor driver --- .../0024-xiaomi-keyboard-driver.patch | 706 ++++++++++++++++++ .../0025-dts-xiaomi-keyboard.patch | 92 +++ linux-arm64-sm8250.config | 443 ++++++----- 3 files changed, 1035 insertions(+), 206 deletions(-) create mode 100644 kernel_patches/arm64-sm8250/0024-xiaomi-keyboard-driver.patch create mode 100644 kernel_patches/arm64-sm8250/0025-dts-xiaomi-keyboard.patch diff --git a/kernel_patches/arm64-sm8250/0024-xiaomi-keyboard-driver.patch b/kernel_patches/arm64-sm8250/0024-xiaomi-keyboard-driver.patch new file mode 100644 index 0000000..bd18e2c --- /dev/null +++ b/kernel_patches/arm64-sm8250/0024-xiaomi-keyboard-driver.patch @@ -0,0 +1,706 @@ +diff --git a/drivers/input/misc/Kconfig b/drivers/input/misc/Kconfig +index 81a54a59e13c..d0561107c846 100644 +--- a/drivers/input/misc/Kconfig ++++ b/drivers/input/misc/Kconfig +@@ -939,4 +939,5 @@ config INPUT_STPMIC1_ONKEY + To compile this driver as a module, choose M here: the + module will be called stpmic1_onkey. + ++source "drivers/input/misc/xiaomi_keyboard/Kconfig" + endif +diff --git a/drivers/input/misc/Makefile b/drivers/input/misc/Makefile +index 04296a4abe8e..83773d457387 100644 +--- a/drivers/input/misc/Makefile ++++ b/drivers/input/misc/Makefile +@@ -90,3 +90,4 @@ obj-$(CONFIG_INPUT_WM831X_ON) += wm831x-on.o + obj-$(CONFIG_INPUT_XEN_KBDDEV_FRONTEND) += xen-kbdfront.o + obj-$(CONFIG_INPUT_YEALINK) += yealink.o + obj-$(CONFIG_INPUT_IDEAPAD_SLIDEBAR) += ideapad_slidebar.o ++obj-$(CONFIG_XIAOMI_KEYBOARD) += xiaomi_keyboard/ +diff --git a/drivers/input/misc/xiaomi_keyboard/Kconfig b/drivers/input/misc/xiaomi_keyboard/Kconfig +new file mode 100644 +index 000000000000..bfc4b1d891e5 +--- /dev/null ++++ b/drivers/input/misc/xiaomi_keyboard/Kconfig +@@ -0,0 +1,8 @@ ++config XIAOMI_KEYBOARD ++ bool "xiaomi keyboard control-driver" ++ depends on INPUT ++ default n ++ help ++ Say Y here, compile xiaomi keyboard control driver. ++ ++ If unsure, say N. +diff --git a/drivers/input/misc/xiaomi_keyboard/Makefile b/drivers/input/misc/xiaomi_keyboard/Makefile +new file mode 100644 +index 000000000000..0a00118c658e +--- /dev/null ++++ b/drivers/input/misc/xiaomi_keyboard/Makefile +@@ -0,0 +1 @@ ++obj-$(CONFIG_XIAOMI_KEYBOARD) += xiaomi_keyboard.o +\ No newline at end of file +diff --git a/drivers/input/misc/xiaomi_keyboard/xiaomi_keyboard.h b/drivers/input/misc/xiaomi_keyboard/xiaomi_keyboard.h +new file mode 100644 +index 000000000000..5c4220077bf8 +--- /dev/null ++++ b/drivers/input/misc/xiaomi_keyboard/xiaomi_keyboard.h +@@ -0,0 +1,45 @@ ++#ifndef __XIAOMI_KEYBOARD_H ++#define __XIAOMI_KEYBOARD_H ++ ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#define XIAOMI_KB_TAG "xiaomi-keyboard" ++#define MI_KB_INFO(fmt, args...) pr_info("[%s] %s %d: " fmt, XIAOMI_KB_TAG, __func__, __LINE__, ##args) ++#define MI_KB_ERR(fmt, args...) pr_err("[%s] %s %d: " fmt, XIAOMI_KB_TAG, __func__, __LINE__, ##args) ++ ++struct xiaomi_keyboard_platdata { ++ u32 rst_gpio; ++ u32 rst_flags; ++ u32 in_irq_gpio; ++ u32 in_irq_flags; ++ u32 vdd_gpio; ++}; ++ ++struct xiaomi_keyboard_data { ++ struct notifier_block drm_notif; ++ struct xiaomi_keyboard_platdata *pdata; ++ bool dev_pm_suspend; ++ int irq; ++ struct platform_device *pdev; ++ struct pinctrl *pinctrl; ++ struct pinctrl_state *pins_active; ++ struct pinctrl_state *pins_suspend; ++ struct workqueue_struct *event_wq; ++ struct work_struct resume_work; ++ struct work_struct suspend_work; ++ int keyboard_conn_status; ++ struct mutex rw_mutex; ++ ++ struct mutex power_supply_lock; ++ struct work_struct power_supply_work; ++ struct notifier_block power_supply_notifier; ++ int is_usb_exist; ++ bool keyboard_is_enable; ++ bool is_in_suspend; ++}; ++#endif +diff --git a/drivers/input/misc/xiaomi_keyboard/xiaomi_keyboard.c b/drivers/input/misc/xiaomi_keyboard/xiaomi_keyboard.c +new file mode 100644 +index 000000000000..a7a736f3c1e8 +--- /dev/null ++++ b/drivers/input/misc/xiaomi_keyboard/xiaomi_keyboard.c +@@ -0,0 +1,608 @@ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include "xiaomi_keyboard.h" ++#include ++#include ++ ++static struct xiaomi_keyboard_data *mdata; ++ ++static void set_keyboard_status(bool on); ++ ++static void xiaomi_keyboard_reset(void) ++{ ++ if (!mdata || !mdata->pdata) { ++ MI_KB_ERR("reset failed!Invalid Memory\n"); ++ return; ++ } ++ MI_KB_INFO("xiaomi keyboard IC Reset\n"); ++ gpio_direction_output(mdata->pdata->rst_gpio, 0); ++ msleep(2); ++ gpio_direction_output(mdata->pdata->rst_gpio, 1); ++} ++ ++static void xiaomi_keyboard_connected_notify(struct device *dev) ++{ ++ sysfs_notify(&dev->kobj, NULL, "xiaomi_keyboard_conn_status"); ++ MI_KB_INFO("connected status notify\n"); ++} ++ ++static ssize_t xiaomi_keyboard_conn_status_show (struct device *dev, struct device_attribute *attr, char *buf) ++{ ++ int ret = 0, value = 1; ++ MI_KB_INFO("%s enter\n", __func__); ++ if (!mdata) { ++ MI_KB_ERR("Invalid driver info\n"); ++ return ret; ++ } ++ ++ mutex_lock(&mdata->rw_mutex); ++ value = mdata->keyboard_conn_status; ++ mutex_unlock(&mdata->rw_mutex); ++ ++ return scnprintf(buf, PAGE_SIZE, "%d", value); ++} ++ ++static ssize_t xiaomi_keyboard_conn_status_store (struct device *dev, struct device_attribute *attr, const char *buf, size_t count) ++{ ++ char *cmd; ++ cmd = kzalloc(count + 1, GFP_KERNEL); ++ ++ if (!cmd) { ++ MI_KB_ERR("Allocate Meomory Failed\n"); ++ goto out; ++ } ++ memcpy(cmd, buf, count); ++ ++ if (!mdata) ++ goto out; ++ ++ if (!strncmp(cmd, "reset", 5)) { ++ xiaomi_keyboard_reset(); ++ } else if (!strncmp(cmd, "enable_keyboard", 15)) { ++ MI_KB_INFO("enable keyboard\n"); ++ set_keyboard_status(1); ++ } else if (!strncmp(cmd, "disable_keyboard", 16)) { ++ MI_KB_INFO("disable keyboard\n"); ++ set_keyboard_status(0); ++ } ++ else ++ MI_KB_ERR("Undefined CMD: %s\n", cmd); ++out: ++ if (cmd) ++ kfree(cmd); ++ return count; ++} ++ ++DEVICE_ATTR(xiaomi_keyboard_conn_status, (S_IRUGO | S_IWUSR | S_IWGRP), xiaomi_keyboard_conn_status_show, xiaomi_keyboard_conn_status_store); ++ ++static irqreturn_t xiaomi_keyboard_irq_func(int irq, void *data) ++{ ++ int value = 0; ++ MI_KB_INFO("keyboard event: wakeup system\n"); ++ pm_wakeup_event(&mdata->pdev->dev, 500); ++ value = gpio_get_value_cansleep(mdata->pdata->in_irq_gpio); ++ ++ mutex_lock(&mdata->rw_mutex); ++ mdata->keyboard_conn_status = !mdata->keyboard_conn_status; ++ mutex_unlock(&mdata->rw_mutex); ++ ++ xiaomi_keyboard_connected_notify(&mdata->pdev->dev); ++ MI_KB_INFO("keyboard connected status: %d", mdata->keyboard_conn_status); ++ return IRQ_HANDLED; ++} ++ ++static int xiaomi_keyboard_gpio_config(struct xiaomi_keyboard_platdata *pdata) ++{ ++ int ret = 0; ++ if (gpio_is_valid(pdata->rst_gpio)) { ++ ret = gpio_request_one(pdata->rst_gpio, GPIOF_OUT_INIT_LOW, "kb_rst"); ++ if (ret) { ++ MI_KB_ERR("Failed to request xiaomi keyboard rst gpio\n"); ++ goto err_request_rst_gpio; ++ } ++ } ++ ++ if (gpio_is_valid(pdata->in_irq_gpio)) { ++ ret = gpio_request_one(pdata->in_irq_gpio, GPIOF_IN, "kb_in_irq"); ++ if (ret) { ++ MI_KB_ERR("Failed to request xiaomi keyboard in-irq gpio\n"); ++ goto err_request_in_irq_gpio; ++ } ++ } ++ ++ return ret; ++err_request_in_irq_gpio: ++ gpio_free(pdata->rst_gpio); ++err_request_rst_gpio: ++ return ret; ++} ++ ++static void xiaomi_keyboard_gpio_deconfig(struct xiaomi_keyboard_platdata *pdata) ++{ ++ if (gpio_is_valid(pdata->rst_gpio)) ++ gpio_free(pdata->rst_gpio); ++ ++ if (gpio_is_valid(pdata->in_irq_gpio)) ++ gpio_free(pdata->in_irq_gpio); ++} ++ ++static int xiaomi_keyboard_setup_gpio(struct xiaomi_keyboard_platdata *pdata) ++{ ++ int ret = 0; ++ if (!pdata) { ++ MI_KB_ERR("xiaomi keyboard platdata is NULL\n"); ++ return -EINVAL; ++ } ++ if (gpio_is_valid(pdata->rst_gpio)) ++ gpio_direction_output(pdata->rst_gpio, 1); ++ ++ mdata->irq = gpio_to_irq(pdata->in_irq_gpio); ++ if (mdata->irq) { ++ ret = request_threaded_irq(mdata->irq, NULL, xiaomi_keyboard_irq_func, ++ IRQF_TRIGGER_RISING|IRQF_ONESHOT, "MiKB-IRQ", mdata); ++ if (ret != 0) { ++ MI_KB_ERR("request threaded irq failed\n"); ++ return ret; ++ } ++ } ++ ++ return ret; ++} ++ ++static int xiaomi_keyboard_resetup_gpio(struct xiaomi_keyboard_platdata *pdata) ++{ ++ int ret = 0; ++ ++ if (!mdata || !pdata) { ++ MI_KB_ERR("mdata or pdata not ready, return!"); ++ return -EINVAL; ++ } ++ ++ if (gpio_is_valid(pdata->rst_gpio)) ++ gpio_direction_output(pdata->rst_gpio, 0); ++ ++ free_irq(mdata->irq, mdata); ++ ++ return ret; ++} ++ ++#ifdef CONFIG_OF ++static int xiaomi_keyboard_parse_dt(struct device *dev) ++{ ++ struct device_node *np = dev->of_node; ++ struct xiaomi_keyboard_platdata *pdata; ++ int ret = 0; ++ ++ pdata = mdata->pdata; ++ ++ pdata->rst_gpio = of_get_named_gpio(np, "xiaomi-keyboard,rst-gpio", 0); ++ MI_KB_INFO("xiaomi-kb,reset-gpio=%d\n", pdata->rst_gpio); ++ ++ pdata->in_irq_gpio = of_get_named_gpio(np, "xiaomi-keyboard,in-irq-gpio", 0); ++ MI_KB_INFO("xiaomi-kb,in-irq-gpio=%d\n", pdata->in_irq_gpio); ++ ++ pdata->vdd_gpio = of_get_named_gpio(np, "xiaomi-keyboard,vdd-gpio", 0); ++ MI_KB_INFO("xiaomi-kb,vdd-gpio=%d\n", pdata->vdd_gpio); ++ ++ return ret; ++} ++#else ++static int xiaomi_keyboard_parse_dt(struct device *dev) ++{ ++ MI_KB_ERR("Xiaomi Keyboard dev is not defined\n"); ++ return -EINVAL; ++} ++#endif ++ ++static int xiaomi_keyboard_pinctrl_init(struct device *dev) ++{ ++ int ret = 0; ++ ++ mdata->pinctrl = devm_pinctrl_get(dev); ++ if (IS_ERR_OR_NULL(mdata->pinctrl)) { ++ MI_KB_ERR("Failed to get pinctrl, please check dts\n"); ++ ret = PTR_ERR(mdata->pinctrl); ++ goto err_pinctrl_get; ++ } ++ mdata->pins_active = pinctrl_lookup_state(mdata->pinctrl, "pm_kb_active"); ++ if (IS_ERR_OR_NULL(mdata->pins_active)) { ++ MI_KB_ERR("Pin state [active] not found\n"); ++ ret = PTR_ERR(mdata->pins_active); ++ goto err_pinctrl_lookup; ++ } ++ ++ mdata->pins_suspend = pinctrl_lookup_state(mdata->pinctrl, "pm_kb_suspend"); ++ if (IS_ERR_OR_NULL(mdata->pins_suspend)) { ++ MI_KB_ERR("Pin state [suspend] not found\n"); ++ ret = PTR_ERR(mdata->pins_suspend); ++ goto err_pinctrl_lookup; ++ } ++ ++ return 0; ++err_pinctrl_lookup: ++ if (mdata->pinctrl) { ++ devm_pinctrl_put(mdata->pinctrl); ++ } ++err_pinctrl_get: ++ return ret; ++} ++ ++static int xiaomi_keyboard_power_on(void) ++{ ++ int ret = 0; ++ struct xiaomi_keyboard_platdata *pdata; ++ pdata = mdata->pdata; ++ MI_KB_INFO("Power On\n"); ++ if (gpio_is_valid(pdata->vdd_gpio)) { ++ ret = gpio_request_one(pdata->vdd_gpio, GPIOF_OUT_INIT_HIGH, "kb_vdd_gpio"); ++ if (ret) { ++ MI_KB_ERR("Failed to request xiaomi-keyboard-out-irq gpio\n"); ++ goto err_request_vdd_gpio; ++ } ++ } ++ ++ gpio_direction_output(pdata->vdd_gpio, 1); ++err_request_vdd_gpio: ++ return ret; ++} ++ ++static void xiaomi_keyboard_power_off(void) ++{ ++ struct xiaomi_keyboard_platdata *pdata; ++ pdata = mdata->pdata; ++ MI_KB_INFO("Power Off\n"); ++ if (gpio_is_valid(pdata->vdd_gpio)) { ++ gpio_direction_output(pdata->vdd_gpio, 0); ++ gpio_free(pdata->vdd_gpio); ++ } ++ return; ++} ++ ++static int xiaomi_keyboard_suspend(struct device *dev) ++{ ++ int ret = 0; ++ MI_KB_INFO("enter\n"); ++ if (mdata->pinctrl && mdata->pins_suspend) { ++ ret = (mdata->keyboard_is_enable && mdata->is_usb_exist) ++ ? 0 : pinctrl_select_state(mdata->pinctrl, mdata->pins_suspend); ++ if (ret < 0) { ++ MI_KB_ERR("Set suspend pin state error:%d\n", ret); ++ } ++ } ++ MI_KB_INFO("exit\n"); ++ return ret; ++} ++ ++static int xiaomi_keyboard_resume(struct device *dev) ++{ ++ int ret = 0; ++ MI_KB_INFO("enter\n"); ++ if (!mdata->keyboard_is_enable) { ++ MI_KB_INFO("keyboard_is_enable is false, stop resume.\n"); ++ MI_KB_INFO("exit\n"); ++ return -1; ++ } ++ if (mdata->pinctrl && mdata->pins_active) { ++ ret = pinctrl_select_state(mdata->pinctrl, mdata->pins_active); ++ if (ret < 0) { ++ MI_KB_ERR("Set active pin state error:%d\n", ret); ++ } ++ } ++ MI_KB_INFO("exit\n"); ++ return ret; ++} ++ ++static int xiaomi_keyboard_pm_suspend(struct device *dev) ++{ ++ int ret = 0; ++ MI_KB_INFO("enter\n"); ++ enable_irq_wake(mdata->irq); ++ mdata->dev_pm_suspend = true; ++ return ret; ++} ++ ++static int xiaomi_keyboard_pm_resume(struct device *dev) ++{ ++ int ret = 0; ++ MI_KB_INFO("enter\n"); ++ disable_irq_wake(mdata->irq); ++ mdata->dev_pm_suspend = false; ++ return ret; ++} ++ ++static const struct dev_pm_ops xiaomi_keyboard_pm_ops = { ++ .suspend = xiaomi_keyboard_pm_suspend, ++ .resume = xiaomi_keyboard_pm_resume, ++}; ++ ++static int keyboard_drm_notifier_callback(struct notifier_block *self, unsigned long event, void *data) ++{ ++ int blank = *(enum drm_notifier_data *)data; ++ struct xiaomi_keyboard_data *mdata = ++ container_of(self, struct xiaomi_keyboard_data, drm_notif); ++ ++ if (mdata) { ++ flush_workqueue(mdata->event_wq); ++ if (event == MI_DRM_EARLY_EVENT_BLANK) { ++ if (blank == MI_DRM_BLANK_POWERDOWN) { ++ MI_KB_ERR("keyboard suspend"); ++ mdata->is_in_suspend = true; ++ queue_work(mdata->event_wq, &mdata->suspend_work); ++ } ++ } else if (event == MI_DRM_EVENT_BLANK) { ++ if (blank == MI_DRM_BLANK_UNBLANK) { ++ MI_KB_ERR("keyboard resume"); ++ mdata->is_in_suspend = false; ++ flush_workqueue(mdata->event_wq); ++ queue_work(mdata->event_wq, &mdata->resume_work); ++ } ++ } ++ } ++ ++ return 0; ++} ++ ++static void keyboard_resume_work(struct work_struct *work) ++{ ++ struct xiaomi_keyboard_data *mdata = container_of(work, struct xiaomi_keyboard_data, resume_work); ++ xiaomi_keyboard_resume(&mdata->pdev->dev); ++} ++ ++static void keyboard_suspend_work(struct work_struct *work) ++{ ++ struct xiaomi_keyboard_data *mdata = container_of(work, struct xiaomi_keyboard_data, resume_work); ++ xiaomi_keyboard_suspend(&mdata->pdev->dev); ++} ++ ++static int kb_power_supply_event(struct notifier_block *nb, ++ unsigned long event, void *ptr) ++{ ++ struct xiaomi_keyboard_data *mdata = ++ container_of(nb, struct xiaomi_keyboard_data, power_supply_notifier); ++ ++ if (mdata != NULL) ++ queue_work(mdata->event_wq, &mdata->power_supply_work); ++ ++ return 0; ++} ++ ++static void kb_power_supply_work(struct work_struct *work) ++{ ++ struct xiaomi_keyboard_data *mdata = container_of(work, struct xiaomi_keyboard_data, power_supply_work); ++ int is_usb_exist = 0; ++ ++ mutex_lock(&mdata->power_supply_lock); ++ is_usb_exist = !!power_supply_is_system_supplied(); ++ if (is_usb_exist != mdata->is_usb_exist) { ++ mdata->is_usb_exist = is_usb_exist; ++ MI_KB_INFO("power supply is: %d", mdata->is_usb_exist); ++ } ++ mutex_unlock(&mdata->power_supply_lock); ++} ++ ++static void set_keyboard_status(bool on) { ++ int ret = 0; ++ ++ if (!mdata || !(mdata->pdata)) { ++ MI_KB_ERR("mdata or pdata not ready, return!"); ++ return; ++ } ++ ++ if (on && !(mdata->keyboard_is_enable)) { ++ ret = xiaomi_keyboard_power_on(); ++ if (ret) { ++ MI_KB_ERR("Init 3.3V power failed\n"); ++ return; ++ } ++ msleep(1); ++ ret = xiaomi_keyboard_setup_gpio(mdata->pdata); ++ if (ret) { ++ MI_KB_ERR("setup gpio failed\n"); ++ return; ++ } ++ msleep(2); ++ ++ if (!mdata->is_in_suspend) { ++ ret = pinctrl_select_state(mdata->pinctrl, mdata->pins_active); ++ if (ret < 0) { ++ MI_KB_ERR("Set active pin state error:%d\n", ret); ++ } ++ } ++ mdata->keyboard_is_enable = true; ++ ++ } else if (!on && mdata->keyboard_is_enable) { ++ if (!mdata->is_in_suspend) { ++ ret = pinctrl_select_state(mdata->pinctrl, mdata->pins_suspend); ++ if (ret < 0) { ++ MI_KB_ERR("Set suspend pin state error:%d\n", ret); ++ } ++ } ++ ++ ret = xiaomi_keyboard_resetup_gpio(mdata->pdata); ++ if (ret < 0) { ++ MI_KB_ERR("resetup gpio failed\n"); ++ return; ++ } ++ xiaomi_keyboard_power_off(); ++ mdata->keyboard_is_enable = false; ++ } else { ++ MI_KB_INFO("keyboard status do not need change!"); ++ } ++} ++ ++/******************************************************* ++Description: ++ xiami pad keyboard driver probe function. ++ ++return: ++ Executive outcomes. 0---succeed. negative---failed ++*******************************************************/ ++static int xiaomi_keyboard_probe(struct platform_device *pdev) ++{ ++ struct xiaomi_keyboard_platdata *pdata; ++ int ret = 0; ++ MI_KB_INFO("enter\n"); ++ mdata = kzalloc(sizeof(struct xiaomi_keyboard_data), GFP_KERNEL); ++ if (!mdata) { ++ MI_KB_ERR("Alloc Memory for xiaomi_keyboard_data failed\n"); ++ return -ENOMEM; ++ } ++ ++ pdata = devm_kzalloc(&pdev->dev, sizeof(struct xiaomi_keyboard_platdata), GFP_KERNEL); ++ if (!pdata) { ++ MI_KB_ERR("Alloc Memory for xiaomi_keyboard_platdata failed\n"); ++ return -ENOMEM; ++ } ++ ++ mdata->pdev = pdev; ++ mdata->pdata = pdata; ++ mutex_init(&mdata->rw_mutex); ++ mutex_init(&mdata->power_supply_lock); ++ mdata->is_usb_exist = 0; ++ ++ ret = xiaomi_keyboard_parse_dt(&pdev->dev); ++ if (ret) { ++ MI_KB_ERR("parse device tree failed\n"); ++ goto out; ++ } ++ ++ ret = xiaomi_keyboard_pinctrl_init(&pdev->dev); ++ if (ret) { ++ MI_KB_ERR("Pinctrl init failed\n"); ++ goto out; ++ } ++ ++ pdata = mdata->pdata; ++ ret = xiaomi_keyboard_gpio_config(pdata); ++ if (ret) { ++ MI_KB_ERR("set gpio config failed\n"); ++ goto out; ++ } ++ ++ mdata->dev_pm_suspend = false; ++ mdata->keyboard_is_enable = false; ++ mdata->is_in_suspend = false; ++ ++ ret = sysfs_create_file(&mdata->pdev->dev.kobj, &dev_attr_xiaomi_keyboard_conn_status.attr); ++ if (ret < 0) { ++ MI_KB_ERR("Create sysfs attribute xiaomi_keyboard_conn_status Failed\n"); ++ goto err_pinctrl_select; ++ } ++ ++ mdata->event_wq = alloc_workqueue("kb-event-queue", ++ WQ_UNBOUND | WQ_HIGHPRI | WQ_CPU_INTENSIVE, 1); ++ if (!mdata->event_wq) { ++ MI_KB_ERR("Can not create work thread for suspend/resume!!"); ++ ret = -ENOMEM; ++ goto err_alloc_work_thread_failed; ++ } ++ ++ set_keyboard_status(1); ++ ++ INIT_WORK(&mdata->resume_work, keyboard_resume_work); ++ INIT_WORK(&mdata->suspend_work, keyboard_suspend_work); ++ INIT_WORK(&mdata->power_supply_work, kb_power_supply_work); ++ ++ mdata->drm_notif.notifier_call = keyboard_drm_notifier_callback; ++ ret = mi_drm_register_client(&mdata->drm_notif); ++ if(ret) { ++ MI_KB_ERR("register drm_notifier failed. ret=%d\n", ret); ++ goto err_register_drm_notif_failed; ++ } ++ ++ mdata->power_supply_notifier.notifier_call = kb_power_supply_event; ++ ret = power_supply_reg_notifier(&mdata->power_supply_notifier); ++ if (ret) { ++ MI_KB_ERR("register power_supply_notifier failed. ret=%d\n", ret); ++ goto err_register_power_supply_notif_failed; ++ } ++ ++ MI_KB_INFO("Success\n"); ++ return ret; ++ ++err_register_power_supply_notif_failed: ++err_register_drm_notif_failed: ++ if (mdata->event_wq) { ++ destroy_workqueue(mdata->event_wq); ++ } ++err_alloc_work_thread_failed: ++ sysfs_remove_file(&mdata->pdev->dev.kobj, &dev_attr_xiaomi_keyboard_conn_status.attr); ++err_pinctrl_select: ++ if (mdata->pinctrl) { ++ devm_pinctrl_put(mdata->pinctrl); ++ } ++ xiaomi_keyboard_gpio_deconfig(pdata); ++out: ++ mutex_destroy(&mdata->rw_mutex); ++ mutex_destroy(&mdata->power_supply_lock); ++ if (mdata) { ++ kfree(mdata); ++ mdata = NULL; ++ } ++ MI_KB_ERR("Failed\n"); ++ return ret; ++} ++ ++static int xiaomi_keyboard_remove(struct platform_device *pdev) ++{ ++ MI_KB_INFO("enter\n"); ++ mi_drm_unregister_client(&mdata->drm_notif); ++ destroy_workqueue(mdata->event_wq); ++ xiaomi_keyboard_gpio_deconfig(mdata->pdata); ++ sysfs_remove_file(&mdata->pdev->dev.kobj, &dev_attr_xiaomi_keyboard_conn_status.attr); ++ xiaomi_keyboard_power_off(); ++ devm_pinctrl_put(mdata->pinctrl); ++ xiaomi_keyboard_gpio_deconfig(mdata->pdata); ++ mutex_destroy(&mdata->rw_mutex); ++ mutex_destroy(&mdata->power_supply_lock); ++ if (mdata) { ++ kfree(mdata); ++ mdata = NULL; ++ } ++ return 0; ++} ++ ++#ifdef CONFIG_OF ++static const struct of_device_id xiaomi_keyboard_dt_match[] = { ++ { .compatible = "xiaomi,keyboard" }, ++ {}, ++}; ++MODULE_DEVICE_TABLE(of, xiaomi_keyboard_dt_match); ++#endif ++ ++static const struct platform_device_id xiaomi_keyboard_driver_ids[] = { ++ { ++ .name = "xiaomi-keyboard", ++ .driver_data = 0, ++ }, ++}; ++MODULE_DEVICE_TABLE(platform, xiaomi_keyboard_driver_ids); ++ ++ ++static struct platform_driver xiaomi_keyboard_driver = { ++ .probe = xiaomi_keyboard_probe, ++ .remove = xiaomi_keyboard_remove, ++ .driver = { ++ .name = "xiaomi-keyboard", ++ .of_match_table = of_match_ptr(xiaomi_keyboard_dt_match), ++ .pm = &xiaomi_keyboard_pm_ops, ++ }, ++ .id_table = xiaomi_keyboard_driver_ids, ++}; ++ ++module_platform_driver(xiaomi_keyboard_driver); ++ ++MODULE_DESCRIPTION("Xiaomi Keyboard Control-driver"); ++MODULE_AUTHOR("Tonghui Wang"); diff --git a/kernel_patches/arm64-sm8250/0025-dts-xiaomi-keyboard.patch b/kernel_patches/arm64-sm8250/0025-dts-xiaomi-keyboard.patch new file mode 100644 index 0000000..51009b6 --- /dev/null +++ b/kernel_patches/arm64-sm8250/0025-dts-xiaomi-keyboard.patch @@ -0,0 +1,92 @@ +diff --git a/arch/arm64/boot/dts/qcom/sm8250-xiaomi-elish-common.dtsi b/arch/arm64/boot/dts/qcom/sm8250-xiaomi-elish-common.dtsi +index eed71d589d52..7d2c9d54dab1 100644 +--- a/arch/arm64/boot/dts/qcom/sm8250-xiaomi-elish-common.dtsi ++++ b/arch/arm64/boot/dts/qcom/sm8250-xiaomi-elish-common.dtsi +@@ -179,12 +179,14 @@ ramoops@b0000000 { + }; + }; + +- extcon_usb: extcon-usb { +- compatible = "linux,extcon-usb-gpio"; +- id-gpio = <&tlmm 91 GPIO_ACTIVE_HIGH>; +- vbus-gpio = <&pm8150_gpios 10 GPIO_ACTIVE_HIGH>; +- pinctrl-0 = <&keyboard_active &usb_2_vbus_det_n>; +- pinctrl-names = "default"; ++ xiaomi_keyboard { ++ compatible = "xiaomi,keyboard"; ++ pinctrl-names = "pm_kb_active", "pm_kb_suspend"; ++ pinctrl-0 = <&xiaomi_keyboard_active>; ++ pinctrl-1 = <&xiaomi_keyboard_suspend>; ++ xiaomi-keyboard,rst-gpio = <&tlmm 141 0x00>; ++ xiaomi-keyboard,in-irq-gpio = <&tlmm 83 0x2001>; ++ xiaomi-keyboard,vdd-gpio = <&tlmm 127 0x00>; + }; + }; + +@@ -801,14 +803,6 @@ &pcie0_phy { + }; + + &pm8150_gpios { +- usb_2_vbus_det_n: usb-2-vbus-det-state { +- pins = "gpio10"; +- function = "normal"; +- power-source = <1>; +- input-enable; +- bias-pull-down; +- }; +- + vol_up_n: vol-up-n-state { + pins = "gpio6"; + function = "normal"; +@@ -985,20 +979,31 @@ dout-pins { + }; + }; + +- keyboard_active: keyboard-active-state { +- active-pins { +- pins = "gpio155"; +- function = "gpio"; +- drive-strength = <8>; +- bias-pull-up; ++ xiaomi_keyboard_mcu { ++ xiaomi_keyboard_suspend: xiaomi_keyboard_suspend { ++ mux { ++ pins = "gpio155"; ++ function = "gpio"; ++ }; ++ ++ config { ++ pins = "gpio155"; ++ drive-strength = <8>; ++ bias-pull-down; ++ }; + }; + +- vdd-pins { +- pins = "gpio127"; +- function = "gpio"; +- drive-strength = <8>; +- bias-disable; +- output-high; ++ xiaomi_keyboard_active: xiaomi_keyboard_active { ++ mux { ++ pins = "gpio155"; ++ function = "gpio"; ++ }; ++ ++ config { ++ pins = "gpio155"; ++ drive-strength = <8>; ++ bias-pull-up; ++ }; + }; + }; + }; +@@ -1044,7 +1049,6 @@ &usb_2 { + &usb_2_dwc3 { + dr_mode = "host"; + maximum-speed = "super-speed"; +- extcon = <&extcon_usb>; + }; + + &usb_2_hsphy { diff --git a/linux-arm64-sm8250.config b/linux-arm64-sm8250.config index 03d4836..1735fbe 100644 --- a/linux-arm64-sm8250.config +++ b/linux-arm64-sm8250.config @@ -1,15 +1,15 @@ # # Automatically generated file; DO NOT EDIT. -# Linux/arm64 6.4.0-rc2 Kernel Configuration +# Linux/arm64 6.5.7 Kernel Configuration # -CONFIG_CC_VERSION_TEXT="gcc (Alpine 13.1.1_git20230722) 13.1.1 20230722" +CONFIG_CC_VERSION_TEXT="aarch64-linux-gnu-gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0" CONFIG_CC_IS_GCC=y -CONFIG_GCC_VERSION=130101 +CONFIG_GCC_VERSION=110400 CONFIG_CLANG_VERSION=0 CONFIG_AS_IS_GNU=y -CONFIG_AS_VERSION=24100 +CONFIG_AS_VERSION=23800 CONFIG_LD_IS_BFD=y -CONFIG_LD_VERSION=24100 +CONFIG_LD_VERSION=23800 CONFIG_LLD_VERSION=0 CONFIG_CC_CAN_LINK=y CONFIG_CC_CAN_LINK_STATIC=y @@ -17,7 +17,7 @@ CONFIG_CC_HAS_ASM_GOTO_OUTPUT=y CONFIG_CC_HAS_ASM_GOTO_TIED_OUTPUT=y CONFIG_CC_HAS_ASM_INLINE=y CONFIG_CC_HAS_NO_PROFILE_FN_ATTR=y -CONFIG_PAHOLE_VERSION=0 +CONFIG_PAHOLE_VERSION=125 CONFIG_IRQ_WORK=y CONFIG_BUILDTIME_TABLE_SORT=y CONFIG_THREAD_INFO_IN_TASK=y @@ -29,7 +29,7 @@ CONFIG_INIT_ENV_ARG_LIMIT=32 # CONFIG_COMPILE_TEST is not set # CONFIG_WERROR is not set CONFIG_LOCALVERSION="" -CONFIG_LOCALVERSION_AUTO=y +# CONFIG_LOCALVERSION_AUTO is not set CONFIG_BUILD_SALT="" CONFIG_DEFAULT_INIT="" CONFIG_DEFAULT_HOSTNAME="(none)" @@ -95,7 +95,11 @@ CONFIG_ARCH_WANT_DEFAULT_BPF_JIT=y # CONFIG_BPF_SYSCALL=y CONFIG_BPF_JIT=y +# CONFIG_BPF_JIT_ALWAYS_ON is not set CONFIG_BPF_JIT_DEFAULT_ON=y +CONFIG_BPF_UNPRIV_DEFAULT_OFF=y +# CONFIG_BPF_PRELOAD is not set +# CONFIG_BPF_LSM is not set # end of BPF subsystem CONFIG_PREEMPT_NONE_BUILD=y @@ -117,6 +121,7 @@ CONFIG_BSD_PROCESS_ACCT=y CONFIG_BSD_PROCESS_ACCT_V3=y # CONFIG_TASKSTATS is not set CONFIG_PSI=y +# CONFIG_PSI_DEFAULT_DISABLED is not set # end of CPU/Task time and stats accounting CONFIG_CPU_ISOLATION=y @@ -127,6 +132,8 @@ CONFIG_CPU_ISOLATION=y CONFIG_TREE_RCU=y # CONFIG_RCU_EXPERT is not set CONFIG_TREE_SRCU=y +CONFIG_TASKS_RCU_GENERIC=y +CONFIG_TASKS_TRACE_RCU=y CONFIG_RCU_STALL_COMMON=y CONFIG_RCU_NEED_SEGCBLIST=y # end of RCU Subsystem @@ -166,7 +173,6 @@ CONFIG_CFS_BANDWIDTH=y CONFIG_RT_GROUP_SCHED=y CONFIG_SCHED_MM_CID=y CONFIG_CGROUP_PIDS=y -CONFIG_CGROUP_BPF=y # CONFIG_CGROUP_RDMA is not set CONFIG_CGROUP_FREEZER=y CONFIG_CGROUP_HUGETLB=y @@ -175,8 +181,9 @@ CONFIG_PROC_PID_CPUSET=y CONFIG_CGROUP_DEVICE=y CONFIG_CGROUP_CPUACCT=y CONFIG_CGROUP_PERF=y +CONFIG_CGROUP_BPF=y # CONFIG_CGROUP_MISC is not set -# CONFIG_CGROUP_DEBUG is not set +CONFIG_SOCK_CGROUP_DATA=y CONFIG_NAMESPACES=y CONFIG_UTS_NS=y CONFIG_TIME_NS=y @@ -228,11 +235,11 @@ CONFIG_ADVISE_SYSCALLS=y CONFIG_MEMBARRIER=y CONFIG_KALLSYMS=y # CONFIG_KALLSYMS_SELFTEST is not set -CONFIG_KALLSYMS_ALL=y CONFIG_KALLSYMS_BASE_RELATIVE=y CONFIG_ARCH_HAS_MEMBARRIER_SYNC_CORE=y CONFIG_KCMP=y CONFIG_RSEQ=y +CONFIG_CACHESTAT_SYSCALL=y # CONFIG_EMBEDDED is not set CONFIG_HAVE_PERF_EVENTS=y @@ -240,7 +247,6 @@ CONFIG_HAVE_PERF_EVENTS=y # Kernel Performance Events And Counters # CONFIG_PERF_EVENTS=y -# CONFIG_DEBUG_PERF_USE_VMALLOC is not set # end of Kernel Performance Events And Counters CONFIG_SYSTEM_DATA_VERIFICATION=y @@ -296,6 +302,7 @@ CONFIG_BUILTIN_RETURN_ADDRESS_STRIPS_PAC=y # CONFIG_ARCH_MESON is not set # CONFIG_ARCH_MVEBU is not set # CONFIG_ARCH_NXP is not set +# CONFIG_ARCH_MA35 is not set # CONFIG_ARCH_NPCM is not set CONFIG_ARCH_QCOM=y # CONFIG_ARCH_REALTEK is not set @@ -303,6 +310,7 @@ CONFIG_ARCH_QCOM=y # CONFIG_ARCH_ROCKCHIP is not set # CONFIG_ARCH_SEATTLE is not set # CONFIG_ARCH_INTEL_SOCFPGA is not set +# CONFIG_ARCH_STM32 is not set # CONFIG_ARCH_SYNQUACER is not set # CONFIG_ARCH_TEGRA is not set # CONFIG_ARCH_SPRD is not set @@ -322,6 +330,7 @@ CONFIG_ARCH_QCOM=y # # ARM errata workarounds via the alternatives framework # +CONFIG_AMPERE_ERRATUM_AC03_CPU_38=y CONFIG_ARM64_WORKAROUND_CLEAN_CACHE=y CONFIG_ARM64_ERRATUM_826319=y CONFIG_ARM64_ERRATUM_827319=y @@ -353,6 +362,7 @@ CONFIG_ARM64_ERRATUM_2067961=y CONFIG_ARM64_ERRATUM_2441009=y CONFIG_ARM64_ERRATUM_2457168=y CONFIG_ARM64_ERRATUM_2645198=y +CONFIG_ARM64_ERRATUM_2966298=y CONFIG_CAVIUM_ERRATUM_22375=y CONFIG_CAVIUM_ERRATUM_23144=y CONFIG_CAVIUM_ERRATUM_23154=y @@ -395,7 +405,6 @@ CONFIG_HZ=250 CONFIG_SCHED_HRTICK=y CONFIG_ARCH_SPARSEMEM_ENABLE=y CONFIG_HW_PERF_EVENTS=y -CONFIG_CC_HAVE_SHADOW_CALL_STACK=y CONFIG_PARAVIRT=y # CONFIG_PARAVIRT_TIME_ACCOUNTING is not set CONFIG_KEXEC=y @@ -474,7 +483,6 @@ CONFIG_ARM64_EPAN=y CONFIG_ARM64_SVE=y CONFIG_ARM64_SME=y -CONFIG_ARM64_MODULE_PLTS=y # CONFIG_ARM64_PSEUDO_NMI is not set CONFIG_RELOCATABLE=y CONFIG_RANDOMIZE_BASE=y @@ -555,13 +563,13 @@ CONFIG_CPU_FREQ_STAT=y # CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set # CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set # CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set -# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set -CONFIG_CPU_FREQ_DEFAULT_GOV_SCHEDUTIL=y +CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE=y +# CONFIG_CPU_FREQ_DEFAULT_GOV_SCHEDUTIL is not set CONFIG_CPU_FREQ_GOV_PERFORMANCE=y CONFIG_CPU_FREQ_GOV_POWERSAVE=y CONFIG_CPU_FREQ_GOV_USERSPACE=y CONFIG_CPU_FREQ_GOV_ONDEMAND=y -CONFIG_CPU_FREQ_GOV_CONSERVATIVE=m +CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y CONFIG_CPU_FREQ_GOV_SCHEDUTIL=y # @@ -637,6 +645,8 @@ CONFIG_HAVE_KVM=y CONFIG_CRASH_CORE=y CONFIG_KEXEC_CORE=y CONFIG_ARCH_HAS_SUBPAGE_FAULTS=y +CONFIG_HOTPLUG_CORE_SYNC=y +CONFIG_HOTPLUG_CORE_SYNC_DEAD=y # CONFIG_KPROBES is not set # CONFIG_JUMP_LABEL is not set CONFIG_UPROBES=y @@ -686,8 +696,6 @@ CONFIG_HAVE_ARCH_STACKLEAK=y CONFIG_HAVE_STACKPROTECTOR=y CONFIG_STACKPROTECTOR=y CONFIG_STACKPROTECTOR_STRONG=y -CONFIG_ARCH_SUPPORTS_SHADOW_CALL_STACK=y -# CONFIG_SHADOW_CALL_STACK is not set CONFIG_ARCH_SUPPORTS_LTO_CLANG=y CONFIG_ARCH_SUPPORTS_LTO_CLANG_THIN=y CONFIG_LTO_NONE=y @@ -746,8 +754,6 @@ CONFIG_ARCH_HAS_GCOV_PROFILE_ALL=y # end of GCOV-based kernel profiling CONFIG_HAVE_GCC_PLUGINS=y -CONFIG_GCC_PLUGINS=y -# CONFIG_GCC_PLUGIN_LATENT_ENTROPY is not set CONFIG_FUNCTION_ALIGNMENT_4B=y CONFIG_FUNCTION_ALIGNMENT=4 # end of General architecture-dependent options @@ -772,6 +778,7 @@ CONFIG_MODPROBE_PATH="/sbin/modprobe" CONFIG_MODULES_TREE_LOOKUP=y CONFIG_BLOCK=y CONFIG_BLOCK_LEGACY_AUTOLOAD=y +CONFIG_BLK_CGROUP_RWSTAT=y CONFIG_BLK_CGROUP_PUNT_BIO=y CONFIG_BLK_DEV_BSG_COMMON=y CONFIG_BLK_DEV_BSGLIB=y @@ -779,6 +786,7 @@ CONFIG_BLK_DEV_INTEGRITY=y CONFIG_BLK_DEV_INTEGRITY_T10=y # CONFIG_BLK_DEV_ZONED is not set CONFIG_BLK_DEV_THROTTLING=y +# CONFIG_BLK_DEV_THROTTLING_LOW is not set # CONFIG_BLK_WBT is not set # CONFIG_BLK_CGROUP_IOLATENCY is not set # CONFIG_BLK_CGROUP_IOCOST is not set @@ -901,7 +909,7 @@ CONFIG_ZSMALLOC_CHAIN_SIZE=8 # # SLAB allocator options # -# CONFIG_SLAB is not set +# CONFIG_SLAB_DEPRECATED is not set CONFIG_SLUB=y CONFIG_SLAB_MERGE_DEFAULT=y # CONFIG_SLAB_FREELIST_RANDOM is not set @@ -937,7 +945,6 @@ CONFIG_KSM=y CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 CONFIG_ARCH_SUPPORTS_MEMORY_FAILURE=y CONFIG_MEMORY_FAILURE=y -# CONFIG_HWPOISON_INJECT is not set CONFIG_ARCH_WANTS_THP_SWAP=y CONFIG_TRANSPARENT_HUGEPAGE=y CONFIG_TRANSPARENT_HUGEPAGE_ALWAYS=y @@ -949,7 +956,6 @@ CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK=y CONFIG_USE_PERCPU_NUMA_NODE_ID=y CONFIG_HAVE_SETUP_PER_CPU_AREA=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=19 @@ -974,6 +980,7 @@ CONFIG_SECRETMEM=y # CONFIG_LRU_GEN is not set CONFIG_ARCH_SUPPORTS_PER_VMA_LOCK=y CONFIG_PER_VMA_LOCK=y +CONFIG_LOCK_MM_AND_FIND_VMA=y # # Data Access Monitoring @@ -985,6 +992,7 @@ CONFIG_PER_VMA_LOCK=y CONFIG_NET=y CONFIG_NET_INGRESS=y CONFIG_NET_EGRESS=y +CONFIG_SKB_EXTENSIONS=y # # Networking options @@ -998,25 +1006,26 @@ CONFIG_AF_UNIX_OOB=y # CONFIG_TLS is not set # CONFIG_XFRM_USER is not set # CONFIG_NET_KEY is not set +# CONFIG_XDP_SOCKETS is not set CONFIG_NET_HANDSHAKE=y CONFIG_INET=y CONFIG_IP_MULTICAST=y CONFIG_IP_ADVANCED_ROUTER=y +# CONFIG_IP_FIB_TRIE_STATS is not set +CONFIG_IP_MULTIPLE_TABLES=y +# CONFIG_IP_ROUTE_MULTIPATH is not set +# CONFIG_IP_ROUTE_VERBOSE is not set CONFIG_IP_PNP=y CONFIG_IP_PNP_DHCP=y CONFIG_IP_PNP_BOOTP=y -CONFIG_IP_VS_NFCT=y -CONFIG_IP_VS_PROTO_TCP=y -CONFIG_IP_VS_PROTO_UDP=y -CONFIG_IP_VS_RR=y -CONFIG_IP_MULTIPLE_TABLES=y # CONFIG_IP_PNP_RARP is not set # CONFIG_NET_IPIP is not set # CONFIG_NET_IPGRE_DEMUX is not set -CONFIG_NET_IP_TUNNEL=m +CONFIG_NET_IP_TUNNEL=y # CONFIG_IP_MROUTE is not set # CONFIG_SYN_COOKIES is not set # CONFIG_NET_IPVTI is not set +CONFIG_NET_UDP_TUNNEL=y # CONFIG_NET_FOU is not set # CONFIG_NET_FOU_IP_TUNNELS is not set # CONFIG_INET_AH is not set @@ -1047,6 +1056,7 @@ CONFIG_IPV6_SIT=m CONFIG_IPV6_NDISC_NODETYPE=y # CONFIG_IPV6_TUNNEL is not set CONFIG_IPV6_MULTIPLE_TABLES=y +# CONFIG_IPV6_SUBTREES is not set # CONFIG_IPV6_MROUTE is not set # CONFIG_IPV6_SEG6_LWTUNNEL is not set # CONFIG_IPV6_SEG6_HMAC is not set @@ -1059,8 +1069,7 @@ CONFIG_NET_PTP_CLASSIFY=y # CONFIG_NETWORK_PHY_TIMESTAMPING is not set CONFIG_NETFILTER=y CONFIG_NETFILTER_ADVANCED=y -CONFIG_NETFILTER_XT_MATCH_IPVS=y -CONFIG_BRIDGE_NETFILTER=y +CONFIG_BRIDGE_NETFILTER=m # # Core Netfilter Configuration @@ -1069,6 +1078,8 @@ CONFIG_NETFILTER_INGRESS=y CONFIG_NETFILTER_EGRESS=y CONFIG_NETFILTER_SKIP_EGRESS=y CONFIG_NETFILTER_NETLINK=y +CONFIG_NETFILTER_FAMILY_BRIDGE=y +CONFIG_NETFILTER_BPF_LINK=y # CONFIG_NETFILTER_NETLINK_HOOK is not set # CONFIG_NETFILTER_NETLINK_ACCT is not set # CONFIG_NETFILTER_NETLINK_QUEUE is not set @@ -1098,6 +1109,7 @@ CONFIG_NF_CT_PROTO_UDPLITE=y # CONFIG_NF_CONNTRACK_TFTP is not set # CONFIG_NF_CT_NETLINK is not set CONFIG_NF_NAT=m +CONFIG_NF_NAT_REDIRECT=y CONFIG_NF_NAT_MASQUERADE=y CONFIG_NF_TABLES=y CONFIG_NF_TABLES_INET=y @@ -1114,9 +1126,10 @@ CONFIG_NFT_NAT=m # CONFIG_NFT_QUOTA is not set CONFIG_NFT_REJECT=m CONFIG_NFT_REJECT_INET=m -CONFIG_NFT_FIB=y # CONFIG_NFT_COMPAT is not set # CONFIG_NFT_HASH is not set +CONFIG_NFT_FIB=y +# CONFIG_NFT_FIB_INET is not set # CONFIG_NFT_SOCKET is not set # CONFIG_NFT_OSF is not set # CONFIG_NFT_TPROXY is not set @@ -1128,7 +1141,7 @@ CONFIG_NETFILTER_XTABLES_COMPAT=y # # Xtables combined modules # -CONFIG_NETFILTER_XT_MARK=y +CONFIG_NETFILTER_XT_MARK=m # CONFIG_NETFILTER_XT_CONNMARK is not set # @@ -1150,11 +1163,11 @@ CONFIG_NETFILTER_XT_NAT=m # CONFIG_NETFILTER_XT_TARGET_NFLOG is not set # CONFIG_NETFILTER_XT_TARGET_NFQUEUE is not set # CONFIG_NETFILTER_XT_TARGET_RATEEST is not set -# CONFIG_NETFILTER_XT_TARGET_REDIRECT is not set +CONFIG_NETFILTER_XT_TARGET_REDIRECT=m CONFIG_NETFILTER_XT_TARGET_MASQUERADE=m # CONFIG_NETFILTER_XT_TARGET_TEE is not set # CONFIG_NETFILTER_XT_TARGET_TPROXY is not set -CONFIG_NETFILTER_XT_TARGET_TCPMSS=y +CONFIG_NETFILTER_XT_TARGET_TCPMSS=m # CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP is not set # @@ -1164,7 +1177,7 @@ CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=m # CONFIG_NETFILTER_XT_MATCH_BPF is not set # CONFIG_NETFILTER_XT_MATCH_CGROUP is not set # CONFIG_NETFILTER_XT_MATCH_CLUSTER is not set -CONFIG_NETFILTER_XT_MATCH_COMMENT=y +CONFIG_NETFILTER_XT_MATCH_COMMENT=m # CONFIG_NETFILTER_XT_MATCH_CONNBYTES is not set # CONFIG_NETFILTER_XT_MATCH_CONNLABEL is not set # CONFIG_NETFILTER_XT_MATCH_CONNLIMIT is not set @@ -1181,6 +1194,7 @@ CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m # CONFIG_NETFILTER_XT_MATCH_HL is not set # CONFIG_NETFILTER_XT_MATCH_IPCOMP is not set # CONFIG_NETFILTER_XT_MATCH_IPRANGE is not set +CONFIG_NETFILTER_XT_MATCH_IPVS=m # CONFIG_NETFILTER_XT_MATCH_L2TP is not set # CONFIG_NETFILTER_XT_MATCH_LENGTH is not set # CONFIG_NETFILTER_XT_MATCH_LIMIT is not set @@ -1190,6 +1204,7 @@ CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m # CONFIG_NETFILTER_XT_MATCH_NFACCT is not set # CONFIG_NETFILTER_XT_MATCH_OSF is not set # CONFIG_NETFILTER_XT_MATCH_OWNER is not set +# CONFIG_NETFILTER_XT_MATCH_PHYSDEV is not set # CONFIG_NETFILTER_XT_MATCH_PKTTYPE is not set # CONFIG_NETFILTER_XT_MATCH_QUOTA is not set # CONFIG_NETFILTER_XT_MATCH_RATEEST is not set @@ -1200,13 +1215,58 @@ CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m # CONFIG_NETFILTER_XT_MATCH_STATE is not set # CONFIG_NETFILTER_XT_MATCH_STATISTIC is not set # CONFIG_NETFILTER_XT_MATCH_STRING is not set -CONFIG_NETFILTER_XT_MATCH_TCPMSS=y +CONFIG_NETFILTER_XT_MATCH_TCPMSS=m # CONFIG_NETFILTER_XT_MATCH_TIME is not set # CONFIG_NETFILTER_XT_MATCH_U32 is not set # end of Core Netfilter Configuration # CONFIG_IP_SET is not set -CONFIG_IP_VS=y +CONFIG_IP_VS=m +# CONFIG_IP_VS_IPV6 is not set +# CONFIG_IP_VS_DEBUG is not set +CONFIG_IP_VS_TAB_BITS=12 + +# +# IPVS transport protocol load balancing support +# +CONFIG_IP_VS_PROTO_TCP=y +CONFIG_IP_VS_PROTO_UDP=y +# CONFIG_IP_VS_PROTO_ESP is not set +# CONFIG_IP_VS_PROTO_AH is not set +# CONFIG_IP_VS_PROTO_SCTP is not set + +# +# IPVS scheduler +# +CONFIG_IP_VS_RR=m +# CONFIG_IP_VS_WRR is not set +# CONFIG_IP_VS_LC is not set +# CONFIG_IP_VS_WLC is not set +# CONFIG_IP_VS_FO is not set +# CONFIG_IP_VS_OVF is not set +# CONFIG_IP_VS_LBLC is not set +# CONFIG_IP_VS_LBLCR is not set +# CONFIG_IP_VS_DH is not set +# CONFIG_IP_VS_SH is not set +# CONFIG_IP_VS_MH is not set +# CONFIG_IP_VS_SED is not set +# CONFIG_IP_VS_NQ is not set +# CONFIG_IP_VS_TWOS is not set + +# +# IPVS SH scheduler +# +CONFIG_IP_VS_SH_TAB_BITS=8 + +# +# IPVS MH scheduler +# +CONFIG_IP_VS_MH_TAB_INDEX=12 + +# +# IPVS application helper +# +CONFIG_IP_VS_NFCT=y # # IP: Netfilter Configuration @@ -1234,7 +1294,7 @@ CONFIG_IP_NF_TARGET_REJECT=m CONFIG_IP_NF_NAT=m CONFIG_IP_NF_TARGET_MASQUERADE=m # CONFIG_IP_NF_TARGET_NETMAP is not set -CONFIG_IP_NF_TARGET_REDIRECT=y +CONFIG_IP_NF_TARGET_REDIRECT=m CONFIG_IP_NF_MANGLE=m # CONFIG_IP_NF_TARGET_ECN is not set # CONFIG_IP_NF_TARGET_TTL is not set @@ -1251,7 +1311,7 @@ CONFIG_IP_NF_MANGLE=m CONFIG_NF_TABLES_IPV6=y CONFIG_NFT_REJECT_IPV6=m # CONFIG_NFT_DUP_IPV6 is not set -CONFIG_NFT_FIB_IPV6=y +CONFIG_NFT_FIB_IPV6=m # CONFIG_NF_DUP_IPV6 is not set CONFIG_NF_REJECT_IPV6=m CONFIG_NF_LOG_IPV6=m @@ -1395,6 +1455,8 @@ CONFIG_NET_ACT_MIRRED=m # CONFIG_NET_ACT_MPLS is not set # CONFIG_NET_ACT_VLAN is not set # CONFIG_NET_ACT_BPF is not set +# CONFIG_NET_ACT_CONNMARK is not set +# CONFIG_NET_ACT_CTINFO is not set # CONFIG_NET_ACT_SKBMOD is not set # CONFIG_NET_ACT_IFE is not set # CONFIG_NET_ACT_TUNNEL_KEY is not set @@ -1411,7 +1473,7 @@ CONFIG_DNS_RESOLVER=y # CONFIG_NET_NSH is not set # CONFIG_HSR is not set CONFIG_NET_SWITCHDEV=y -# CONFIG_NET_L3_MASTER_DEV is not set +CONFIG_NET_L3_MASTER_DEV=y CONFIG_QRTR=m CONFIG_QRTR_SMD=m CONFIG_QRTR_TUN=m @@ -1424,9 +1486,10 @@ CONFIG_RFS_ACCEL=y CONFIG_SOCK_RX_QUEUE_MAPPING=y CONFIG_XPS=y CONFIG_CGROUP_NET_PRIO=y -# CONFIG_CGROUP_NET_CLASSID is not set +CONFIG_CGROUP_NET_CLASSID=y CONFIG_NET_RX_BUSY_POLL=y CONFIG_BQL=y +# CONFIG_BPF_STREAM_PARSER is not set CONFIG_NET_FLOW_LIMIT=y # @@ -1455,22 +1518,12 @@ CONFIG_BT_LEDS=y # CONFIG_BT_MSFTEXT is not set # CONFIG_BT_AOSPEXT is not set # CONFIG_BT_DEBUGFS is not set -# CONFIG_BT_SELFTEST is not set -# CONFIG_BT_FEATURE_DEBUG is not set # # Bluetooth device drivers # -CONFIG_BT_INTEL=m -CONFIG_BT_BCM=m -CONFIG_BT_RTL=m CONFIG_BT_QCA=m -CONFIG_BT_HCIBTUSB=m -# CONFIG_BT_HCIBTUSB_AUTOSUSPEND is not set -CONFIG_BT_HCIBTUSB_POLL_SYNC=y -CONFIG_BT_HCIBTUSB_BCM=y -# CONFIG_BT_HCIBTUSB_MTK is not set -CONFIG_BT_HCIBTUSB_RTL=y +# CONFIG_BT_HCIBTUSB is not set CONFIG_BT_HCIUART=m CONFIG_BT_HCIUART_SERDEV=y CONFIG_BT_HCIUART_H4=y @@ -1480,7 +1533,7 @@ CONFIG_BT_HCIUART_H4=y CONFIG_BT_HCIUART_LL=y # CONFIG_BT_HCIUART_3WIRE is not set # CONFIG_BT_HCIUART_INTEL is not set -CONFIG_BT_HCIUART_BCM=y +# CONFIG_BT_HCIUART_BCM is not set # CONFIG_BT_HCIUART_RTL is not set CONFIG_BT_HCIUART_QCA=y # CONFIG_BT_HCIUART_AG6XX is not set @@ -1491,7 +1544,6 @@ CONFIG_BT_HCIUART_QCA=y # CONFIG_BT_HCIBFUSB is not set # CONFIG_BT_HCIVHCI is not set # CONFIG_BT_MRVL is not set -# CONFIG_BT_ATH3K is not set # CONFIG_BT_MTKUART is not set CONFIG_BT_QCOMSMD=m # CONFIG_BT_VIRTIO is not set @@ -1501,6 +1553,7 @@ CONFIG_BT_QCOMSMD=m # CONFIG_AF_RXRPC is not set # CONFIG_AF_KCM is not set # CONFIG_MCTP is not set +CONFIG_FIB_RULES=y CONFIG_WIRELESS=y CONFIG_CFG80211=m # CONFIG_NL80211_TESTMODE is not set @@ -1562,6 +1615,7 @@ CONFIG_NFC_NXP_NCI_I2C=m CONFIG_DST_CACHE=y CONFIG_GRO_CELLS=y CONFIG_NET_SELFTESTS=y +CONFIG_NET_SOCK_MSG=y CONFIG_NET_DEVLINK=y CONFIG_PAGE_POOL=y CONFIG_PAGE_POOL_STATS=y @@ -1589,7 +1643,6 @@ CONFIG_PCIE_PME=y # CONFIG_PCIE_PTM is not set CONFIG_PCI_MSI=y CONFIG_PCI_QUIRKS=y -# CONFIG_PCI_DEBUG is not set # CONFIG_PCI_REALLOC_ENABLE_AUTO is not set # CONFIG_PCI_STUB is not set # CONFIG_PCI_PF_STUB is not set @@ -1660,6 +1713,7 @@ CONFIG_PCI_ENDPOINT=y CONFIG_PCI_ENDPOINT_CONFIGFS=y CONFIG_PCI_EPF_TEST=m # CONFIG_PCI_EPF_NTB is not set +# CONFIG_PCI_EPF_MHI is not set # end of PCI Endpoint # @@ -1688,6 +1742,7 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y # Firmware loader # CONFIG_FW_LOADER=y +CONFIG_FW_LOADER_DEBUG=y CONFIG_FW_LOADER_PAGED_BUF=y CONFIG_FW_LOADER_SYSFS=y CONFIG_EXTRA_FIRMWARE="" @@ -1703,9 +1758,6 @@ CONFIG_FW_CACHE=y CONFIG_WANT_DEV_COREDUMP=y CONFIG_ALLOW_DEV_COREDUMP=y CONFIG_DEV_COREDUMP=y -# CONFIG_DEBUG_DRIVER is not set -# CONFIG_DEBUG_DEVRES is not set -# CONFIG_DEBUG_TEST_DRIVER_REMOVE is not set # CONFIG_TEST_ASYNC_DRIVER_PROBE is not set CONFIG_GENERIC_CPU_AUTOPROBE=y CONFIG_GENERIC_CPU_VULNERABILITIES=y @@ -2286,6 +2338,10 @@ CONFIG_BLK_DEV_MD=m CONFIG_BLK_DEV_DM_BUILTIN=y CONFIG_BLK_DEV_DM=y # CONFIG_DM_DEBUG is not set +CONFIG_DM_BUFIO=y +# CONFIG_DM_DEBUG_BLOCK_MANAGER_LOCKING is not set +CONFIG_DM_BIO_PRISON=y +CONFIG_DM_PERSISTENT_DATA=y # CONFIG_DM_UNSTRIPED is not set CONFIG_DM_CRYPT=m # CONFIG_DM_SNAPSHOT is not set @@ -2325,14 +2381,17 @@ CONFIG_MII=m CONFIG_NET_CORE=y # CONFIG_BONDING is not set CONFIG_DUMMY=y -CONFIG_WIREGUARD=y +CONFIG_WIREGUARD=m +# CONFIG_WIREGUARD_DEBUG is not set # CONFIG_EQUALIZER is not set # CONFIG_NET_FC is not set # CONFIG_IFB is not set # CONFIG_NET_TEAM is not set CONFIG_MACVLAN=m CONFIG_MACVTAP=m -CONFIG_IPVLAN=y +CONFIG_IPVLAN_L3S=y +CONFIG_IPVLAN=m +# CONFIG_IPVTAP is not set CONFIG_VXLAN=y # CONFIG_GENEVE is not set # CONFIG_BAREUDP is not set @@ -2346,6 +2405,7 @@ CONFIG_TAP=m CONFIG_VETH=m # CONFIG_VIRTIO_NET is not set # CONFIG_NLMON is not set +# CONFIG_NET_VRF is not set # CONFIG_MHI_NET is not set # CONFIG_ARCNET is not set @@ -2446,7 +2506,6 @@ CONFIG_CAN_DEV=m CONFIG_CAN_NETLINK=y CONFIG_CAN_CALC_BITTIMING=y CONFIG_CAN_RX_OFFLOAD=y -# CONFIG_CAN_BXCAN is not set # CONFIG_CAN_CAN327 is not set CONFIG_CAN_FLEXCAN=m # CONFIG_CAN_GRCAN is not set @@ -2478,6 +2537,7 @@ CONFIG_CAN_FLEXCAN=m # CONFIG_CAN_EMS_USB is not set # CONFIG_CAN_ESD_USB is not set # CONFIG_CAN_ETAS_ES58X is not set +# CONFIG_CAN_F81604 is not set # CONFIG_CAN_GS_USB is not set # CONFIG_CAN_KVASER_USB is not set # CONFIG_CAN_MCBA_USB is not set @@ -2747,7 +2807,6 @@ CONFIG_TOUCHSCREEN_S6SY761=m # CONFIG_TOUCHSCREEN_IMAGIS is not set # CONFIG_TOUCHSCREEN_IMX6UL_TSC is not set # CONFIG_TOUCHSCREEN_INEXIO is not set -# CONFIG_TOUCHSCREEN_MK712 is not set # CONFIG_TOUCHSCREEN_PENMOUNT is not set # CONFIG_TOUCHSCREEN_EDT_FT5X06 is not set # CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set @@ -2798,7 +2857,6 @@ CONFIG_INPUT_UINPUT=y # CONFIG_INPUT_PCF8574 is not set # CONFIG_INPUT_PWM_BEEPER is not set CONFIG_INPUT_PWM_VIBRA=m -# CONFIG_INPUT_RK805_PWRKEY is not set # CONFIG_INPUT_GPIO_ROTARY_ENCODER is not set # CONFIG_INPUT_DA7280_HAPTICS is not set # CONFIG_INPUT_ADXL34X is not set @@ -2811,6 +2869,7 @@ CONFIG_INPUT_PWM_VIBRA=m # CONFIG_INPUT_DRV260X_HAPTICS is not set # CONFIG_INPUT_DRV2665_HAPTICS is not set # CONFIG_INPUT_DRV2667_HAPTICS is not set +CONFIG_XIAOMI_KEYBOARD=y # CONFIG_RMI4_CORE is not set # @@ -3068,7 +3127,6 @@ CONFIG_I2C_RK3X=y # CONFIG_I3C is not set CONFIG_SPI=y -# CONFIG_SPI_DEBUG is not set CONFIG_SPI_MASTER=y CONFIG_SPI_MEM=y @@ -3160,7 +3218,6 @@ CONFIG_PINMUX=y CONFIG_GENERIC_PINMUX_FUNCTIONS=y CONFIG_PINCONF=y CONFIG_GENERIC_PINCONF=y -# CONFIG_DEBUG_PINCTRL is not set # CONFIG_PINCTRL_AMD is not set # CONFIG_PINCTRL_AXP209 is not set # CONFIG_PINCTRL_CY8C95X0 is not set @@ -3168,11 +3225,11 @@ CONFIG_PINCTRL_MAX77620=y # CONFIG_PINCTRL_MCP23S08 is not set # CONFIG_PINCTRL_MICROCHIP_SGPIO is not set # CONFIG_PINCTRL_OCELOT is not set -# CONFIG_PINCTRL_RK805 is not set CONFIG_PINCTRL_SINGLE=y # CONFIG_PINCTRL_STMFX is not set # CONFIG_PINCTRL_SX150X is not set CONFIG_PINCTRL_MSM=y +# CONFIG_PINCTRL_IPQ5018 is not set # CONFIG_PINCTRL_IPQ5332 is not set # CONFIG_PINCTRL_IPQ8074 is not set # CONFIG_PINCTRL_IPQ6018 is not set @@ -3187,18 +3244,16 @@ CONFIG_PINCTRL_MSM=y # CONFIG_PINCTRL_QCM2290 is not set # CONFIG_PINCTRL_QCS404 is not set # CONFIG_PINCTRL_QDF2XXX is not set -CONFIG_PINCTRL_QCOM_SPMI_PMIC=y -# CONFIG_PINCTRL_QCOM_SSBI_PMIC is not set # CONFIG_PINCTRL_QDU1000 is not set # CONFIG_PINCTRL_SA8775P is not set # CONFIG_PINCTRL_SC7180 is not set # CONFIG_PINCTRL_SC7280 is not set -# CONFIG_PINCTRL_SC7280_LPASS_LPI is not set # CONFIG_PINCTRL_SC8180X is not set # CONFIG_PINCTRL_SC8280XP is not set # CONFIG_PINCTRL_SDM660 is not set # CONFIG_PINCTRL_SDM670 is not set # CONFIG_PINCTRL_SDM845 is not set +# CONFIG_PINCTRL_SDX75 is not set # CONFIG_PINCTRL_SM6115 is not set # CONFIG_PINCTRL_SM6125 is not set # CONFIG_PINCTRL_SM6350 is not set @@ -3206,14 +3261,17 @@ CONFIG_PINCTRL_QCOM_SPMI_PMIC=y # CONFIG_PINCTRL_SM7150 is not set # CONFIG_PINCTRL_SM8150 is not set CONFIG_PINCTRL_SM8250=y -CONFIG_PINCTRL_SM8250_LPASS_LPI=m # CONFIG_PINCTRL_SM8350 is not set # CONFIG_PINCTRL_SM8450 is not set +# CONFIG_PINCTRL_SM8550 is not set +CONFIG_PINCTRL_QCOM_SPMI_PMIC=y +# CONFIG_PINCTRL_QCOM_SSBI_PMIC is not set +CONFIG_PINCTRL_LPASS_LPI=y +# CONFIG_PINCTRL_SC7280_LPASS_LPI is not set +CONFIG_PINCTRL_SM8250_LPASS_LPI=m # CONFIG_PINCTRL_SM8450_LPASS_LPI is not set # CONFIG_PINCTRL_SC8280XP_LPASS_LPI is not set -# CONFIG_PINCTRL_SM8550 is not set # CONFIG_PINCTRL_SM8550_LPASS_LPI is not set -CONFIG_PINCTRL_LPASS_LPI=y # # Renesas pinctrl drivers @@ -3226,7 +3284,6 @@ CONFIG_OF_GPIO=y CONFIG_GPIO_ACPI=y CONFIG_GPIOLIB_IRQCHIP=y CONFIG_OF_GPIO_MM_GPIOCHIP=y -# CONFIG_DEBUG_GPIO is not set CONFIG_GPIO_CDEV=y CONFIG_GPIO_CDEV_V1=y CONFIG_GPIO_GENERIC=y @@ -3370,7 +3427,6 @@ CONFIG_BATTERY_BQ27XXX_I2C=y # CONFIG_CHARGER_BQ25890 is not set # CONFIG_CHARGER_BQ25980 is not set # CONFIG_CHARGER_BQ256XX is not set -# CONFIG_CHARGER_RK817 is not set # CONFIG_CHARGER_SMB347 is not set # CONFIG_BATTERY_GAUGE_LTC2941 is not set # CONFIG_BATTERY_GOLDFISH is not set @@ -3381,6 +3437,7 @@ CONFIG_BATTERY_BQ27XXX_I2C=y # CONFIG_CHARGER_UCS1002 is not set # CONFIG_CHARGER_BD99954 is not set # CONFIG_BATTERY_UG3105 is not set +# CONFIG_CHARGER_QCOM_SMB2 is not set CONFIG_HWMON=y # CONFIG_HWMON_DEBUG_CHIP is not set @@ -3453,6 +3510,7 @@ CONFIG_SENSORS_ARM_SCPI=y # CONFIG_SENSORS_MAX31722 is not set # CONFIG_SENSORS_MAX31730 is not set # CONFIG_SENSORS_MAX31760 is not set +# CONFIG_MAX31827 is not set # CONFIG_SENSORS_MAX6620 is not set # CONFIG_SENSORS_MAX6621 is not set # CONFIG_SENSORS_MAX6639 is not set @@ -3605,6 +3663,7 @@ CONFIG_WATCHDOG_OPEN_TIMEOUT=0 # CONFIG_GPIO_WATCHDOG is not set # CONFIG_WDAT_WDT is not set # CONFIG_XILINX_WATCHDOG is not set +# CONFIG_XILINX_WINDOW_WATCHDOG is not set # CONFIG_ZIIRAVE_WATCHDOG is not set CONFIG_ARM_SP805_WATCHDOG=y CONFIG_ARM_SBSA_WATCHDOG=y @@ -3652,7 +3711,7 @@ CONFIG_MFD_BD9571MWV=y CONFIG_MFD_AXP20X=y CONFIG_MFD_AXP20X_I2C=y # CONFIG_MFD_MADERA is not set -# CONFIG_MFD_MAX597X is not set +# CONFIG_MFD_MAX5970 is not set # CONFIG_PMIC_DA903X is not set # CONFIG_MFD_DA9052_SPI is not set # CONFIG_MFD_DA9052_I2C is not set @@ -3676,6 +3735,7 @@ CONFIG_MFD_HI6421_PMIC=y # CONFIG_MFD_88PM805 is not set # CONFIG_MFD_88PM860X is not set # CONFIG_MFD_MAX14577 is not set +# CONFIG_MFD_MAX77541 is not set CONFIG_MFD_MAX77620=y # CONFIG_MFD_MAX77650 is not set # CONFIG_MFD_MAX77686 is not set @@ -3706,7 +3766,8 @@ CONFIG_MFD_SPMI_PMIC=y # CONFIG_MFD_RT5033 is not set # CONFIG_MFD_RT5120 is not set # CONFIG_MFD_RC5T583 is not set -CONFIG_MFD_RK808=y +# CONFIG_MFD_RK8XX_I2C is not set +# CONFIG_MFD_RK8XX_SPI is not set # CONFIG_MFD_RN5T618 is not set CONFIG_MFD_SEC_CORE=y # CONFIG_MFD_SI476X_CORE is not set @@ -3733,6 +3794,8 @@ CONFIG_MFD_SYSCON=y # CONFIG_MFD_TPS65910 is not set # CONFIG_MFD_TPS65912_I2C is not set # CONFIG_MFD_TPS65912_SPI is not set +# CONFIG_MFD_TPS6594_I2C is not set +# CONFIG_MFD_TPS6594_SPI is not set # CONFIG_TWL4030_CORE is not set # CONFIG_TWL6040_CORE is not set # CONFIG_MFD_WL1273_CORE is not set @@ -3825,8 +3888,8 @@ CONFIG_REGULATOR_QCOM_RPMH=y CONFIG_REGULATOR_QCOM_SMD_RPM=y CONFIG_REGULATOR_QCOM_SPMI=y CONFIG_REGULATOR_QCOM_USB_VBUS=y +# CONFIG_REGULATOR_RAA215300 is not set # CONFIG_REGULATOR_RASPBERRYPI_TOUCHSCREEN_ATTINY is not set -CONFIG_REGULATOR_RK808=y CONFIG_REGULATOR_ROHM=y # CONFIG_REGULATOR_RT4801 is not set # CONFIG_REGULATOR_RT4803 is not set @@ -3849,6 +3912,7 @@ CONFIG_REGULATOR_S2MPS11=y # CONFIG_REGULATOR_TPS51632 is not set # CONFIG_REGULATOR_TPS62360 is not set # CONFIG_REGULATOR_TPS6286X is not set +# CONFIG_REGULATOR_TPS6287X is not set # CONFIG_REGULATOR_TPS65023 is not set # CONFIG_REGULATOR_TPS6507X is not set CONFIG_REGULATOR_TPS65132=m @@ -4165,6 +4229,7 @@ CONFIG_DRM_PANEL_NOVATEK_NT36523=y # CONFIG_DRM_PANEL_SAMSUNG_DB7430 is not set # CONFIG_DRM_PANEL_SAMSUNG_S6D16D0 is not set # CONFIG_DRM_PANEL_SAMSUNG_S6D27A1 is not set +# CONFIG_DRM_PANEL_SAMSUNG_S6D7AA0 is not set # CONFIG_DRM_PANEL_SAMSUNG_S6E3HA2 is not set # CONFIG_DRM_PANEL_SAMSUNG_S6E63J0X03 is not set # CONFIG_DRM_PANEL_SAMSUNG_S6E63M0 is not set @@ -4283,6 +4348,8 @@ CONFIG_FB_SYS_IMAGEBLIT=y # CONFIG_FB_FOREIGN_ENDIAN is not set CONFIG_FB_SYS_FOPS=y CONFIG_FB_DEFERRED_IO=y +CONFIG_FB_SYS_HELPERS=y +CONFIG_FB_SYS_HELPERS_DEFERRED=y CONFIG_FB_MODE_HELPERS=y # CONFIG_FB_TILEBLITTING is not set @@ -4295,7 +4362,7 @@ CONFIG_FB_MODE_HELPERS=y # CONFIG_FB_CYBER2000 is not set # CONFIG_FB_ASILIANT is not set # CONFIG_FB_IMSTT is not set -# CONFIG_FB_EFI is not set +CONFIG_FB_EFI=y # CONFIG_FB_OPENCORES is not set # CONFIG_FB_S1D13XXX is not set # CONFIG_FB_NVIDIA is not set @@ -4397,6 +4464,7 @@ CONFIG_SND_CTL_FAST_LOOKUP=y CONFIG_SND_DRIVERS=y # CONFIG_SND_DUMMY is not set # CONFIG_SND_ALOOP is not set +# CONFIG_SND_PCMTEST is not set # CONFIG_SND_MTPAV is not set # CONFIG_SND_SERIAL_U16550 is not set # CONFIG_SND_SERIAL_GENERIC is not set @@ -4454,6 +4522,7 @@ CONFIG_SND_SOC_FSL_UTILS=m # CONFIG_SND_SOC_IMX_AUDMUX is not set # end of SoC Audio for Freescale CPUs +# CONFIG_SND_SOC_CHV3_I2S is not set # CONFIG_SND_I2S_HI6210_I2S is not set # CONFIG_SND_SOC_IMG is not set # CONFIG_SND_SOC_MTK_BTCVSD is not set @@ -4526,6 +4595,7 @@ CONFIG_SND_SOC_WM_ADSP=m # CONFIG_SND_SOC_AW88395 is not set # CONFIG_SND_SOC_BD28623 is not set # CONFIG_SND_SOC_BT_SCO is not set +# CONFIG_SND_SOC_CHV3_CODEC is not set # CONFIG_SND_SOC_CS35L32 is not set # CONFIG_SND_SOC_CS35L33 is not set # CONFIG_SND_SOC_CS35L34 is not set @@ -4582,6 +4652,7 @@ CONFIG_SND_SOC_HDMI_CODEC=y # CONFIG_SND_SOC_MAX98363 is not set # CONFIG_SND_SOC_MAX98373_I2C is not set # CONFIG_SND_SOC_MAX98373_SDW is not set +# CONFIG_SND_SOC_MAX98388 is not set # CONFIG_SND_SOC_MAX98390 is not set # CONFIG_SND_SOC_MAX98396 is not set # CONFIG_SND_SOC_MAX9860 is not set @@ -4602,7 +4673,6 @@ CONFIG_SND_SOC_HDMI_CODEC=y # CONFIG_SND_SOC_PCM512x_SPI is not set # CONFIG_SND_SOC_PEB2466 is not set # CONFIG_SND_SOC_RK3328 is not set -# CONFIG_SND_SOC_RK817 is not set # CONFIG_SND_SOC_RT1308_SDW is not set # CONFIG_SND_SOC_RT1316_SDW is not set # CONFIG_SND_SOC_RT1318_SDW is not set @@ -4616,6 +4686,7 @@ CONFIG_SND_SOC_HDMI_CODEC=y # CONFIG_SND_SOC_RT711_SDCA_SDW is not set # CONFIG_SND_SOC_RT712_SDCA_SDW is not set # CONFIG_SND_SOC_RT712_SDCA_DMIC_SDW is not set +# CONFIG_SND_SOC_RT722_SDCA_SDW is not set # CONFIG_SND_SOC_RT715_SDW is not set # CONFIG_SND_SOC_RT715_SDCA_SDW is not set # CONFIG_SND_SOC_RT9120 is not set @@ -4629,6 +4700,7 @@ CONFIG_SND_SOC_HDMI_CODEC=y # CONFIG_SND_SOC_SSM2518 is not set # CONFIG_SND_SOC_SSM2602_SPI is not set # CONFIG_SND_SOC_SSM2602_I2C is not set +# CONFIG_SND_SOC_SSM3515 is not set # CONFIG_SND_SOC_SSM4567 is not set # CONFIG_SND_SOC_STA32X is not set # CONFIG_SND_SOC_STA350 is not set @@ -4638,6 +4710,7 @@ CONFIG_SND_SOC_HDMI_CODEC=y # CONFIG_SND_SOC_TAS2764 is not set # CONFIG_SND_SOC_TAS2770 is not set # CONFIG_SND_SOC_TAS2780 is not set +# CONFIG_SND_SOC_TAS2781_I2C is not set # CONFIG_SND_SOC_TAS5086 is not set # CONFIG_SND_SOC_TAS571X is not set # CONFIG_SND_SOC_TAS5720 is not set @@ -4692,6 +4765,7 @@ CONFIG_SND_SOC_WCD938X_SDW=m # CONFIG_SND_SOC_WM8985 is not set # CONFIG_SND_SOC_WSA881X is not set # CONFIG_SND_SOC_WSA883X is not set +# CONFIG_SND_SOC_WSA884X is not set # CONFIG_SND_SOC_ZL38060 is not set # CONFIG_SND_SOC_MAX9759 is not set # CONFIG_SND_SOC_MT6351 is not set @@ -4793,6 +4867,7 @@ CONFIG_HID_MULTITOUCH=m # CONFIG_HID_NINTENDO is not set # CONFIG_HID_NTI is not set # CONFIG_HID_NTRIG is not set +# CONFIG_HID_NVIDIA_SHIELD is not set # CONFIG_HID_ORTEK is not set # CONFIG_HID_PANTHERLORD is not set # CONFIG_HID_PENMOUNT is not set @@ -4843,7 +4918,7 @@ CONFIG_HID_MULTITOUCH=m # CONFIG_USB_HID=y # CONFIG_HID_PID is not set -# CONFIG_USB_HIDDEV is not set +CONFIG_USB_HIDDEV=y # end of USB HID support CONFIG_I2C_HID=y @@ -4875,7 +4950,7 @@ CONFIG_USB_OTG=y # CONFIG_USB_OTG_FSM is not set # CONFIG_USB_LEDS_TRIGGER_USBPORT is not set CONFIG_USB_AUTOSUSPEND_DELAY=2 -# CONFIG_USB_MON is not set +CONFIG_USB_MON=m # # USB Host Controller Drivers @@ -5098,7 +5173,6 @@ CONFIG_NOP_USB_XCEIV=y # end of USB Physical Layer drivers CONFIG_USB_GADGET=y -# CONFIG_USB_GADGET_DEBUG is not set # CONFIG_USB_GADGET_DEBUG_FILES is not set # CONFIG_USB_GADGET_DEBUG_FS is not set CONFIG_USB_GADGET_VBUS_DRAW=2 @@ -5123,6 +5197,7 @@ CONFIG_USB_GADGET_STORAGE_NUM_BUFFERS=2 # CONFIG_USB_EG20T is not set # CONFIG_USB_GADGET_XILINX is not set # CONFIG_USB_MAX3420_UDC is not set +# CONFIG_USB_CDNS2_UDC is not set # CONFIG_USB_DUMMY_HCD is not set # end of USB Peripheral Controller @@ -5187,13 +5262,13 @@ CONFIG_TYPEC_TCPCI=m # CONFIG_TYPEC_RT1711H is not set # CONFIG_TYPEC_TCPCI_MAXIM is not set CONFIG_TYPEC_FUSB302=m +CONFIG_TYPEC_QCOM_PMIC=m # CONFIG_TYPEC_UCSI is not set CONFIG_TYPEC_TPS6598X=m # CONFIG_TYPEC_ANX7411 is not set # CONFIG_TYPEC_RT1719 is not set CONFIG_TYPEC_HD3SS3220=m # CONFIG_TYPEC_STUSB160X is not set -CONFIG_TYPEC_QCOM_PMIC=y # CONFIG_TYPEC_WUSB3801 is not set # @@ -5202,6 +5277,7 @@ CONFIG_TYPEC_QCOM_PMIC=y # CONFIG_TYPEC_MUX_FSA4480 is not set # CONFIG_TYPEC_MUX_GPIO_SBU is not set # CONFIG_TYPEC_MUX_PI3USB30532 is not set +# CONFIG_TYPEC_MUX_NB7VPQ904M is not set # end of USB Type-C Multiplexer/DeMultiplexer Switch support # @@ -5232,6 +5308,7 @@ CONFIG_LEDS_CLASS=y # LED drivers # # CONFIG_LEDS_AN30259A is not set +# CONFIG_LEDS_AW200XX is not set # CONFIG_LEDS_AW2013 is not set # CONFIG_LEDS_BCM6328 is not set # CONFIG_LEDS_BCM6358 is not set @@ -5272,7 +5349,7 @@ CONFIG_LEDS_SYSCON=y # CONFIG_LEDS_MLXREG is not set # CONFIG_LEDS_USER is not set # CONFIG_LEDS_SPI_BYTE is not set -# CONFIG_LEDS_TI_LMU_COMMON is not set +# CONFIG_LEDS_LM3697 is not set # # Flash and Torch LED drivers @@ -5353,7 +5430,6 @@ CONFIG_RTC_DRV_HYM8563=m # CONFIG_RTC_DRV_MAX6900 is not set CONFIG_RTC_DRV_MAX77686=y # CONFIG_RTC_DRV_NCT3018Y is not set -CONFIG_RTC_DRV_RK808=m # CONFIG_RTC_DRV_RS5C372 is not set # CONFIG_RTC_DRV_ISL1208 is not set # CONFIG_RTC_DRV_ISL12022 is not set @@ -5595,7 +5671,6 @@ CONFIG_COMMON_CLK=y # CONFIG_LMK04832 is not set # CONFIG_COMMON_CLK_MAX77686 is not set # CONFIG_COMMON_CLK_MAX9485 is not set -CONFIG_COMMON_CLK_RK808=y CONFIG_COMMON_CLK_SCMI=y CONFIG_COMMON_CLK_SCPI=y # CONFIG_COMMON_CLK_SI5341 is not set @@ -5623,34 +5698,19 @@ CONFIG_COMMON_CLK_QCOM=y # CONFIG_QCOM_A7PLL is not set # CONFIG_QCOM_CLK_APCS_MSM8916 is not set # CONFIG_QCOM_CLK_APCC_MSM8996 is not set -# CONFIG_QCOM_CLK_APCS_SDX55 is not set CONFIG_QCOM_CLK_SMD_RPM=y CONFIG_QCOM_CLK_RPMH=y -# CONFIG_APQ_GCC_8084 is not set -# CONFIG_APQ_MMCC_8084 is not set # CONFIG_IPQ_APSS_PLL is not set # CONFIG_IPQ_APSS_6018 is not set # CONFIG_IPQ_GCC_4019 is not set # CONFIG_IPQ_GCC_5332 is not set # CONFIG_IPQ_GCC_6018 is not set -# CONFIG_IPQ_GCC_806X is not set -# CONFIG_IPQ_LCC_806X is not set # CONFIG_IPQ_GCC_8074 is not set # CONFIG_IPQ_GCC_9574 is not set -# CONFIG_MSM_GCC_8660 is not set -# CONFIG_MSM_GCC_8909 is not set # CONFIG_MSM_GCC_8916 is not set # CONFIG_MSM_GCC_8917 is not set # CONFIG_MSM_GCC_8939 is not set -# CONFIG_MSM_GCC_8960 is not set -# CONFIG_MSM_LCC_8960 is not set -# CONFIG_MDM_GCC_9607 is not set -# CONFIG_MDM_GCC_9615 is not set -# CONFIG_MDM_LCC_9615 is not set -# CONFIG_MSM_MMCC_8960 is not set # CONFIG_MSM_GCC_8953 is not set -# CONFIG_MSM_GCC_8974 is not set -# CONFIG_MSM_MMCC_8974 is not set # CONFIG_MSM_GCC_8976 is not set # CONFIG_MSM_MMCC_8994 is not set # CONFIG_MSM_GCC_8994 is not set @@ -5677,6 +5737,7 @@ CONFIG_QCOM_CLK_RPMH=y # CONFIG_SC_GPUCC_7280 is not set # CONFIG_SC_GPUCC_8280XP is not set # CONFIG_SC_LPASSCC_7280 is not set +# CONFIG_SC_LPASSCC_8280XP is not set # CONFIG_SC_LPASS_CORECC_7180 is not set # CONFIG_SC_LPASS_CORECC_7280 is not set # CONFIG_SC_MSS_7180 is not set @@ -5694,8 +5755,7 @@ CONFIG_QCOM_CLK_RPMH=y # CONFIG_SDM_VIDEOCC_845 is not set # CONFIG_SDM_DISPCC_845 is not set # CONFIG_SDM_LPASSCC_845 is not set -# CONFIG_SDX_GCC_55 is not set -# CONFIG_SDX_GCC_65 is not set +# CONFIG_SDX_GCC_75 is not set # CONFIG_SM_CAMCC_6350 is not set # CONFIG_SM_CAMCC_8250 is not set # CONFIG_SM_CAMCC_8450 is not set @@ -5717,13 +5777,18 @@ CONFIG_SM_GCC_8250=y # CONFIG_SM_GPUCC_8150 is not set CONFIG_SM_GPUCC_8250=y # CONFIG_SM_GPUCC_8350 is not set +# CONFIG_SM_GPUCC_8450 is not set +# CONFIG_SM_GPUCC_8550 is not set # CONFIG_SM_TCSRCC_8550 is not set # CONFIG_SM_VIDEOCC_8150 is not set CONFIG_SM_VIDEOCC_8250=y +# CONFIG_SM_VIDEOCC_8350 is not set +# CONFIG_SM_VIDEOCC_8550 is not set # CONFIG_SPMI_PMIC_CLKDIV is not set CONFIG_QCOM_HFPLL=y # CONFIG_KPSS_XCC is not set CONFIG_CLK_GFM_LPASS_SM8250=y +# CONFIG_SM_VIDEOCC_8450 is not set # CONFIG_XILINX_VCU is not set # CONFIG_COMMON_CLK_XLNX_CLKWZRD is not set CONFIG_HWSPINLOCK=y @@ -5881,6 +5946,7 @@ CONFIG_QCOM_PDR_HELPERS=y CONFIG_QCOM_QMI_HELPERS=y # CONFIG_QCOM_RAMP_CTRL is not set CONFIG_QCOM_RMTFS_MEM=m +# CONFIG_QCOM_RPM_MASTER_STATS is not set CONFIG_QCOM_RPMH=y CONFIG_QCOM_RPMHPD=y CONFIG_QCOM_RPMPD=y @@ -6313,6 +6379,7 @@ CONFIG_SENSORS_ISL29018=m # CONFIG_SENSORS_ISL29028 is not set # CONFIG_ISL29125 is not set # CONFIG_JSA1212 is not set +# CONFIG_ROHM_BU27008 is not set # CONFIG_ROHM_BU27034 is not set # CONFIG_RPR0521 is not set # CONFIG_LTR501 is not set @@ -6322,6 +6389,7 @@ CONFIG_SENSORS_ISL29018=m # CONFIG_MAX44009 is not set # CONFIG_NOA1305 is not set # CONFIG_OPT3001 is not set +# CONFIG_OPT4001 is not set # CONFIG_PA12203001 is not set # CONFIG_SI1133 is not set # CONFIG_SI1145 is not set @@ -6401,6 +6469,7 @@ CONFIG_IIO_ST_MAGN_SPI_3AXIS=m # CONFIG_MCP4531 is not set # CONFIG_MCP41010 is not set # CONFIG_TPL0102 is not set +# CONFIG_X9250 is not set # end of Digital potentiometers # @@ -6421,6 +6490,7 @@ CONFIG_IIO_ST_MAGN_SPI_3AXIS=m # CONFIG_MPL115_I2C is not set # CONFIG_MPL115_SPI is not set CONFIG_MPL3115=m +# CONFIG_MPRLS0025PA is not set # CONFIG_MS5611 is not set # CONFIG_MS5637 is not set # CONFIG_IIO_ST_PRESS is not set @@ -6480,7 +6550,6 @@ CONFIG_MPL3115=m # CONFIG_NTB is not set CONFIG_PWM=y CONFIG_PWM_SYSFS=y -# CONFIG_PWM_DEBUG is not set # CONFIG_PWM_ATMEL_TCB is not set # CONFIG_PWM_CLK is not set # CONFIG_PWM_DWC is not set @@ -6558,6 +6627,7 @@ CONFIG_PHY_QCOM_USB_SNPS_FEMTO_V2=y # CONFIG_PHY_QCOM_USB_HS_28NM is not set # CONFIG_PHY_QCOM_USB_SS is not set # CONFIG_PHY_QCOM_IPQ806X_USB is not set +# CONFIG_PHY_QCOM_SGMII_ETH is not set # CONFIG_PHY_SAMSUNG_USB2 is not set # CONFIG_PHY_TUSB1210 is not set # end of PHY Subsystem @@ -6594,7 +6664,9 @@ CONFIG_RAS=y # Android # CONFIG_ANDROID_BINDER_IPC=y +# CONFIG_ANDROID_BINDERFS is not set CONFIG_ANDROID_BINDER_DEVICES="binder,hwbinder,vndbinder" +# CONFIG_ANDROID_BINDER_IPC_SELFTEST is not set # end of Android # CONFIG_LIBNVDIMM is not set @@ -6664,7 +6736,7 @@ CONFIG_INTERCONNECT_QCOM_BCM_VOTER=y # CONFIG_INTERCONNECT_QCOM_MSM8939 is not set # CONFIG_INTERCONNECT_QCOM_MSM8974 is not set # CONFIG_INTERCONNECT_QCOM_MSM8996 is not set -# CONFIG_INTERCONNECT_QCOM_OSM_L3 is not set +CONFIG_INTERCONNECT_QCOM_OSM_L3=y # CONFIG_INTERCONNECT_QCOM_QCM2290 is not set # CONFIG_INTERCONNECT_QCOM_QCS404 is not set # CONFIG_INTERCONNECT_QCOM_QDU1000 is not set @@ -6726,6 +6798,15 @@ CONFIG_BTRFS_FS=y # CONFIG_BTRFS_FS_REF_VERIFY is not set # CONFIG_NILFS2_FS is not set CONFIG_F2FS_FS=y +CONFIG_F2FS_STAT_FS=y +CONFIG_F2FS_FS_XATTR=y +CONFIG_F2FS_FS_POSIX_ACL=y +# CONFIG_F2FS_FS_SECURITY is not set +# CONFIG_F2FS_CHECK_FS is not set +# CONFIG_F2FS_FAULT_INJECTION is not set +# CONFIG_F2FS_FS_COMPRESSION is not set +CONFIG_F2FS_IOSTAT=y +# CONFIG_F2FS_UNFAIR_RWSEM is not set CONFIG_FS_POSIX_ACL=y CONFIG_EXPORTFS=y # CONFIG_EXPORTFS_BLOCK_OPS is not set @@ -6743,10 +6824,16 @@ CONFIG_QUOTA=y # CONFIG_QFMT_V1 is not set # CONFIG_QFMT_V2 is not set CONFIG_QUOTACTL=y -CONFIG_AUTOFS4_FS=y CONFIG_AUTOFS_FS=y CONFIG_FUSE_FS=y +# CONFIG_CUSE is not set +# CONFIG_VIRTIO_FS is not set CONFIG_OVERLAY_FS=y +# CONFIG_OVERLAY_FS_REDIRECT_DIR is not set +CONFIG_OVERLAY_FS_REDIRECT_ALWAYS_FOLLOW=y +# CONFIG_OVERLAY_FS_INDEX is not set +# CONFIG_OVERLAY_FS_XINO_AUTO is not set +# CONFIG_OVERLAY_FS_METACOPY is not set # # Caches @@ -6771,6 +6858,7 @@ CONFIG_FAT_DEFAULT_CODEPAGE=437 CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" # CONFIG_FAT_DEFAULT_UTF8 is not set CONFIG_EXFAT_FS=y +CONFIG_EXFAT_DEFAULT_IOCHARSET="utf8" # CONFIG_NTFS_FS is not set # CONFIG_NTFS3_FS is not set # end of DOS/FAT/EXFAT/NT Filesystems @@ -6784,7 +6872,7 @@ CONFIG_PROC_VMCORE=y # CONFIG_PROC_VMCORE_DEVICE_DUMP is not set CONFIG_PROC_SYSCTL=y CONFIG_PROC_PAGE_MONITOR=y -# CONFIG_PROC_CHILDREN is not set +CONFIG_PROC_CHILDREN=y CONFIG_KERNFS=y CONFIG_SYSFS=y CONFIG_TMPFS=y @@ -6813,8 +6901,22 @@ CONFIG_MISC_FILESYSTEMS=y # CONFIG_JFFS2_FS is not set # CONFIG_CRAMFS is not set CONFIG_SQUASHFS=y +CONFIG_SQUASHFS_FILE_CACHE=y +# CONFIG_SQUASHFS_FILE_DIRECT is not set +CONFIG_SQUASHFS_DECOMP_SINGLE=y +# CONFIG_SQUASHFS_CHOICE_DECOMP_BY_MOUNT is not set +CONFIG_SQUASHFS_COMPILE_DECOMP_SINGLE=y +# CONFIG_SQUASHFS_COMPILE_DECOMP_MULTI is not set +# CONFIG_SQUASHFS_COMPILE_DECOMP_MULTI_PERCPU is not set CONFIG_SQUASHFS_XATTR=y +CONFIG_SQUASHFS_ZLIB=y +# CONFIG_SQUASHFS_LZ4 is not set +# CONFIG_SQUASHFS_LZO is not set CONFIG_SQUASHFS_XZ=y +# CONFIG_SQUASHFS_ZSTD is not set +# CONFIG_SQUASHFS_4K_DEVBLK_SIZE is not set +# CONFIG_SQUASHFS_EMBEDDED is not set +CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3 # CONFIG_VXFS_FS is not set # CONFIG_MINIX_FS is not set # CONFIG_OMFS_FS is not set @@ -6947,7 +7049,6 @@ CONFIG_SECURITY=y CONFIG_SECURITYFS=y # CONFIG_SECURITY_NETWORK is not set # CONFIG_SECURITY_PATH is not set -CONFIG_HAVE_HARDENED_USERCOPY_ALLOCATOR=y # CONFIG_HARDENED_USERCOPY is not set # CONFIG_FORTIFY_SOURCE is not set # CONFIG_STATIC_USERMODEHELPER is not set @@ -6975,13 +7076,7 @@ CONFIG_LSM="landlock,lockdown,yama,loadpin,safesetid,integrity,bpf" # # Memory initialization # -CONFIG_CC_HAS_AUTO_VAR_INIT_PATTERN=y -CONFIG_CC_HAS_AUTO_VAR_INIT_ZERO_BARE=y -CONFIG_CC_HAS_AUTO_VAR_INIT_ZERO=y CONFIG_INIT_STACK_NONE=y -# CONFIG_INIT_STACK_ALL_PATTERN is not set -# CONFIG_INIT_STACK_ALL_ZERO is not set -# CONFIG_GCC_PLUGIN_STACKLEAK is not set # CONFIG_INIT_ON_ALLOC_DEFAULT_ON is not set # CONFIG_INIT_ON_FREE_DEFAULT_ON is not set CONFIG_CC_HAS_ZERO_CALL_USED_REGS=y @@ -6989,8 +7084,6 @@ CONFIG_CC_HAS_ZERO_CALL_USED_REGS=y # end of Memory initialization CONFIG_RANDSTRUCT_NONE=y -# CONFIG_RANDSTRUCT_FULL is not set -# CONFIG_RANDSTRUCT_PERFORMANCE is not set # end of Kernel hardening options # end of Security options @@ -7004,6 +7097,7 @@ CONFIG_CRYPTO_ALGAPI=y CONFIG_CRYPTO_ALGAPI2=y CONFIG_CRYPTO_AEAD=y CONFIG_CRYPTO_AEAD2=y +CONFIG_CRYPTO_SIG2=y CONFIG_CRYPTO_SKCIPHER=y CONFIG_CRYPTO_SKCIPHER2=y CONFIG_CRYPTO_HASH=y @@ -7014,7 +7108,7 @@ CONFIG_CRYPTO_RNG_DEFAULT=y CONFIG_CRYPTO_AKCIPHER2=y CONFIG_CRYPTO_AKCIPHER=y CONFIG_CRYPTO_KPP2=y -CONFIG_CRYPTO_KPP=m +CONFIG_CRYPTO_KPP=y CONFIG_CRYPTO_ACOMP2=y CONFIG_CRYPTO_MANAGER=y CONFIG_CRYPTO_MANAGER2=y @@ -7032,7 +7126,7 @@ CONFIG_CRYPTO_AUTHENC=m # Public-key cryptography # CONFIG_CRYPTO_RSA=y -CONFIG_CRYPTO_DH=m +CONFIG_CRYPTO_DH=y # CONFIG_CRYPTO_DH_RFC7919_GROUPS is not set CONFIG_CRYPTO_ECC=m CONFIG_CRYPTO_ECDH=m @@ -7090,6 +7184,7 @@ CONFIG_CRYPTO_XTS=m # CONFIG_CRYPTO_CHACHA20POLY1305 is not set CONFIG_CRYPTO_CCM=m CONFIG_CRYPTO_GCM=m +CONFIG_CRYPTO_GENIV=y # CONFIG_CRYPTO_SEQIV is not set CONFIG_CRYPTO_ECHAINIV=y CONFIG_CRYPTO_ESSIV=m @@ -7110,7 +7205,7 @@ CONFIG_CRYPTO_MICHAEL_MIC=y CONFIG_CRYPTO_SHA1=y CONFIG_CRYPTO_SHA256=y CONFIG_CRYPTO_SHA512=y -CONFIG_CRYPTO_SHA3=m +CONFIG_CRYPTO_SHA3=y CONFIG_CRYPTO_SM3=m CONFIG_CRYPTO_SM3_GENERIC=m # CONFIG_CRYPTO_STREEBOG is not set @@ -7124,7 +7219,7 @@ CONFIG_CRYPTO_XXHASH=y # CRCs (cyclic redundancy checks) # CONFIG_CRYPTO_CRC32C=y -# CONFIG_CRYPTO_CRC32 is not set +CONFIG_CRYPTO_CRC32=y CONFIG_CRYPTO_CRCT10DIF=y CONFIG_CRYPTO_CRC64_ROCKSOFT=y # end of CRCs (cyclic redundancy checks) @@ -7150,12 +7245,14 @@ CONFIG_CRYPTO_DRBG_HMAC=y # CONFIG_CRYPTO_DRBG_CTR is not set CONFIG_CRYPTO_DRBG=y CONFIG_CRYPTO_JITTERENTROPY=y +# CONFIG_CRYPTO_JITTERENTROPY_TESTINTERFACE is not set +CONFIG_CRYPTO_KDF800108_CTR=y # end of Random number generation # # Userspace interface # -CONFIG_CRYPTO_USER_API=m +CONFIG_CRYPTO_USER_API=y CONFIG_CRYPTO_USER_API_HASH=y CONFIG_CRYPTO_USER_API_SKCIPHER=y CONFIG_CRYPTO_USER_API_RNG=m @@ -7172,7 +7269,7 @@ CONFIG_CRYPTO_CHACHA20_NEON=m # Accelerated Cryptographic Algorithms for CPU (arm64) # CONFIG_CRYPTO_GHASH_ARM64_CE=y -# CONFIG_CRYPTO_POLY1305_NEON is not set +CONFIG_CRYPTO_POLY1305_NEON=m CONFIG_CRYPTO_SHA1_ARM64_CE=y CONFIG_CRYPTO_SHA256_ARM64=y CONFIG_CRYPTO_SHA2_ARM64_CE=y @@ -7274,13 +7371,14 @@ CONFIG_CRYPTO_LIB_GF128MUL=y CONFIG_CRYPTO_LIB_BLAKE2S_GENERIC=y CONFIG_CRYPTO_ARCH_HAVE_LIB_CHACHA=m CONFIG_CRYPTO_LIB_CHACHA_GENERIC=m -# CONFIG_CRYPTO_LIB_CHACHA is not set +CONFIG_CRYPTO_LIB_CHACHA=m CONFIG_CRYPTO_LIB_CURVE25519_GENERIC=m -# CONFIG_CRYPTO_LIB_CURVE25519 is not set -CONFIG_CRYPTO_LIB_DES=m +CONFIG_CRYPTO_LIB_CURVE25519=m +CONFIG_CRYPTO_LIB_DES=y CONFIG_CRYPTO_LIB_POLY1305_RSIZE=9 -# CONFIG_CRYPTO_LIB_POLY1305 is not set -# CONFIG_CRYPTO_LIB_CHACHA20POLY1305 is not set +CONFIG_CRYPTO_ARCH_HAVE_LIB_POLY1305=m +CONFIG_CRYPTO_LIB_POLY1305=m +CONFIG_CRYPTO_LIB_CHACHA20POLY1305=m CONFIG_CRYPTO_LIB_SHA1=y CONFIG_CRYPTO_LIB_SHA256=y # end of Crypto library routines @@ -7343,6 +7441,7 @@ CONFIG_HAS_IOPORT=y CONFIG_HAS_IOPORT_MAP=y CONFIG_HAS_DMA=y CONFIG_DMA_OPS=y +CONFIG_NEED_SG_DMA_FLAGS=y CONFIG_NEED_SG_DMA_LENGTH=y CONFIG_NEED_DMA_MAP_STATE=y CONFIG_ARCH_DMA_ADDR_T_64BIT=y @@ -7353,6 +7452,7 @@ CONFIG_ARCH_HAS_SYNC_DMA_FOR_DEVICE=y CONFIG_ARCH_HAS_SYNC_DMA_FOR_CPU=y CONFIG_ARCH_HAS_DMA_PREP_COHERENT=y CONFIG_SWIOTLB=y +CONFIG_DMA_BOUNCE_UNALIGNED_KMALLOC=y # CONFIG_DMA_RESTRICTED_POOL is not set CONFIG_DMA_NONCOHERENT_MMAP=y CONFIG_DMA_COHERENT_POOL=y @@ -7412,40 +7512,25 @@ CONFIG_PRINTK_TIME=y CONFIG_CONSOLE_LOGLEVEL_DEFAULT=7 CONFIG_CONSOLE_LOGLEVEL_QUIET=4 CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4 -# CONFIG_BOOT_PRINTK_DELAY is not set -# CONFIG_DYNAMIC_DEBUG is not set -# CONFIG_DYNAMIC_DEBUG_CORE is not set +CONFIG_DYNAMIC_DEBUG=y +CONFIG_DYNAMIC_DEBUG_CORE=y CONFIG_SYMBOLIC_ERRNAME=y CONFIG_DEBUG_BUGVERBOSE=y # end of printk and dmesg options -CONFIG_DEBUG_KERNEL=y -CONFIG_DEBUG_MISC=y +# CONFIG_DEBUG_KERNEL is not set # # Compile-time checks and compiler options # -CONFIG_DEBUG_INFO=y CONFIG_AS_HAS_NON_CONST_LEB128=y -# CONFIG_DEBUG_INFO_NONE is not set -CONFIG_DEBUG_INFO_DWARF_TOOLCHAIN_DEFAULT=y -# CONFIG_DEBUG_INFO_DWARF4 is not set -# CONFIG_DEBUG_INFO_DWARF5 is not set -CONFIG_DEBUG_INFO_REDUCED=y -CONFIG_DEBUG_INFO_COMPRESSED_NONE=y -# CONFIG_DEBUG_INFO_COMPRESSED_ZLIB is not set -# CONFIG_DEBUG_INFO_COMPRESSED_ZSTD is not set -# CONFIG_DEBUG_INFO_SPLIT is not set -# CONFIG_GDB_SCRIPTS is not set CONFIG_FRAME_WARN=2048 # CONFIG_STRIP_ASM_SYMS is not set -# CONFIG_READABLE_ASM is not set # CONFIG_HEADERS_INSTALL is not set # CONFIG_DEBUG_SECTION_MISMATCH is not set CONFIG_SECTION_MISMATCH_WARN_ONLY=y CONFIG_ARCH_WANT_FRAME_POINTERS=y CONFIG_FRAME_POINTER=y -# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set # end of Compile-time checks and compiler options # @@ -7460,7 +7545,6 @@ CONFIG_DEBUG_FS_ALLOW_ALL=y # CONFIG_DEBUG_FS_DISALLOW_MOUNT is not set # CONFIG_DEBUG_FS_ALLOW_NONE is not set CONFIG_HAVE_ARCH_KGDB=y -# CONFIG_KGDB is not set CONFIG_ARCH_HAS_UBSAN_SANITIZE_ALL=y # CONFIG_UBSAN is not set CONFIG_HAVE_KCSAN_COMPILER=y @@ -7469,41 +7553,27 @@ CONFIG_HAVE_KCSAN_COMPILER=y # # Networking Debugging # -# CONFIG_NET_DEV_REFCNT_TRACKER is not set -# CONFIG_NET_NS_REFCNT_TRACKER is not set -# CONFIG_DEBUG_NET is not set # end of Networking Debugging # # Memory Debugging # # CONFIG_PAGE_EXTENSION is not set -# CONFIG_DEBUG_PAGEALLOC is not set CONFIG_SLUB_DEBUG=y # CONFIG_SLUB_DEBUG_ON is not set -# CONFIG_PAGE_OWNER is not set # CONFIG_PAGE_TABLE_CHECK is not set # CONFIG_PAGE_POISONING is not set -# CONFIG_DEBUG_PAGE_REF is not set # CONFIG_DEBUG_RODATA_TEST is not set CONFIG_ARCH_HAS_DEBUG_WX=y # CONFIG_DEBUG_WX is not set CONFIG_GENERIC_PTDUMP=y -# CONFIG_PTDUMP_DEBUGFS is not set CONFIG_HAVE_DEBUG_KMEMLEAK=y -# CONFIG_DEBUG_KMEMLEAK is not set # CONFIG_PER_VMA_LOCK_STATS is not set -# CONFIG_DEBUG_OBJECTS is not set # CONFIG_SHRINKER_DEBUG is not set -# CONFIG_DEBUG_STACK_USAGE is not set -# CONFIG_SCHED_STACK_END_CHECK is not set CONFIG_ARCH_HAS_DEBUG_VM_PGTABLE=y -# CONFIG_DEBUG_VM is not set # CONFIG_DEBUG_VM_PGTABLE is not set CONFIG_ARCH_HAS_DEBUG_VIRTUAL=y -# CONFIG_DEBUG_VIRTUAL is not set CONFIG_DEBUG_MEMORY_INIT=y -# CONFIG_DEBUG_PER_CPU_MAPS is not set CONFIG_HAVE_ARCH_KASAN=y CONFIG_HAVE_ARCH_KASAN_SW_TAGS=y CONFIG_HAVE_ARCH_KASAN_HW_TAGS=y @@ -7516,25 +7586,19 @@ CONFIG_HAVE_ARCH_KFENCE=y # CONFIG_KFENCE is not set # end of Memory Debugging -# CONFIG_DEBUG_SHIRQ is not set - # # Debug Oops, Lockups and Hangs # # CONFIG_PANIC_ON_OOPS is not set CONFIG_PANIC_ON_OOPS_VALUE=0 CONFIG_PANIC_TIMEOUT=0 -# CONFIG_SOFTLOCKUP_DETECTOR is not set -# CONFIG_DETECT_HUNG_TASK is not set -# CONFIG_WQ_WATCHDOG is not set +CONFIG_HAVE_HARDLOCKUP_DETECTOR_BUDDY=y # CONFIG_TEST_LOCKUP is not set # end of Debug Oops, Lockups and Hangs # # Scheduler Debugging # -# CONFIG_SCHED_DEBUG is not set -# CONFIG_SCHEDSTATS is not set # end of Scheduler Debugging # CONFIG_DEBUG_TIMEKEEPING is not set @@ -7543,59 +7607,31 @@ CONFIG_PANIC_TIMEOUT=0 # Lock Debugging (spinlocks, mutexes, etc...) # CONFIG_LOCK_DEBUGGING_SUPPORT=y -# CONFIG_PROVE_LOCKING is not set -# CONFIG_LOCK_STAT is not set -# CONFIG_DEBUG_RT_MUTEXES is not set -# CONFIG_DEBUG_SPINLOCK is not set -# CONFIG_DEBUG_MUTEXES is not set -# CONFIG_DEBUG_WW_MUTEX_SLOWPATH is not set -# CONFIG_DEBUG_RWSEMS is not set -# CONFIG_DEBUG_LOCK_ALLOC is not set -# CONFIG_DEBUG_ATOMIC_SLEEP is not set -# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set -# CONFIG_LOCK_TORTURE_TEST is not set # CONFIG_WW_MUTEX_SELFTEST is not set -# CONFIG_SCF_TORTURE_TEST is not set -# 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 # # Debug kernel data structures # -# CONFIG_DEBUG_LIST is not set -# CONFIG_DEBUG_PLIST is not set -# CONFIG_DEBUG_SG is not set -# CONFIG_DEBUG_NOTIFIERS is not set # CONFIG_BUG_ON_DATA_CORRUPTION is not set -# CONFIG_DEBUG_MAPLE_TREE is not set # end of Debug kernel data structures -# CONFIG_DEBUG_CREDENTIALS is not set - # # RCU Debugging # -# CONFIG_RCU_SCALE_TEST is not set -# CONFIG_RCU_TORTURE_TEST is not set -# CONFIG_RCU_REF_SCALE_TEST is not set CONFIG_RCU_CPU_STALL_TIMEOUT=21 CONFIG_RCU_EXP_CPU_STALL_TIMEOUT=0 # CONFIG_RCU_CPU_STALL_CPUTIME is not set -CONFIG_RCU_TRACE=y -# CONFIG_RCU_EQS_DEBUG is not set # end of RCU Debugging -# CONFIG_DEBUG_WQ_FORCE_RR_CPU is not set -# CONFIG_CPU_HOTPLUG_STATE_CONTROL is not set -# CONFIG_LATENCYTOP is not set CONFIG_NOP_TRACER=y CONFIG_HAVE_FUNCTION_TRACER=y CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y +CONFIG_HAVE_FUNCTION_GRAPH_RETVAL=y CONFIG_HAVE_DYNAMIC_FTRACE=y CONFIG_HAVE_DYNAMIC_FTRACE_WITH_ARGS=y CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y @@ -7624,6 +7660,7 @@ CONFIG_BRANCH_PROFILE_NONE=y # CONFIG_PROFILE_ALL_BRANCHES is not set # CONFIG_BLK_DEV_IO_TRACE is not set CONFIG_UPROBE_EVENTS=y +CONFIG_BPF_EVENTS=y CONFIG_DYNAMIC_EVENTS=y CONFIG_PROBE_EVENTS=y # CONFIG_SYNTH_EVENTS is not set @@ -7638,6 +7675,8 @@ CONFIG_PROBE_EVENTS=y # CONFIG_PREEMPTIRQ_DELAY_TEST is not set # CONFIG_RV is not set # CONFIG_SAMPLES is not set +CONFIG_HAVE_SAMPLE_FTRACE_DIRECT=y +CONFIG_HAVE_SAMPLE_FTRACE_DIRECT_MULTI=y CONFIG_STRICT_DEVMEM=y # CONFIG_IO_STRICT_DEVMEM is not set @@ -7645,7 +7684,6 @@ CONFIG_STRICT_DEVMEM=y # arm64 Debugging # # CONFIG_PID_IN_CONTEXTIDR is not set -# CONFIG_DEBUG_EFI is not set # CONFIG_ARM64_RELOC_TEST is not set # CONFIG_CORESIGHT is not set # end of arm64 Debugging @@ -7654,22 +7692,14 @@ CONFIG_STRICT_DEVMEM=y # Kernel Testing and Coverage # # CONFIG_KUNIT is not set -# CONFIG_NOTIFIER_ERROR_INJECTION is not set -# CONFIG_FAULT_INJECTION is not set CONFIG_ARCH_HAS_KCOV=y CONFIG_CC_HAS_SANCOV_TRACE_PC=y -# CONFIG_KCOV is not set CONFIG_RUNTIME_TESTING_MENU=y # CONFIG_TEST_DHRY is not set # CONFIG_LKDTM is not set # CONFIG_TEST_MIN_HEAP is not set # CONFIG_TEST_DIV64 is not set -# CONFIG_BACKTRACE_SELF_TEST is not set -# CONFIG_TEST_REF_TRACKER is not set -# CONFIG_RBTREE_TEST is not set # CONFIG_REED_SOLOMON_TEST is not set -# CONFIG_INTERVAL_TREE_TEST is not set -# CONFIG_PERCPU_TEST is not set # CONFIG_ATOMIC64_SELFTEST is not set # CONFIG_TEST_HEXDUMP is not set # CONFIG_STRING_SELFTEST is not set @@ -7694,6 +7724,7 @@ CONFIG_RUNTIME_TESTING_MENU=y # CONFIG_TEST_SYSCTL is not set # CONFIG_TEST_UDELAY is not set # CONFIG_TEST_STATIC_KEYS is not set +# CONFIG_TEST_DYNAMIC_DEBUG is not set # CONFIG_TEST_KMOD is not set # CONFIG_TEST_MEMCAT_P is not set # CONFIG_TEST_MEMINIT is not set