From cfa6aab608644fdf3c2f5243d4cf692c6b6e9c24 Mon Sep 17 00:00:00 2001 From: Ljin_brocade Date: Tue, 23 Jul 2024 20:45:59 +0800 Subject: [PATCH] Kernel Startup Optimization Signed-off-by: Ljin_brocade --- linux-5.10/rk3568_patch/kernel.patch | 44 ++++++++++++++++++++-------- 1 file changed, 32 insertions(+), 12 deletions(-) diff --git a/linux-5.10/rk3568_patch/kernel.patch b/linux-5.10/rk3568_patch/kernel.patch index b62f373..b49f2fc 100755 --- a/linux-5.10/rk3568_patch/kernel.patch +++ b/linux-5.10/rk3568_patch/kernel.patch @@ -839474,7 +839474,7 @@ new file mode 100755 index 000000000000..6edbf5e02995 --- /dev/null +++ b/drivers/media/i2c/gc8034.c -@@ -0,0 +1,2827 @@ +@@ -0,0 +1,2838 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * gc8034 driver @@ -839517,6 +839517,7 @@ index 000000000000..6edbf5e02995 +#include +#include +#include ++#include + +#define DRIVER_VERSION KERNEL_VERSION(0, 0x01, 0x07) + @@ -842287,7 +842288,7 @@ index 000000000000..6edbf5e02995 + .id_table = gc8034_match_id, +}; + -+static int __init sensor_mod_init(void) ++static int sensor_mod_init(void *) +{ + return i2c_add_driver(&gc8034_i2c_driver); +} @@ -842297,7 +842298,17 @@ index 000000000000..6edbf5e02995 + i2c_del_driver(&gc8034_i2c_driver); +} + -+device_initcall_sync(sensor_mod_init); ++static __init int tracer_init_sensor_mod(void) ++{ ++ struct task_struct *thread; ++ ++ thread = kthread_run(sensor_mod_init, NULL, "sensor_mod_init"); ++ if (IS_ERR(thread)) ++ return PTR_ERR(thread); ++ ++ return 0; ++} ++device_initcall_sync(tracer_init_sensor_mod); +module_exit(sensor_mod_exit); + +MODULE_DESCRIPTION("GalaxyCore gc8034 sensor driver"); @@ -1000484,7 +1000495,7 @@ new file mode 100755 index 000000000000..b6d43d44d222 --- /dev/null +++ b/drivers/net/wireless/rockchip_wlan/rkwifi/bcmdhd_wifi6/dhd_linux.c -@@ -0,0 +1,22453 @@ +@@ -0,0 +1,22462 @@ +/* SPDX-License-Identifier: GPL-2.0 */ +/* + * Broadcom Dongle Host Driver (DHD), Linux-specific network interface @@ -1000555,6 +1000566,7 @@ index 000000000000..b6d43d44d222 +#include +#include +#include ++#include + +#include +#include @@ -1013346,9 +1013358,9 @@ index 000000000000..b6d43d44d222 +#ifdef CONFIG_AP6XXX_WIFI6_HDF +int +#else -+static int __init ++static int +#endif -+dhd_module_init(void) ++dhd_module_init(void *) +{ + int err; + int retry = POWERUP_MAX_RETRY; @@ -1013407,6 +1013419,16 @@ index 000000000000..b6d43d44d222 + } + return NOTIFY_DONE; +} ++static __init int tracer_init_dhd(void) ++{ ++ struct task_struct *thread; ++ ++ thread = kthread_run(dhd_module_init, NULL, "dhd_module_init"); ++ if (IS_ERR(thread)) ++ return PTR_ERR(thread); ++ ++ return 0; ++} + +#ifndef CONFIG_AP6XXX_WIFI6_HDF +#if defined(CONFIG_DEFERRED_INITCALLS) && !defined(EXYNOS_PCIE_MODULE_PATCH) @@ -1013415,19 +1013437,17 @@ index 000000000000..b6d43d44d222 + defined(CONFIG_SOC_EXYNOS8895) || defined(CONFIG_SOC_EXYNOS9810) || \ + defined(CONFIG_ARCH_SDM845) || defined(CONFIG_SOC_EXYNOS9820) || \ + defined(CONFIG_ARCH_SM8150) -+deferred_module_init_sync(dhd_module_init); ++deferred_module_init_sync(tracer_init_dhd); +#else -+deferred_module_init(dhd_module_init); ++deferred_module_init(tracer_init_dhd); +#endif /* CONFIG_MACH_UNIVERSAL7420 || CONFIG_SOC_EXYNOS8890 || + * CONFIG_ARCH_MSM8996 || CONFIG_ARCH_MSM8998 || CONFIG_SOC_EXYNOS8895 + * CONFIG_SOC_EXYNOS9810 || CONFIG_ARCH_SDM845 || CONFIG_SOC_EXYNOS9820 + * CONFIG_ARCH_SM8150 + */ -+#elif defined(USE_LATE_INITCALL_SYNC) -+late_initcall_sync(dhd_module_init); +#else -+late_initcall(dhd_module_init); -+#endif /* USE_LATE_INITCALL_SYNC */ ++late_initcall_sync(tracer_init_dhd); ++#endif + +module_exit(dhd_module_exit); +#endif -- Gitee