From 02a3bd24d0ff425dfe76bd804fd68ab0688177c0 Mon Sep 17 00:00:00 2001 From: Denis Klester Date: Wed, 26 Mar 2025 14:33:59 +0600 Subject: [PATCH 1/6] fix build for 6.14 --- os_dep/ioctl_cfg80211.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/os_dep/ioctl_cfg80211.c b/os_dep/ioctl_cfg80211.c index fb46f12..41f9a93 100644 --- a/os_dep/ioctl_cfg80211.c +++ b/os_dep/ioctl_cfg80211.c @@ -3159,6 +3159,9 @@ static int cfg80211_rtw_set_txpower(struct wiphy *wiphy, static int cfg80211_rtw_get_txpower(struct wiphy *wiphy, #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,8,0)) struct wireless_dev *wdev, +#endif +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(6,14,0)) + unsigned int link_id, #endif int *dbm) { From 8e13c4675c91f67404cdb18488c864ec7b54a985 Mon Sep 17 00:00:00 2001 From: Denis Klester Date: Sat, 7 Jun 2025 13:46:47 +0600 Subject: [PATCH 2/6] fix build for 6.15 --- Makefile | 108 +++++++++++++++++----------------- include/osdep_service.h | 6 +- include/osdep_service_linux.h | 7 ++- 3 files changed, 64 insertions(+), 57 deletions(-) diff --git a/Makefile b/Makefile index 866b19a..e1cb49a 100644 --- a/Makefile +++ b/Makefile @@ -4,28 +4,28 @@ MODDESTDIR := kernel/drivers/net/wireless/ DEPMOD = /sbin/depmod -EXTRA_CFLAGS += $(USER_EXTRA_CFLAGS) -EXTRA_CFLAGS += -O1 -#EXTRA_CFLAGS += -O3 -#EXTRA_CFLAGS += -Wall -#EXTRA_CFLAGS += -Wextra -#EXTRA_CFLAGS += -Werror -#EXTRA_CFLAGS += -pedantic -#EXTRA_CFLAGS += -Wshadow -Wpointer-arith -Wcast-qual -Wstrict-prototypes -Wmissing-prototypes - -EXTRA_CFLAGS += -Wno-unused-variable -EXTRA_CFLAGS += -Wno-unused-value -EXTRA_CFLAGS += -Wno-unused-label -EXTRA_CFLAGS += -Wno-unused-parameter -EXTRA_CFLAGS += -Wno-unused-function -EXTRA_CFLAGS += -Wno-unused -EXTRA_CFLAGS += -DCONFIG_CONCURRENT_MODE +ccflags-y += $(USER_EXTRA_CFLAGS) +ccflags-y += -O1 +#ccflags-y += -O3 +#ccflags-y += -Wall +#ccflags-y += -Wextra +#ccflags-y += -Werror +#ccflags-y += -pedantic +#ccflags-y += -Wshadow -Wpointer-arith -Wcast-qual -Wstrict-prototypes -Wmissing-prototypes + +ccflags-y += -Wno-unused-variable +ccflags-y += -Wno-unused-value +ccflags-y += -Wno-unused-label +ccflags-y += -Wno-unused-parameter +ccflags-y += -Wno-unused-function +ccflags-y += -Wno-unused +ccflags-y += -DCONFIG_CONCURRENT_MODE ccflags-y += -D__CHECK_ENDIAN__ -#EXTRA_CFLAGS += -Wno-uninitialized +#ccflags-y += -Wno-uninitialized -EXTRA_CFLAGS += -g -I$(src)/include +ccflags-y += -g -I$(src)/include #EXTRA_LDFLAGS += --strip-debug @@ -104,11 +104,11 @@ _OUTSRC_FILES := hal/odm_debug.o \ hal/odm_CfoTracking.o\ hal/odm_NoiseMonitor.o -EXTRA_CFLAGS += -I$(src)/platform +ccflags-y += -I$(src)/platform _PLATFORM_FILES := platform/platform_ops.o ifeq ($(CONFIG_BT_COEXIST), y) -EXTRA_CFLAGS += -I$(src)/hal +ccflags-y += -I$(src)/hal _OUTSRC_FILES += hal/HalBtc8723b1Ant.o \ hal/HalBtc8723b2Ant.o endif @@ -158,106 +158,106 @@ endif ifeq ($(CONFIG_USB_AUTOSUSPEND), y) -EXTRA_CFLAGS += -DCONFIG_USB_AUTOSUSPEND +ccflags-y += -DCONFIG_USB_AUTOSUSPEND endif ifeq ($(CONFIG_POWER_SAVING), y) -EXTRA_CFLAGS += -DCONFIG_POWER_SAVING +ccflags-y += -DCONFIG_POWER_SAVING endif ifeq ($(CONFIG_HW_PWRP_DETECTION), y) -EXTRA_CFLAGS += -DCONFIG_HW_PWRP_DETECTION +ccflags-y += -DCONFIG_HW_PWRP_DETECTION endif ifeq ($(CONFIG_WIFI_TEST), y) -EXTRA_CFLAGS += -DCONFIG_WIFI_TEST +ccflags-y += -DCONFIG_WIFI_TEST endif ifeq ($(CONFIG_BT_COEXIST), y) -EXTRA_CFLAGS += -DCONFIG_BT_COEXIST +ccflags-y += -DCONFIG_BT_COEXIST endif ifeq ($(CONFIG_INTEL_WIDI), y) -EXTRA_CFLAGS += -DCONFIG_INTEL_WIDI +ccflags-y += -DCONFIG_INTEL_WIDI endif ifeq ($(CONFIG_WAPI_SUPPORT), y) -EXTRA_CFLAGS += -DCONFIG_WAPI_SUPPORT +ccflags-y += -DCONFIG_WAPI_SUPPORT endif ifeq ($(CONFIG_EFUSE_CONFIG_FILE), y) -EXTRA_CFLAGS += -DCONFIG_EFUSE_CONFIG_FILE +ccflags-y += -DCONFIG_EFUSE_CONFIG_FILE ifeq ($(MODULE_NAME), 8189es) -EXTRA_CFLAGS += -DEFUSE_MAP_PATH=\"/system/etc/wifi/wifi_efuse_8189e.map\" +ccflags-y += -DEFUSE_MAP_PATH=\"/system/etc/wifi/wifi_efuse_8189e.map\" else -EXTRA_CFLAGS += -DEFUSE_MAP_PATH=\"/system/etc/wifi/wifi_efuse_$(MODULE_NAME).map\" +ccflags-y += -DEFUSE_MAP_PATH=\"/system/etc/wifi/wifi_efuse_$(MODULE_NAME).map\" endif -EXTRA_CFLAGS += -DWIFIMAC_PATH=\"/data/wifimac.txt\" +ccflags-y += -DWIFIMAC_PATH=\"/data/wifimac.txt\" endif ifeq ($(CONFIG_EXT_CLK), y) -EXTRA_CFLAGS += -DCONFIG_EXT_CLK +ccflags-y += -DCONFIG_EXT_CLK endif ifeq ($(CONFIG_TRAFFIC_PROTECT), y) -EXTRA_CFLAGS += -DCONFIG_TRAFFIC_PROTECT +ccflags-y += -DCONFIG_TRAFFIC_PROTECT endif ifeq ($(CONFIG_LOAD_PHY_PARA_FROM_FILE), y) -EXTRA_CFLAGS += -DCONFIG_LOAD_PHY_PARA_FROM_FILE +ccflags-y += -DCONFIG_LOAD_PHY_PARA_FROM_FILE endif ifeq ($(CONFIG_CALIBRATE_TX_POWER_BY_REGULATORY), y) -EXTRA_CFLAGS += -DCONFIG_CALIBRATE_TX_POWER_BY_REGULATORY +ccflags-y += -DCONFIG_CALIBRATE_TX_POWER_BY_REGULATORY endif ifeq ($(CONFIG_CALIBRATE_TX_POWER_TO_MAX), y) -EXTRA_CFLAGS += -DCONFIG_CALIBRATE_TX_POWER_TO_MAX +ccflags-y += -DCONFIG_CALIBRATE_TX_POWER_TO_MAX endif ifeq ($(CONFIG_RTW_ADAPTIVITY_EN), disable) -EXTRA_CFLAGS += -DCONFIG_RTW_ADAPTIVITY_EN=0 +ccflags-y += -DCONFIG_RTW_ADAPTIVITY_EN=0 else ifeq ($(CONFIG_RTW_ADAPTIVITY_EN), enable) -EXTRA_CFLAGS += -DCONFIG_RTW_ADAPTIVITY_EN=1 +ccflags-y += -DCONFIG_RTW_ADAPTIVITY_EN=1 else ifeq ($(CONFIG_RTW_ADAPTIVITY_EN), auto) -EXTRA_CFLAGS += -DCONFIG_RTW_ADAPTIVITY_EN=2 +ccflags-y += -DCONFIG_RTW_ADAPTIVITY_EN=2 endif ifeq ($(CONFIG_RTW_ADAPTIVITY_MODE), normal) -EXTRA_CFLAGS += -DCONFIG_RTW_ADAPTIVITY_MODE=0 +ccflags-y += -DCONFIG_RTW_ADAPTIVITY_MODE=0 else ifeq ($(CONFIG_RTW_ADAPTIVITY_MODE), carrier_sense) -EXTRA_CFLAGS += -DCONFIG_RTW_ADAPTIVITY_MODE=1 +ccflags-y += -DCONFIG_RTW_ADAPTIVITY_MODE=1 endif ifeq ($(CONFIG_SKIP_SIGNAL_SCALE_MAPPING), y) -EXTRA_CFLAGS += -DCONFIG_SKIP_SIGNAL_SCALE_MAPPING +ccflags-y += -DCONFIG_SKIP_SIGNAL_SCALE_MAPPING endif ifeq ($(CONFIG_WOWLAN), y) -EXTRA_CFLAGS += -DCONFIG_WOWLAN +ccflags-y += -DCONFIG_WOWLAN endif ifeq ($(CONFIG_AP_WOWLAN), y) -EXTRA_CFLAGS += -DCONFIG_AP_WOWLAN +ccflags-y += -DCONFIG_AP_WOWLAN endif ifeq ($(CONFIG_PNO_SUPPORT), y) -EXTRA_CFLAGS += -DCONFIG_PNO_SUPPORT +ccflags-y += -DCONFIG_PNO_SUPPORT ifeq ($(CONFIG_PNO_SET_DEBUG), y) -EXTRA_CFLAGS += -DCONFIG_PNO_SET_DEBUG +ccflags-y += -DCONFIG_PNO_SET_DEBUG endif endif ifeq ($(CONFIG_GPIO_WAKEUP), y) -EXTRA_CFLAGS += -DCONFIG_GPIO_WAKEUP +ccflags-y += -DCONFIG_GPIO_WAKEUP endif ifeq ($(CONFIG_PLATFORM_I386_PC), y) -EXTRA_CFLAGS += -DCONFIG_IOCTL_CFG80211 -EXTRA_CFLAGS += -DRTW_USE_CFG80211_STA_EVENT # only enable when kernel >= 3.2 -EXTRA_CFLAGS += -DCONFIG_P2P_IPS +ccflags-y += -DCONFIG_IOCTL_CFG80211 +ccflags-y += -DRTW_USE_CFG80211_STA_EVENT # only enable when kernel >= 3.2 +ccflags-y += -DCONFIG_P2P_IPS SUBARCH := $(shell uname -m | sed -e s/i.86/i386/ | sed -e s/ppc/powerpc/ | sed -e s/armv.l/arm/) ARCH ?= $(SUBARCH) CROSS_COMPILE ?= @@ -267,10 +267,10 @@ INSTALL_PREFIX := endif ifeq ($(CONFIG_PLATFORM_FS_MX61), y) -EXTRA_CFLAGS += -DCONFIG_IOCTL_CFG80211 -EXTRA_CFLAGS += -DRTW_USE_CFG80211_STA_EVENT # only enable when kernel >= 3.2 -EXTRA_CFLAGS += -DCONFIG_P2P_IPS -EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN -Wno-error=date-time +ccflags-y += -DCONFIG_IOCTL_CFG80211 +ccflags-y += -DRTW_USE_CFG80211_STA_EVENT # only enable when kernel >= 3.2 +ccflags-y += -DCONFIG_P2P_IPS +ccflags-y += -DCONFIG_LITTLE_ENDIAN -Wno-error=date-time ARCH := arm KSRC ?= $(KERNEL_SRC) LICENSE = "GPLv2" diff --git a/include/osdep_service.h b/include/osdep_service.h index 1fba3f6..1272dcf 100644 --- a/include/osdep_service.h +++ b/include/osdep_service.h @@ -258,7 +258,11 @@ void rtw_init_timer(_timer *ptimer, void *padapter, void *pfunc); __inline static unsigned char _cancel_timer_ex(_timer *ptimer) { - return del_timer_sync(ptimer); +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(6, 15, 0)) + return timer_delete_sync(ptimer) == 1 ? 1 : 0; +#else + return del_timer_sync(ptimer) == 1 ? 1 : 0; +#endif } static __inline void thread_enter(char *name) diff --git a/include/osdep_service_linux.h b/include/osdep_service_linux.h index 911c448..902ddfc 100644 --- a/include/osdep_service_linux.h +++ b/include/osdep_service_linux.h @@ -259,8 +259,11 @@ __inline static void _set_timer(_timer *ptimer,u32 delay_time) __inline static void _cancel_timer(_timer *ptimer,u8 *bcancelled) { - del_timer_sync(ptimer); - *bcancelled= _TRUE;//TRUE ==1; FALSE==0 +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(6, 15, 0)) + *bcancelled = timer_delete_sync(ptimer) == 1 ? 1 : 0; +#else + *bcancelled = del_timer_sync(ptimer) == 1 ? 1 : 0; +#endif } From 2b6f71e89a5be5d7c0008d9f097a634288aa6000 Mon Sep 17 00:00:00 2001 From: Denis Klester Date: Sun, 3 Aug 2025 18:59:32 +0600 Subject: [PATCH 3/6] fix build for 6.16 --- core/rtw_p2p.c | 42 +++++++++++++++++++++++--------------- core/rtw_pwrctrl.c | 4 +++- core/rtw_recv.c | 6 ++++-- hal/hal_usb_led.c | 6 ++++-- os_dep/mlme_linux.c | 49 +++++++++++++++++++++++++++++---------------- os_dep/recv_linux.c | 6 ++++-- 6 files changed, 73 insertions(+), 40 deletions(-) diff --git a/core/rtw_p2p.c b/core/rtw_p2p.c index 3f6ab5d..86af790 100644 --- a/core/rtw_p2p.c +++ b/core/rtw_p2p.c @@ -3606,8 +3606,10 @@ static void ro_ch_timer_process (struct timer_list *t) { #if LINUX_VERSION_CODE < KERNEL_VERSION(4, 15, 0) _adapter *adapter = (_adapter *)FunctionContext; -#else +#elif LINUX_VERSION_CODE < KERNEL_VERSION(6, 16, 0) _adapter *adapter = from_timer(adapter, t, cfg80211_wdinfo.remain_on_ch_timer); +#else + _adapter *adapter = timer_container_of(adapter, t, cfg80211_wdinfo.remain_on_ch_timer); #endif struct rtw_wdev_priv *pwdev_priv = adapter_wdev_data(adapter); @@ -4710,10 +4712,12 @@ static void reset_ch_sitesurvey_timer_process(struct timer_list *t) static void reset_ch_sitesurvey_timer_process (void *FunctionContext) #endif { -#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 15, 0) +#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 15, 0) + struct adapter *adapter = (struct adapter *)FunctionContext; +#elif LINUX_VERSION_CODE < KERNEL_VERSION(6, 16, 0) struct adapter *adapter = from_timer(adapter, t, wdinfo.reset_ch_sitesurvey); #else - struct adapter *adapter = (struct adapter *)FunctionContext; + struct adapter *adapter = timer_container_of(adapter, t, wdinfo.reset_ch_sitesurvey); #endif struct wifidirect_info *pwdinfo = &adapter->wdinfo; @@ -4737,10 +4741,12 @@ static void reset_ch_sitesurvey_timer_process2(struct timer_list *t) static void reset_ch_sitesurvey_timer_process2 (void *FunctionContext) #endif { -#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 15, 0) +#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 15, 0) + struct adapter *adapter = (struct adapter *)FunctionContext; +#elif LINUX_VERSION_CODE < KERNEL_VERSION(6, 16, 0) struct adapter *adapter = from_timer(adapter, t, wdinfo.reset_ch_sitesurvey2); #else - struct adapter *adapter = (struct adapter *)FunctionContext; + struct adapter *adapter = timer_container_of(adapter, t, wdinfo.reset_ch_sitesurvey2); #endif struct wifidirect_info *pwdinfo = &adapter->wdinfo; @@ -4764,10 +4770,12 @@ static void restore_p2p_state_timer_process(struct timer_list *t) static void restore_p2p_state_timer_process (void *FunctionContext) #endif { -#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 15, 0) +#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 15, 0) + struct adapter *adapter = (struct adapter *)FunctionContext; +#elif LINUX_VERSION_CODE < KERNEL_VERSION(6, 16, 0) struct adapter *adapter = from_timer(adapter, t, wdinfo.restore_p2p_state_timer); #else - struct adapter *adapter = (struct adapter *)FunctionContext; + struct adapter *adapter = timer_container_of(adapter, t, wdinfo.restore_p2p_state_timer); #endif struct wifidirect_info *pwdinfo = &adapter->wdinfo; @@ -4783,10 +4791,12 @@ static void pre_tx_scan_timer_process(struct timer_list *t) static void pre_tx_scan_timer_process(void *FunctionContext) #endif { -#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 15, 0) +#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 15, 0) + struct adapter *padapter = (struct adapter *)FunctionContext; +#elif LINUX_VERSION_CODE < KERNEL_VERSION(6, 16, 0) struct adapter *padapter = from_timer(padapter, t, wdinfo.pre_tx_scan_timer); #else - struct adapter *padapter = (struct adapter *)FunctionContext; + struct adapter *padapter = timer_container_of(padapter, t, wdinfo.pre_tx_scan_timer); #endif struct wifidirect_info *pwdinfo = &padapter->wdinfo; _irqL irqL; @@ -4828,8 +4838,10 @@ static void find_phase_timer_process(struct timer_list *t) { #if LINUX_VERSION_CODE < KERNEL_VERSION(4, 15, 0) _adapter *adapter = (_adapter *)FunctionContext; -#else +#elif LINUX_VERSION_CODE < KERNEL_VERSION(6, 16, 0) _adapter *adapter = from_timer(adapter, t, wdinfo.find_phase_timer); +#else + _adapter *adapter = timer_container_of(adapter, t, wdinfo.find_phase_timer); #endif struct wifidirect_info *pwdinfo = &adapter->wdinfo; @@ -4848,14 +4860,12 @@ void ap_p2p_switch_timer_process(struct timer_list *t) void ap_p2p_switch_timer_process (void *FunctionContext) #endif { -#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 15, 0) +#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 15, 0) + _adapter *adapter = (_adapter *)FunctionContext; +#elif LINUX_VERSION_CODE < KERNEL_VERSION(6, 16, 0) _adapter *adapter = from_timer(adapter, t, wdinfo.ap_p2p_switch_timer); #else - _adapter *adapter = (_adapter *)FunctionContext; -#endif - struct wifidirect_info *pwdinfo = &adapter->wdinfo; -#ifdef CONFIG_IOCTL_CFG80211 - struct rtw_wdev_priv *pwdev_priv = adapter_wdev_data(adapter); + _adapter *adapter = timer_container_of(adapter, t, wdinfo.ap_p2p_switch_timer); #endif if(rtw_p2p_chk_state(pwdinfo, P2P_STATE_NONE)) diff --git a/core/rtw_pwrctrl.c b/core/rtw_pwrctrl.c index c7ffe2f..1835495 100644 --- a/core/rtw_pwrctrl.c +++ b/core/rtw_pwrctrl.c @@ -425,8 +425,10 @@ void pwr_state_check_handler(struct timer_list *t) { #if LINUX_VERSION_CODE < KERNEL_VERSION(4, 15, 0) _adapter *padapter = (_adapter *)FunctionContext; -#else +#elif LINUX_VERSION_CODE < KERNEL_VERSION(6, 16, 0) _adapter *padapter = from_timer(padapter, t, pwr_state_check_timer); +#else + _adapter *padapter = timer_container_of(padapter, t, pwr_state_check_timer); #endif rtw_ps_cmd(padapter); diff --git a/core/rtw_recv.c b/core/rtw_recv.c index ce8f663..6c69b43 100644 --- a/core/rtw_recv.c +++ b/core/rtw_recv.c @@ -3638,10 +3638,12 @@ void rtw_signal_stat_timer_hdl(struct timer_list *t) void rtw_signal_stat_timer_hdl(RTW_TIMER_HDL_ARGS) #endif { -#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 15, 0) +#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 15, 0) + _adapter *adapter = (_adapter *)FunctionContext; +#elif LINUX_VERSION_CODE < KERNEL_VERSION(6, 16, 0) _adapter *adapter = from_timer(adapter, t, recvpriv.signal_stat_timer); #else - _adapter *adapter = (_adapter *)FunctionContext; + _adapter *adapter = timer_container_of(adapter, t, recvpriv.signal_stat_timer); #endif struct recv_priv *recvpriv = &adapter->recvpriv; diff --git a/hal/hal_usb_led.c b/hal/hal_usb_led.c index 81fdcf0..eec647c 100644 --- a/hal/hal_usb_led.c +++ b/hal/hal_usb_led.c @@ -2345,10 +2345,12 @@ void BlinkTimerCallback(struct timer_list *t) void BlinkTimerCallback(void *data) #endif { -#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 15, 0) +#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 15, 0) + PLED_USB pLed = (PLED_USB)data; +#elif LINUX_VERSION_CODE < KERNEL_VERSION(6, 16, 0) PLED_USB pLed = from_timer(pLed, t, BlinkTimer); #else - PLED_USB pLed = (PLED_USB)data; + PLED_USB pLed = timer_container_of(pLed, t, BlinkTimer); #endif _adapter *padapter = pLed->padapter; diff --git a/os_dep/mlme_linux.c b/os_dep/mlme_linux.c index 902a1a0..dfe724d 100644 --- a/os_dep/mlme_linux.c +++ b/os_dep/mlme_linux.c @@ -80,10 +80,12 @@ void rtw_join_timeout_handler(struct timer_list *t) void rtw_join_timeout_handler (void *FunctionContext) #endif { -#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 15, 0) +#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 15, 0) + _adapter *adapter = (_adapter *)FunctionContext; +#elif LINUX_VERSION_CODE < KERNEL_VERSION(6, 16, 0) _adapter *adapter = from_timer(adapter, t, mlmepriv.assoc_timer); #else - _adapter *adapter = (_adapter *)FunctionContext; + _adapter *adapter = timer_container_of(adapter, t, mlmepriv.assoc_timer); #endif _rtw_join_timeout_handler(adapter); } @@ -95,10 +97,12 @@ void _rtw_scan_timeout_handler(struct timer_list *t) void _rtw_scan_timeout_handler(void *FunctionContext) #endif { -#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 15, 0) +#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 15, 0) + _adapter *adapter = (_adapter *)FunctionContext; +#elif LINUX_VERSION_CODE < KERNEL_VERSION(6, 16, 0) _adapter *adapter = from_timer(adapter, t, mlmepriv.scan_to_timer); #else - _adapter *adapter = (_adapter *)FunctionContext; + _adapter *adapter = timer_container_of(adapter, t, mlmepriv.scan_to_timer); #endif rtw_scan_timeout_handler(adapter); } @@ -110,10 +114,12 @@ static void _dynamic_check_timer_handlder(struct timer_list *t) static void _dynamic_check_timer_handlder (void *FunctionContext) #endif { -#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 15, 0) +#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 15, 0) + _adapter *adapter = (_adapter *)FunctionContext; +#elif LINUX_VERSION_CODE < KERNEL_VERSION(6, 16, 0) _adapter *adapter = from_timer(adapter, t, mlmepriv.dynamic_chk_timer); #else - _adapter *adapter = (_adapter *)FunctionContext; + _adapter *adapter = timer_container_of(adapter, t, mlmepriv.dynamic_chk_timer); #endif #if (MP_DRIVER == 1) @@ -142,10 +148,12 @@ static void _rtw_set_scan_deny_timer_hdl(struct timer_list *t) static void _rtw_set_scan_deny_timer_hdl(void *FunctionContext) #endif { -#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 15, 0) +#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 15, 0) + _adapter *adapter = (_adapter *)FunctionContext; +#elif LINUX_VERSION_CODE < KERNEL_VERSION(6, 16, 0) _adapter *adapter = from_timer(adapter, t, mlmepriv.set_scan_deny_timer); #else - _adapter *adapter = (_adapter *)FunctionContext; + _adapter *adapter = timer_container_of(adapter, t, mlmepriv.set_scan_deny_timer); #endif rtw_set_scan_deny_timer_hdl(adapter); } @@ -363,12 +371,13 @@ static void _survey_timer_hdl(struct timer_list *t) static void _survey_timer_hdl (void *FunctionContext) #endif { -#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 15, 0) +#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 15, 0) + _adapter *padapter = (_adapter *)FunctionContext; +#elif LINUX_VERSION_CODE < KERNEL_VERSION(6, 16, 0) _adapter *padapter = from_timer(padapter, t, mlmeextpriv.survey_timer); #else - _adapter *padapter = (_adapter *)FunctionContext; + _adapter *padapter = timer_container_of(padapter, t, mlmeextpriv.survey_timer); #endif - survey_timer_hdl(padapter); } @@ -378,10 +387,12 @@ static void _link_timer_hdl(struct timer_list *t) static void _link_timer_hdl (void *FunctionContext) #endif { -#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 15, 0) +#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 15, 0) + _adapter *padapter = (_adapter *)FunctionContext; +#elif LINUX_VERSION_CODE < KERNEL_VERSION(6, 16, 0) _adapter *padapter = from_timer(padapter, t, mlmeextpriv.link_timer); #else - _adapter *padapter = (_adapter *)FunctionContext; + _adapter *padapter = timer_container_of(padapter, t, mlmeextpriv.link_timer); #endif link_timer_hdl(padapter); } @@ -392,10 +403,12 @@ static void _addba_timer_hdl(struct timer_list *t) static void _addba_timer_hdl(void *FunctionContext) #endif { -#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 15, 0) +#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 15, 0) + struct sta_info *psta = (struct sta_info *)FunctionContext; +#elif LINUX_VERSION_CODE < KERNEL_VERSION(6, 16, 0) struct sta_info *psta = from_timer(psta, t, addba_retry_timer); #else - struct sta_info *psta = (struct sta_info *)FunctionContext; + struct sta_info *psta = timer_container_of(psta, t, addba_retry_timer); #endif addba_timer_hdl(psta); } @@ -407,10 +420,12 @@ void _sa_query_timer_hdl(struct timer_list *t) void _sa_query_timer_hdl (void *FunctionContext) #endif { -#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 15, 0) +#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 15, 0) + _adapter *padapter = (_adapter *)FunctionContext; +#elif LINUX_VERSION_CODE < KERNEL_VERSION(6, 16, 0) _adapter *padapter = from_timer(padapter, t, mlmeextpriv.sa_query_timer); #else - _adapter *padapter = (_adapter *)FunctionContext; + _adapter *padapter = timer_container_of(padapter, t, mlmeextpriv.sa_query_timer); #endif sa_query_timer_hdl(padapter); } diff --git a/os_dep/recv_linux.c b/os_dep/recv_linux.c index e8ea7ba..5f0f1c7 100644 --- a/os_dep/recv_linux.c +++ b/os_dep/recv_linux.c @@ -607,10 +607,12 @@ static void _rtw_reordering_ctrl_timeout_handler(struct timer_list *t) static void _rtw_reordering_ctrl_timeout_handler (void *FunctionContext) #endif { -#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 15, 0) +#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 15, 0) + struct recv_reorder_ctrl *preorder_ctrl = (struct recv_reorder_ctrl *)FunctionContext; +#elif LINUX_VERSION_CODE < KERNEL_VERSION(6, 16, 0) struct recv_reorder_ctrl *preorder_ctrl = from_timer(preorder_ctrl, t, reordering_ctrl_timer); #else - struct recv_reorder_ctrl *preorder_ctrl = (struct recv_reorder_ctrl *)FunctionContext; + struct recv_reorder_ctrl *preorder_ctrl = timer_container_of(preorder_ctrl, t, reordering_ctrl_timer); #endif rtw_reordering_ctrl_timeout_handler(preorder_ctrl); } From 5938823ddb3280cdb4372ab80c2131c1b0e27dcb Mon Sep 17 00:00:00 2001 From: Denis Klester Date: Mon, 11 Aug 2025 14:09:18 +0600 Subject: [PATCH 4/6] fix build concurrent mode --- core/rtw_p2p.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/core/rtw_p2p.c b/core/rtw_p2p.c index 86af790..ceb0bec 100644 --- a/core/rtw_p2p.c +++ b/core/rtw_p2p.c @@ -4867,6 +4867,10 @@ void ap_p2p_switch_timer_process (void *FunctionContext) #else _adapter *adapter = timer_container_of(adapter, t, wdinfo.ap_p2p_switch_timer); #endif + struct wifidirect_info *pwdinfo = &adapter->wdinfo; +#ifdef CONFIG_IOCTL_CFG80211 + struct rtw_wdev_priv *pwdev_priv = adapter_wdev_data(adapter); +#endif if(rtw_p2p_chk_state(pwdinfo, P2P_STATE_NONE)) return; From b1f5c4f535ee785cbfd11df3082135ea20bf281a Mon Sep 17 00:00:00 2001 From: Denis Klester Date: Tue, 12 Aug 2025 01:54:53 +0600 Subject: [PATCH 5/6] cleanup warnings --- core/rtw_ieee80211.c | 5 - core/rtw_xmit.c | 2 +- hal/HalPhyRf.c | 6 +- hal/HalPhyRf_8723B.c | 9 +- hal/odm.c | 12 +- hal/odm.h | 27 ++- include/hal_data.h | 1 - include/osdep_intf.h | 4 + include/rtw_ap.h | 2 +- include/rtw_cmd.h | 3 + include/rtw_p2p.h | 8 + include/rtw_xmit.h | 1 + include/sta_info.h | 5 + os_dep/ioctl_linux.c | 536 ------------------------------------------- os_dep/recv_linux.c | 5 +- 15 files changed, 66 insertions(+), 560 deletions(-) diff --git a/core/rtw_ieee80211.c b/core/rtw_ieee80211.c index 5c97492..59a3147 100644 --- a/core/rtw_ieee80211.c +++ b/core/rtw_ieee80211.c @@ -1308,11 +1308,6 @@ static u8 key_char2num(u8 ch) return 0xff; } -u8 str_2char2num(u8 hch, u8 lch) -{ - return ((key_char2num(hch) * 10 ) + key_char2num(lch)); -} - u8 key_2char2num(u8 hch, u8 lch) { return ((key_char2num(hch) << 4) | key_char2num(lch)); diff --git a/core/rtw_xmit.c b/core/rtw_xmit.c index 5e6d02b..1aadace 100644 --- a/core/rtw_xmit.c +++ b/core/rtw_xmit.c @@ -948,7 +948,7 @@ static s32 update_attrib(_adapter *padapter, _pkt *pkt, struct pkt_attrib *pattr DBG_COUNTER(padapter->tx_logs.core_tx_upd_attrib_ap); } else - DBG_COUNTER(padapter->tx_logs.core_tx_upd_attrib_unknown); + { DBG_COUNTER(padapter->tx_logs.core_tx_upd_attrib_unknown); } #ifdef CONFIG_TDLS rtw_check_tdls_established(padapter, pattrib); diff --git a/hal/HalPhyRf.c b/hal/HalPhyRf.c index dafc01b..7fdc9ff 100644 --- a/hal/HalPhyRf.c +++ b/hal/HalPhyRf.c @@ -413,7 +413,7 @@ ODM_TXPowerTrackingCallback_ThermalMeter(IN PADAPTER Adapter) pHalData->EEPROMThermalMeter, pDM_Odm->RFCalibrateInfo.ThermalValue)); - if (c.RfPathCount > 1) + if (c.RfPathCount > 1) { ODM_RT_TRACE(pDM_Odm, ODM_COMP_TX_PWR_TRACK, ODM_DBG_LOUD, ("Temperature Increasing(B): delta_pi: %d , delta_t: %d, Now_t: %d, EFUSE_t: %d, Last_t: %d\n", @@ -421,6 +421,7 @@ ODM_TXPowerTrackingCallback_ThermalMeter(IN PADAPTER Adapter) delta, ThermalValue, pHalData->EEPROMThermalMeter, pDM_Odm->RFCalibrateInfo.ThermalValue)); + } } else if (ThermalValue < pDM_Odm->RFCalibrateInfo.ThermalValue) { // Low temperature @@ -432,7 +433,7 @@ ODM_TXPowerTrackingCallback_ThermalMeter(IN PADAPTER Adapter) pHalData->EEPROMThermalMeter, pDM_Odm->RFCalibrateInfo.ThermalValue)); - if (c.RfPathCount > 1) + if (c.RfPathCount > 1) { ODM_RT_TRACE(pDM_Odm,ODM_COMP_TX_PWR_TRACK, ODM_DBG_LOUD, ("Temperature Decreasing(B): delta_pi: %d , delta_t: %d, Now_t: %d, EFUSE_t: %d, Last_t: %d\n", @@ -440,6 +441,7 @@ ODM_TXPowerTrackingCallback_ThermalMeter(IN PADAPTER Adapter) delta, ThermalValue, pHalData->EEPROMThermalMeter, pDM_Odm->RFCalibrateInfo.ThermalValue)); + } } if (ThermalValue > pHalData->EEPROMThermalMeter) { ODM_RT_TRACE(pDM_Odm,ODM_COMP_TX_PWR_TRACK, diff --git a/hal/HalPhyRf_8723B.c b/hal/HalPhyRf_8723B.c index c6db3b5..6b8136f 100644 --- a/hal/HalPhyRf_8723B.c +++ b/hal/HalPhyRf_8723B.c @@ -855,11 +855,10 @@ phy_PathA_RxIQK8723B(IN PADAPTER pAdapter, (((regEA4 & 0x03FF0000)>>16) > 0xf0) && (tmp <0xf)) result |= 0x02; - else //if Tx not OK, ignore Rx + else { //if Tx not OK, ignore Rx ODM_RT_TRACE(pDM_Odm,ODM_COMP_CALIBRATION, ODM_DBG_LOUD, ("Path A Rx IQK fail!!\n")); - - + } return result; } @@ -1189,10 +1188,10 @@ phy_PathB_RxIQK8723B(IN PADAPTER pAdapter, IN BOOLEAN configPathB) (((regEA4 & 0x03FF0000)>>16) >0xf0) && (tmp <0xf)) result |= 0x02; - else + else { ODM_RT_TRACE(pDM_Odm,ODM_COMP_CALIBRATION, ODM_DBG_LOUD, ("Path B Rx IQK fail!!\n")); - + } return result; } diff --git a/hal/odm.c b/hal/odm.c index 8bbc515..8820ffa 100644 --- a/hal/odm.c +++ b/hal/odm.c @@ -1058,21 +1058,21 @@ odm_CmnInfoHook_Debug( if(pDM_Odm->SupportICType==ODM_RTL8192D) { if(pDM_Odm->pBandType) - ODM_RT_TRACE(pDM_Odm,ODM_COMP_COMMON, ODM_DBG_LOUD, ("pBandType=%d\n",*(pDM_Odm->pBandType)) ); + { ODM_RT_TRACE(pDM_Odm,ODM_COMP_COMMON, ODM_DBG_LOUD, ("pBandType=%d\n",*(pDM_Odm->pBandType)) ); } if(pDM_Odm->pMacPhyMode) - ODM_RT_TRACE(pDM_Odm,ODM_COMP_COMMON, ODM_DBG_LOUD, ("pMacPhyMode=%d\n",*(pDM_Odm->pMacPhyMode)) ); + { ODM_RT_TRACE(pDM_Odm,ODM_COMP_COMMON, ODM_DBG_LOUD, ("pMacPhyMode=%d\n",*(pDM_Odm->pMacPhyMode)) ); } if(pDM_Odm->pBuddyAdapter) - ODM_RT_TRACE(pDM_Odm,ODM_COMP_COMMON, ODM_DBG_LOUD, ("pbGetValueFromOtherMac=%d\n",*(pDM_Odm->pbGetValueFromOtherMac)) ); + { ODM_RT_TRACE(pDM_Odm,ODM_COMP_COMMON, ODM_DBG_LOUD, ("pbGetValueFromOtherMac=%d\n",*(pDM_Odm->pbGetValueFromOtherMac)) ); } if(pDM_Odm->pBuddyAdapter) - ODM_RT_TRACE(pDM_Odm,ODM_COMP_COMMON, ODM_DBG_LOUD, ("pBuddyAdapter=%p\n",*(pDM_Odm->pBuddyAdapter)) ); + { ODM_RT_TRACE(pDM_Odm,ODM_COMP_COMMON, ODM_DBG_LOUD, ("pBuddyAdapter=%p\n",*(pDM_Odm->pBuddyAdapter)) ); } if(pDM_Odm->pbMasterOfDMSP) - ODM_RT_TRACE(pDM_Odm,ODM_COMP_COMMON, ODM_DBG_LOUD, ("pbMasterOfDMSP=%d\n",*(pDM_Odm->pbMasterOfDMSP)) ); + { ODM_RT_TRACE(pDM_Odm,ODM_COMP_COMMON, ODM_DBG_LOUD, ("pbMasterOfDMSP=%d\n",*(pDM_Odm->pbMasterOfDMSP)) ); } } ODM_RT_TRACE(pDM_Odm,ODM_COMP_COMMON, ODM_DBG_LOUD, ("pbScanInProcess=%d\n",*(pDM_Odm->pbScanInProcess)) ); ODM_RT_TRACE(pDM_Odm,ODM_COMP_COMMON, ODM_DBG_LOUD, ("pbPowerSaving=%d\n",*(pDM_Odm->pbPowerSaving)) ); if(pDM_Odm->SupportPlatform & (ODM_AP|ODM_ADSL)) - ODM_RT_TRACE(pDM_Odm,ODM_COMP_COMMON, ODM_DBG_LOUD, ("pOnePathCCA=%d\n",*(pDM_Odm->pOnePathCCA)) ); + { ODM_RT_TRACE(pDM_Odm,ODM_COMP_COMMON, ODM_DBG_LOUD, ("pOnePathCCA=%d\n",*(pDM_Odm->pOnePathCCA)) ); } } VOID diff --git a/hal/odm.h b/hal/odm.h index 1d65f77..45ea9d1 100644 --- a/hal/odm.h +++ b/hal/odm.h @@ -1048,7 +1048,7 @@ typedef struct DM_Out_Source_Dynamic_Mechanism_Structure //-----------HOOK BEFORE REG INIT-----------// // ODM Platform info AP/ADSL/CE/MP = 1/2/3/4 u1Byte SupportPlatform; - // ODM Support Ability DIG/RATR/TX_PWR_TRACK/ ¡K¡K = 1/2/3/¡K + // ODM Support Ability DIG/RATR/TX_PWR_TRACK/ �K�K = 1/2/3/�K u4Byte SupportAbility; // ODM PCIE/USB/SDIO = 1/2/3 u1Byte SupportInterface; @@ -1651,6 +1651,31 @@ ODM_UpdateInitRate( IN u1Byte Rate ); +VOID +odm_CmnInfoHook_Debug( + IN PDM_ODM_T pDM_Odm + ); + +VOID +odm_CmnInfoUpdate_Debug( + IN PDM_ODM_T pDM_Odm + ); + +VOID +odm_SwAntDivInit( + IN PDM_ODM_T pDM_Odm + ); + +VOID +odm_SwAntDivChkAntSwitchCallback( + void *FunctionContext + ); + +VOID +odm_InitHybridAntDiv( + IN PDM_ODM_T pDM_Odm + ); + //Remove ODM_DynamicARFBSelect() by RS_James void odm_dtc(PDM_ODM_T pDM_Odm); diff --git a/include/hal_data.h b/include/hal_data.h index 632307f..022acc3 100644 --- a/include/hal_data.h +++ b/include/hal_data.h @@ -592,7 +592,6 @@ u8 rtw_do_join(_adapter *padapter); int _netdev_open(struct net_device *pnetdev); int netdev_open (struct net_device *pnetdev); u8 key_2char2num(u8 hch, u8 lch); -u8 key_2char2num(u8 hch, u8 lch); void macstr2num(u8 *dst, u8 *src); #ifdef CONFIG_AUTOSUSPEND void autosuspend_enter(_adapter* padapter); diff --git a/include/osdep_intf.h b/include/osdep_intf.h index b501f47..81963ea 100644 --- a/include/osdep_intf.h +++ b/include/osdep_intf.h @@ -106,6 +106,8 @@ struct _io_ops; _adapter *rtw_drv_if2_init(_adapter *primary_padapter, void (*set_intf_ops)(_adapter *primary_padapter,struct _io_ops *pops)); void rtw_drv_if2_free(_adapter *if2); void rtw_drv_if2_stop(_adapter *if2); +int netdev_if2_open(struct net_device *pnetdev); +int _netdev_if2_open(struct net_device *pnetdev); #ifdef CONFIG_MULTI_VIR_IFACES struct dvobj_priv; _adapter *rtw_drv_add_vir_if(_adapter *primary_padapter, void (*set_intf_ops)(_adapter *primary_padapter,struct _io_ops *pops)); @@ -124,4 +126,6 @@ int rtw_gw_addr_query(_adapter *padapter); int rtw_suspend_common(_adapter *padapter); int rtw_resume_common(_adapter *padapter); +u8 rtw_init_default_value(_adapter *padapter); + #endif //_OSDEP_INTF_H_ diff --git a/include/rtw_ap.h b/include/rtw_ap.h index eebcc4a..bbc0e7f 100644 --- a/include/rtw_ap.h +++ b/include/rtw_ap.h @@ -43,7 +43,7 @@ void rtw_ap_restore_network(_adapter *padapter); void rtw_set_macaddr_acl(_adapter *padapter, int mode); int rtw_acl_add_sta(_adapter *padapter, u8 *addr); int rtw_acl_remove_sta(_adapter *padapter, u8 *addr); - +u8 chk_sta_is_alive(struct sta_info *psta); u8 rtw_ap_set_pairwise_key(_adapter *padapter, struct sta_info *psta); int rtw_ap_set_group_key(_adapter *padapter, u8 *key, u8 alg, int keyid); int rtw_ap_set_wep_key(_adapter *padapter, u8 *key, u8 keylen, int keyid, u8 set_tx); diff --git a/include/rtw_cmd.h b/include/rtw_cmd.h index 6a23159..bf2af83 100644 --- a/include/rtw_cmd.h +++ b/include/rtw_cmd.h @@ -1225,4 +1225,7 @@ static struct _cmd_callback rtw_cmd_callback[] = { }; #endif +int rtw_cmd_filter(struct cmd_priv *pcmdpriv, struct cmd_obj *cmd_obj); +void lps_ctrl_wk_hdl(_adapter *padapter, u8 lps_ctrl_type); + #endif // _CMD_H_ diff --git a/include/rtw_p2p.h b/include/rtw_p2p.h index 20e6fcb..4f5a9c3 100644 --- a/include/rtw_p2p.h +++ b/include/rtw_p2p.h @@ -153,4 +153,12 @@ void dbg_rtw_p2p_set_role(struct wifidirect_info *wdinfo, enum P2P_ROLE role, co ((wdinfo)->find_phase_state_exchange_cnt < P2P_FINDPHASE_EX_MAX && \ (wdinfo)->find_phase_state_exchange_cnt != P2P_FINDPHASE_EX_NONE) +#ifdef CONFIG_CONCURRENT_MODE +void p2p_concurrent_handler( _adapter* padapter ); +#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 15, 0) +void ap_p2p_switch_timer_process(struct timer_list *t); +#else +void ap_p2p_switch_timer_process (void *FunctionContext); +#endif +#endif #endif diff --git a/include/rtw_xmit.h b/include/rtw_xmit.h index 8a7cce3..e0a1688 100644 --- a/include/rtw_xmit.h +++ b/include/rtw_xmit.h @@ -587,6 +587,7 @@ int rtw_ack_tx_wait(struct xmit_priv *pxmitpriv, u32 timeout_ms); void rtw_ack_tx_done(struct xmit_priv *pxmitpriv, int status); #endif //CONFIG_XMIT_ACK +void rtw_mfree_xmit_priv_lock (struct xmit_priv *pxmitpriv); //include after declaring struct xmit_buf, in order to avoid warning #include diff --git a/include/sta_info.h b/include/sta_info.h index 14930be..325da88 100644 --- a/include/sta_info.h +++ b/include/sta_info.h @@ -480,4 +480,9 @@ extern u32 rtw_init_bcmc_stainfo(_adapter* padapter); extern struct sta_info* rtw_get_bcmc_stainfo(_adapter* padapter); extern u8 rtw_access_ctrl(_adapter *padapter, u8 *mac_addr); +void rtw_mfree_sta_priv_lock(struct sta_priv *pstapriv); +void rtw_mfree_all_stainfo(struct sta_priv *pstapriv); +void rtw_mfree_stainfo(struct sta_info *psta); +void _rtw_free_sta_xmit_priv_lock(struct sta_xmit_priv *psta_xmitpriv); + #endif //_STA_INFO_H_ diff --git a/os_dep/ioctl_linux.c b/os_dep/ioctl_linux.c index e32d789..0494d57 100644 --- a/os_dep/ioctl_linux.c +++ b/os_dep/ioctl_linux.c @@ -8683,541 +8683,6 @@ static int rtw_pm_set(struct net_device *dev, return ret; } -static int rtw_mp_efuse_get(struct net_device *dev, - struct iw_request_info *info, - union iwreq_data *wdata, char *extra) -{ - PADAPTER padapter = rtw_netdev_priv(dev); - EEPROM_EFUSE_PRIV *pEEPROM = GET_EEPROM_EFUSE_PRIV(padapter); - PHAL_DATA_TYPE pHalData = GET_HAL_DATA(padapter); - PEFUSE_HAL pEfuseHal; - struct iw_point *wrqu; - - u8 *PROMContent = pEEPROM->efuse_eeprom_data; - u8 ips_mode = IPS_NUM; // init invalid value - u8 lps_mode = PS_MODE_NUM; // init invalid value - struct pwrctrl_priv *pwrctrlpriv ; - u8 *data = NULL; - u8 *rawdata = NULL; - char *pch, *ptmp, *token, *tmp[3] = {NULL, NULL, NULL}; - u16 i=0, j=0, mapLen=0, addr=0, cnts=0; - u16 max_available_size=0, raw_cursize=0, raw_maxsize=0; - int err; - #ifdef CONFIG_IOL - u8 org_fw_iol = padapter->registrypriv.fw_iol;// 0:Disable, 1:enable, 2:by usb speed - #endif - - wrqu = (struct iw_point*)wdata; - pwrctrlpriv = adapter_to_pwrctl(padapter); - pEfuseHal = &pHalData->EfuseHal; - - err = 0; - data = rtw_zmalloc(EFUSE_BT_MAX_MAP_LEN); - if (data == NULL) - { - err = -ENOMEM; - goto exit; - } - rawdata = rtw_zmalloc(EFUSE_BT_MAX_MAP_LEN); - if (rawdata == NULL) - { - err = -ENOMEM; - goto exit; - } - - if (copy_from_user(extra, wrqu->pointer, wrqu->length)) - { - err = -EFAULT; - goto exit; - } - #ifdef CONFIG_LPS - lps_mode = pwrctrlpriv->power_mgnt;//keep org value - rtw_pm_set_lps(padapter,PS_MODE_ACTIVE); - #endif - - #ifdef CONFIG_IPS - ips_mode = pwrctrlpriv->ips_mode;//keep org value - rtw_pm_set_ips(padapter,IPS_NONE); - #endif - - pch = extra; - DBG_871X("%s: in=%s\n", __FUNCTION__, extra); - - i = 0; - //mac 16 "00e04c871200" rmap,00,2 - while ((token = strsep(&pch, ",")) != NULL) - { - if (i > 2) break; - tmp[i] = token; - i++; - } - #ifdef CONFIG_IOL - padapter->registrypriv.fw_iol = 0;// 0:Disable, 1:enable, 2:by usb speed - #endif - - if(strcmp(tmp[0], "status") == 0){ - sprintf(extra, "Load File efuse=%s,Load File MAC=%s",(pEEPROM->bloadfile_fail_flag? "FAIL" : "OK"),(pEEPROM->bloadmac_fail_flag? "FAIL" : "OK")); - goto exit; - } - else if (strcmp(tmp[0], "drvmap") == 0) - { - mapLen = EFUSE_MAP_SIZE; - - sprintf(extra, "\n"); - for (i = 0; i < EFUSE_MAP_SIZE; i += 16) - { -// DBG_871X("0x%02x\t", i); - sprintf(extra, "%s0x%02x\t", extra, i); - for (j=0; j<8; j++) { -// DBG_871X("%02X ", data[i+j]); - sprintf(extra, "%s%02X ", extra, PROMContent[i+j]); - } -// DBG_871X("\t"); - sprintf(extra, "%s\t", extra); - for (; j<16; j++) { -// DBG_871X("%02X ", data[i+j]); - sprintf(extra, "%s%02X ", extra, PROMContent[i+j]); - } -// DBG_871X("\n"); - sprintf(extra,"%s\n",extra); - } -// DBG_871X("\n"); - } - else if (strcmp(tmp[0], "realmap") == 0) - { - mapLen = EFUSE_MAP_SIZE; - if (rtw_efuse_map_read(padapter, EFUSE_WIFI , mapLen, pEfuseHal->fakeEfuseInitMap) == _FAIL) - { - DBG_871X("%s: read realmap Fail!!\n", __FUNCTION__); - err = -EFAULT; - goto exit; - } - -// DBG_871X("OFFSET\tVALUE(hex)\n"); - sprintf(extra, "\n"); - for (i = 0; i < EFUSE_MAP_SIZE; i += 16) - { -// DBG_871X("0x%02x\t", i); - sprintf(extra, "%s0x%02x\t", extra, i); - for (j=0; j<8; j++) { -// DBG_871X("%02X ", data[i+j]); - sprintf(extra, "%s%02X ", extra, pEfuseHal->fakeEfuseInitMap[i+j]); - } -// DBG_871X("\t"); - sprintf(extra, "%s\t", extra); - for (; j<16; j++) { -// DBG_871X("%02X ", data[i+j]); - sprintf(extra, "%s%02X ", extra, pEfuseHal->fakeEfuseInitMap[i+j]); - } -// DBG_871X("\n"); - sprintf(extra,"%s\n",extra); - } -// DBG_871X("\n"); - } - else if (strcmp(tmp[0], "rmap") == 0) - { - if ((tmp[1]==NULL) || (tmp[2]==NULL)) - { - DBG_871X("%s: rmap Fail!! Parameters error!\n", __FUNCTION__); - err = -EINVAL; - goto exit; - } - - // rmap addr cnts - addr = simple_strtoul(tmp[1], &ptmp, 16); - DBG_871X("%s: addr=%x\n", __FUNCTION__, addr); - - cnts = simple_strtoul(tmp[2], &ptmp, 10); - if (cnts == 0) - { - DBG_871X("%s: rmap Fail!! cnts error!\n", __FUNCTION__); - err = -EINVAL; - goto exit; - } - DBG_871X("%s: cnts=%d\n", __FUNCTION__, cnts); - - EFUSE_GetEfuseDefinition(padapter, EFUSE_WIFI, TYPE_EFUSE_MAP_LEN , (PVOID)&max_available_size, _FALSE); - if ((addr+ cnts) > max_available_size) - { - DBG_871X("%s: addr(0x%X)+cnts(%d) parameter error!\n", __FUNCTION__, addr, cnts); - err = -EINVAL; - goto exit; - } - - if (rtw_efuse_map_read(padapter, addr, cnts, data) == _FAIL) - { - DBG_871X("%s: rtw_efuse_map_read error!\n", __FUNCTION__); - err = -EFAULT; - goto exit; - } - -// DBG_871X("%s: data={", __FUNCTION__); - *extra = 0; - for (i=0; i max_available_size) { - DBG_871X("%s: addr(0x%02x)+cnts(%d) parameter error!\n", __FUNCTION__, addr, cnts); - err = -EFAULT; - goto exit; - } - - if (rtw_efuse_map_read(padapter, addr, cnts, data) == _FAIL) - { - DBG_871X("%s: rtw_efuse_map_read error!\n", __FUNCTION__); - err = -EFAULT; - goto exit; - } - -// DBG_871X("%s: MAC address={", __FUNCTION__); - *extra = 0; - for (i=0; i max_available_size) - { - DBG_871X("%s: addr(0x%02x)+cnts(%d) parameter error!\n", __FUNCTION__, addr, cnts); - err = -EFAULT; - goto exit; - } - if (rtw_efuse_map_read(padapter, addr, cnts, data) == _FAIL) - { - DBG_871X("%s: rtw_efuse_access error!!\n", __FUNCTION__); - err = -EFAULT; - goto exit; - } - -// DBG_871X("%s: {VID,PID}={", __FUNCTION__); - *extra = 0; - for (i=0; iBTEfuseInitMap) == _FAIL) - { - DBG_871X("%s: rtw_BT_efuse_map_read Fail!!\n", __FUNCTION__); - err = -EFAULT; - goto exit; - } - -// DBG_871X("OFFSET\tVALUE(hex)\n"); - sprintf(extra, "\n"); - for (i=0; i<512; i+=16) // set 512 because the iwpriv's extra size have limit 0x7FF - { -// DBG_871X("0x%03x\t", i); - sprintf(extra, "%s0x%03x\t", extra, i); - for (j=0; j<8; j++) { -// DBG_871X("%02X ", pEfuseHal->BTEfuseInitMap[i+j]); - sprintf(extra, "%s%02X ", extra, pEfuseHal->BTEfuseInitMap[i+j]); - } -// DBG_871X("\t"); - sprintf(extra,"%s\t",extra); - for (; j<16; j++) { -// DBG_871X("%02X ", pEfuseHal->BTEfuseInitMap[i+j]); - sprintf(extra, "%s%02X ", extra, pEfuseHal->BTEfuseInitMap[i+j]); - } -// DBG_871X("\n"); - sprintf(extra, "%s\n", extra); - } -// DBG_871X("\n"); - } - else if (strcmp(tmp[0],"btbmap") == 0) - { - BTEfuse_PowerSwitch(padapter,1,_TRUE); - - mapLen = EFUSE_BT_MAX_MAP_LEN; - if (rtw_BT_efuse_map_read(padapter, 0, mapLen, pEfuseHal->BTEfuseInitMap) == _FAIL) - { - DBG_871X("%s: rtw_BT_efuse_map_read Fail!!\n", __FUNCTION__); - err = -EFAULT; - goto exit; - } - -// DBG_871X("OFFSET\tVALUE(hex)\n"); - sprintf(extra, "\n"); - for (i=512; i<1024 ; i+=16) - { -// DBG_871X("0x%03x\t", i); - sprintf(extra, "%s0x%03x\t", extra, i); - for (j=0; j<8; j++) - { -// DBG_871X("%02X ", data[i+j]); - sprintf(extra, "%s%02X ", extra, pEfuseHal->BTEfuseInitMap[i+j]); - } -// DBG_871X("\t"); - sprintf(extra,"%s\t",extra); - for (; j<16; j++) { -// DBG_871X("%02X ", data[i+j]); - sprintf(extra, "%s%02X ", extra, pEfuseHal->BTEfuseInitMap[i+j]); - } -// DBG_871X("\n"); - sprintf(extra, "%s\n", extra); - } -// DBG_871X("\n"); - } - else if (strcmp(tmp[0],"btrmap") == 0) - { - if ((tmp[1]==NULL) || (tmp[2]==NULL)) - { - err = -EINVAL; - goto exit; - } - - BTEfuse_PowerSwitch(padapter,1,_TRUE); - - // rmap addr cnts - addr = simple_strtoul(tmp[1], &ptmp, 16); - DBG_871X("%s: addr=0x%X\n", __FUNCTION__, addr); - - cnts = simple_strtoul(tmp[2], &ptmp, 10); - if (cnts == 0) - { - DBG_871X("%s: btrmap Fail!! cnts error!\n", __FUNCTION__); - err = -EINVAL; - goto exit; - } - DBG_871X("%s: cnts=%d\n", __FUNCTION__, cnts); - - EFUSE_GetEfuseDefinition(padapter, EFUSE_BT, TYPE_AVAILABLE_EFUSE_BYTES_TOTAL, (PVOID)&max_available_size, _FALSE); - if ((addr + cnts) > max_available_size) - { - DBG_871X("%s: addr(0x%X)+cnts(%d) parameter error!\n", __FUNCTION__, addr, cnts); - err = -EFAULT; - goto exit; - } - - if (rtw_BT_efuse_map_read(padapter, addr, cnts, data) == _FAIL) - { - DBG_871X("%s: rtw_BT_efuse_map_read error!!\n", __FUNCTION__); - err = -EFAULT; - goto exit; - } - - *extra = 0; -// DBG_871X("%s: bt efuse data={", __FUNCTION__); - for (i=0; ifakeBTEfuseModifiedMap[i+j]); - sprintf(extra, "%s%02X ", extra, pEfuseHal->fakeBTEfuseModifiedMap[i+j]); - } -// DBG_871X("\t"); - sprintf(extra, "%s\t", extra); - for (; j<16; j++) { -// DBG_871X("%02X ", pEfuseHal->fakeBTEfuseModifiedMap[i+j]); - sprintf(extra, "%s%02X ", extra, pEfuseHal->fakeBTEfuseModifiedMap[i+j]); - } -// DBG_871X("\n"); - sprintf(extra, "%s\n", extra); - } -// DBG_871X("\n"); - } - else if (strcmp(tmp[0],"btbfake") == 0) - { -// DBG_871X("OFFSET\tVALUE(hex)\n"); - sprintf(extra, "\n"); - for (i=512; i<1024; i+=16) - { -// DBG_871X("0x%03x\t", i); - sprintf(extra, "%s0x%03x\t", extra, i); - for (j=0; j<8; j++) { -// DBG_871X("%02X ", pEfuseHal->fakeBTEfuseModifiedMap[i+j]); - sprintf(extra, "%s%02X ", extra, pEfuseHal->fakeBTEfuseModifiedMap[i+j]); - } -// DBG_871X("\t"); - sprintf(extra, "%s\t", extra); - for (; j<16; j++) { -// DBG_871X("%02X ", pEfuseHal->fakeBTEfuseModifiedMap[i+j]); - sprintf(extra, "%s%02X ", extra, pEfuseHal->fakeBTEfuseModifiedMap[i+j]); - } -// DBG_871X("\n"); - sprintf(extra, "%s\n", extra); - } -// DBG_871X("\n"); - } - else if (strcmp(tmp[0],"wlrfkmap")== 0) - { -// DBG_871X("OFFSET\tVALUE(hex)\n"); - sprintf(extra, "\n"); - for (i=0; ifakeEfuseModifiedMap[i+j]); - sprintf(extra, "%s%02X ", extra, pEfuseHal->fakeEfuseModifiedMap[i+j]); - } -// DBG_871X("\t"); - sprintf(extra, "%s\t", extra); - for (; j<16; j++) { -// DBG_871X("%02X ", pEfuseHal->fakeEfuseModifiedMap[i+j]); - sprintf(extra, "%s %02X", extra, pEfuseHal->fakeEfuseModifiedMap[i+j]); - } -// DBG_871X("\n"); - sprintf(extra, "%s\n", extra); - } -// DBG_871X("\n"); - - } - else if (strcmp(tmp[0],"wlrfkrmap")== 0) - { - if ((tmp[1]==NULL) || (tmp[2]==NULL)) { - DBG_871X("%s: rmap Fail!! Parameters error!\n", __FUNCTION__); - err = -EINVAL; - goto exit; - } - // rmap addr cnts - addr = simple_strtoul(tmp[1], &ptmp, 16); - DBG_871X("%s: addr=%x\n", __FUNCTION__, addr); - - cnts = simple_strtoul(tmp[2], &ptmp, 10); - if (cnts == 0) { - DBG_871X("%s: rmap Fail!! cnts error!\n", __FUNCTION__); - err = -EINVAL; - goto exit; - } - DBG_871X("%s: cnts=%d\n", __FUNCTION__, cnts); - - // DBG_871X("%s: data={", __FUNCTION__); - *extra = 0; - for (i=0; ifakeEfuseModifiedMap[addr+i]); - sprintf(extra, "%s0x%02X ", extra, pEfuseHal->fakeEfuseModifiedMap[addr+i]); - } - } else if (strcmp(tmp[0],"btrfkrmap")== 0) { - if ((tmp[1]==NULL) || (tmp[2]==NULL)) { - DBG_871X("%s: rmap Fail!! Parameters error!\n", __FUNCTION__); - err = -EINVAL; - goto exit; - } - // rmap addr cnts - addr = simple_strtoul(tmp[1], &ptmp, 16); - DBG_871X("%s: addr=%x\n", __FUNCTION__, addr); - - cnts = simple_strtoul(tmp[2], &ptmp, 10); - if (cnts == 0) - { - DBG_871X("%s: rmap Fail!! cnts error!\n", __FUNCTION__); - err = -EINVAL; - goto exit; - } - DBG_871X("%s: cnts=%d\n", __FUNCTION__, cnts); - - *extra = 0; - for (i=0; ifakeBTEfuseModifiedMap[addr+i]); - sprintf(extra, "%s0x%02X ", extra, pEfuseHal->fakeBTEfuseModifiedMap[addr+i]); - } - } else { - sprintf(extra, "Command not found!"); - } - -exit: - if (data) - rtw_mfree(data, EFUSE_BT_MAX_MAP_LEN); - if (rawdata) - rtw_mfree(rawdata, EFUSE_BT_MAX_MAP_LEN); - if (!err) - wrqu->length = strlen(extra); - - if (padapter->registrypriv.mp_mode == 0) - { - #ifdef CONFIG_IPS - rtw_pm_set_ips(padapter, ips_mode); -#endif // CONFIG_IPS - - #ifdef CONFIG_LPS - rtw_pm_set_lps(padapter, lps_mode); -#endif // CONFIG_LPS - } - - #ifdef CONFIG_IOL - padapter->registrypriv.fw_iol = org_fw_iol;// 0:Disable, 1:enable, 2:by usb speed - #endif - return err; -} - static int rtw_mp_efuse_set(struct net_device *dev, struct iw_request_info *info, union iwreq_data *wdata, char *extra) @@ -11451,7 +10916,6 @@ static iw_handler rtw_private_handler[] = rtw_rereg_nd_name, //0x18 rtw_wx_priv_null, //0x19 rtw_mp_efuse_set, //0x1A - rtw_mp_efuse_get, //0x1B NULL, // 0x1C is reserved for hostapd rtw_test, // 0x1D #ifdef CONFIG_INTEL_WIDI diff --git a/os_dep/recv_linux.c b/os_dep/recv_linux.c index 5f0f1c7..902f042 100644 --- a/os_dep/recv_linux.c +++ b/os_dep/recv_linux.c @@ -360,10 +360,11 @@ void rtw_os_recv_indicate_pkt(_adapter *padapter, _pkt *pkt, struct rx_pkt_attri #endif //CONFIG_TCP_CSUM_OFFLOAD_RX ret = rtw_netif_rx(padapter->pnetdev, pkt); - if (ret == NET_RX_SUCCESS) + if (ret == NET_RX_SUCCESS) { DBG_COUNTER(padapter->rx_logs.os_netif_ok); - else + } else { DBG_COUNTER(padapter->rx_logs.os_netif_err); + } } } From 447ea628fce35aebc5cb857a788be042479284ff Mon Sep 17 00:00:00 2001 From: Denis Klester Date: Thu, 7 May 2026 20:21:00 +0600 Subject: [PATCH 6/6] Fix sha256_init() conflict --- core/rtw_security.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/core/rtw_security.c b/core/rtw_security.c index 07f021d..b179e0e 100644 --- a/core/rtw_security.c +++ b/core/rtw_security.c @@ -2237,7 +2237,7 @@ static int sha256_compress(struct rtw_sha256_state *md, unsigned char *buf) } /* Initialize the hash state */ -static void sha256_init(struct rtw_sha256_state *md) +static void rtl_sha256_init(struct rtw_sha256_state *md) { md->curlen = 0; md->length = 0; @@ -2354,7 +2354,7 @@ static int sha256_vector(size_t num_elem, u8 *addr[], size_t *len, struct rtw_sha256_state ctx; size_t i; - sha256_init(&ctx); + rtl_sha256_init(&ctx); for (i = 0; i < num_elem; i++) if (sha256_process(&ctx, addr[i], len[i])) return -1;