From 166b2fb1fa7215f7e7d2863fce56062145522083 Mon Sep 17 00:00:00 2001 From: Bingpeng_Lao Date: Fri, 22 Mar 2024 10:03:15 +0300 Subject: [PATCH] wifi 03221503 --- .../hal/rtl8822c/sdio/rtl8822cs_ops.c | 10 ++++++++++ .../net/wireless/rtl8822cs/include/autoconf.h | 16 +++++++++++++++ .../wireless/rtl8822cs/include/rtw_version.h | 2 +- .../rtl8822cs/os_dep/linux/os_intfs.c | 20 +++++++++++++++++++ 4 files changed, 47 insertions(+), 1 deletion(-) diff --git a/drivers/net/wireless/rtl8822cs/hal/rtl8822c/sdio/rtl8822cs_ops.c b/drivers/net/wireless/rtl8822cs/hal/rtl8822c/sdio/rtl8822cs_ops.c index 1af0ce339..093adb4e7 100644 --- a/drivers/net/wireless/rtl8822cs/hal/rtl8822c/sdio/rtl8822cs_ops.c +++ b/drivers/net/wireless/rtl8822cs/hal/rtl8822c/sdio/rtl8822cs_ops.c @@ -203,11 +203,21 @@ static void _run_thread(PADAPTER adapter) if (xmitpriv->SdioXmitThread == NULL) { RTW_INFO(FUNC_ADPT_FMT " start RTWHALXT\n", FUNC_ADPT_ARG(adapter)); +#ifdef CONFIG_CPU_BALANCE_HALXT_THREAD + xmitpriv->SdioXmitThread = kthread_create(rtl8822cs_xmit_thread, adapter, "RTWHALXT"); +#else xmitpriv->SdioXmitThread = kthread_run(rtl8822cs_xmit_thread, adapter, "RTWHALXT"); +#endif if (IS_ERR(xmitpriv->SdioXmitThread)) { RTW_ERR("%s: start rtl8822cs_xmit_thread FAIL!!\n", __FUNCTION__); xmitpriv->SdioXmitThread = NULL; } +#ifdef CONFIG_CPU_BALANCE_HALXT_THREAD + else { + kthread_bind(xmitpriv->SdioXmitThread, CPUID_HALXT); + wake_up_process(xmitpriv->SdioXmitThread); + } +#endif } #endif /* !CONFIG_SDIO_TX_TASKLET */ } diff --git a/drivers/net/wireless/rtl8822cs/include/autoconf.h b/drivers/net/wireless/rtl8822cs/include/autoconf.h index b91600652..e4d8b1fe0 100644 --- a/drivers/net/wireless/rtl8822cs/include/autoconf.h +++ b/drivers/net/wireless/rtl8822cs/include/autoconf.h @@ -130,6 +130,10 @@ #define CONFIG_RECV_THREAD_MODE #ifdef CONFIG_RECV_THREAD_MODE #define RTW_RECV_THREAD_HIGH_PRIORITY +#define CONFIG_CPU_BALANCE_RX_THREAD +#ifdef CONFIG_CPU_BALANCE_RX_THREAD +#define CPUID_RECV 1 +#endif /* CONFIG_CPU_BALANCE_RX_THREAD */ #endif/*CONFIG_RECV_THREAD_MODE*/ /* @@ -137,6 +141,12 @@ */ #define CONFIG_TX_AGGREGATION #define CONFIG_XMIT_THREAD_MODE /* necessary for SDIO */ +#ifdef CONFIG_XMIT_THREAD_MODE +#define CONFIG_CPU_BALANCE_TX_THREAD +#ifdef CONFIG_CPU_BALANCE_TX_THREAD +#define CPUID_XMIT 2 +#endif /* CONFIG_CPU_BALANCE_TX_THREAD */ +#endif /* CONFIG_XMIT_THREAD_MODE */ #define RTW_XMIT_THREAD_HIGH_PRIORITY #define RTW_XMIT_THREAD_HIGH_PRIORITY_AGG #define CONFIG_SDIO_HOOK_DEV_SHUTDOWN @@ -147,6 +157,12 @@ #define CONFIG_SDIO_RX_COPY #define DBG_SDIO 1 +#ifndef CONFIG_SDIO_TX_TASKLET +#define CONFIG_CPU_BALANCE_HALXT_THREAD +#ifdef CONFIG_CPU_BALANCE_HALXT_THREAD +#define CPUID_HALXT 3 +#endif /* CONFIG_CPU_BALANCE_HALXT_THREAD */ +#endif /* * Others diff --git a/drivers/net/wireless/rtl8822cs/include/rtw_version.h b/drivers/net/wireless/rtl8822cs/include/rtw_version.h index 4ef09a647..197c4e72e 100644 --- a/drivers/net/wireless/rtl8822cs/include/rtw_version.h +++ b/drivers/net/wireless/rtl8822cs/include/rtw_version.h @@ -1,2 +1,2 @@ -#define DRIVERVERSION "v5.15.8.3-17-g157acb413.20240221_COEX20221215-3130" +#define DRIVERVERSION "v5.15.8.3-17-g157acb413.20240304_COEX20221215-3130_cpu_balance" #define BTCOEXVERSION "COEX20221215-3130" diff --git a/drivers/net/wireless/rtl8822cs/os_dep/linux/os_intfs.c b/drivers/net/wireless/rtl8822cs/os_dep/linux/os_intfs.c index 871421100..08117bfa2 100644 --- a/drivers/net/wireless/rtl8822cs/os_dep/linux/os_intfs.c +++ b/drivers/net/wireless/rtl8822cs/os_dep/linux/os_intfs.c @@ -2320,11 +2320,21 @@ u32 rtw_start_drv_threads(_adapter *padapter) { if (padapter->xmitThread == NULL) { RTW_INFO(FUNC_ADPT_FMT " start RTW_XMIT_THREAD\n", FUNC_ADPT_ARG(padapter)); +#ifdef CONFIG_CPU_BALANCE_TX_THREAD + padapter->xmitThread = kthread_create(rtw_xmit_thread, padapter, "RTW_XMIT_THREAD"); +#else padapter->xmitThread = kthread_run(rtw_xmit_thread, padapter, "RTW_XMIT_THREAD"); +#endif if (IS_ERR(padapter->xmitThread)) { padapter->xmitThread = NULL; _status = _FAIL; } +#ifdef CONFIG_CPU_BALANCE_TX_THREAD + else { + kthread_bind(padapter->xmitThread, CPUID_XMIT); + wake_up_process(padapter->xmitThread); + } +#endif } } #endif /* #ifdef CONFIG_XMIT_THREAD_MODE */ @@ -2333,11 +2343,21 @@ u32 rtw_start_drv_threads(_adapter *padapter) if (is_primary_adapter(padapter)) { if (padapter->recvThread == NULL) { RTW_INFO(FUNC_ADPT_FMT " start RTW_RECV_THREAD\n", FUNC_ADPT_ARG(padapter)); +#ifdef CONFIG_CPU_BALANCE_RX_THREAD + padapter->recvThread = kthread_create(rtw_recv_thread, padapter, "RTW_RECV_THREAD"); +#else padapter->recvThread = kthread_run(rtw_recv_thread, padapter, "RTW_RECV_THREAD"); +#endif if (IS_ERR(padapter->recvThread)) { padapter->recvThread = NULL; _status = _FAIL; } +#ifdef CONFIG_CPU_BALANCE_RX_THREAD + else { + kthread_bind(padapter->recvThread, CPUID_RECV); + wake_up_process(padapter->recvThread); + } +#endif } } #endif