mirror of
https://github.com/shenmintao/aic8800d80.git
synced 2026-09-26 17:44:16 +00:00
fix: support newer kernel cfg80211 APIs
This commit is contained in:
@@ -60,9 +60,21 @@ endif
|
|||||||
|
|
||||||
MAKEFLAGS +=-j$(shell nproc)
|
MAKEFLAGS +=-j$(shell nproc)
|
||||||
|
|
||||||
|
KERNEL_AUTOCONF := $(KDIR)/include/config/auto.conf
|
||||||
|
KERNEL_CONFIG := $(KDIR)/.config
|
||||||
|
KERNEL_CC_IS_CLANG := $(shell if [ -r "$(KERNEL_AUTOCONF)" ] && grep -q '^CONFIG_CC_IS_CLANG=y' "$(KERNEL_AUTOCONF)"; then echo y; elif [ -r "$(KERNEL_CONFIG)" ] && grep -q '^CONFIG_CC_IS_CLANG=y' "$(KERNEL_CONFIG)"; then echo y; fi)
|
||||||
|
|
||||||
|
ifeq ($(KERNEL_CC_IS_CLANG),y)
|
||||||
|
LLVM ?= 1
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifneq ($(LLVM),)
|
||||||
|
KBUILD_EXTRA_ARGS += LLVM=$(LLVM)
|
||||||
|
endif
|
||||||
|
|
||||||
all: modules
|
all: modules
|
||||||
modules:
|
modules:
|
||||||
make -C $(KDIR) M=$(PWD) ARCH=$(ARCH) CROSS_COMPILE=$(CROSS_COMPILE) modules
|
make -C $(KDIR) M=$(PWD) ARCH=$(ARCH) CROSS_COMPILE=$(CROSS_COMPILE) $(KBUILD_EXTRA_ARGS) modules
|
||||||
|
|
||||||
install:
|
install:
|
||||||
mkdir -p $(MODDESTDIR)
|
mkdir -p $(MODDESTDIR)
|
||||||
|
|||||||
@@ -2941,7 +2941,12 @@ bool key_flag = false;
|
|||||||
* @add_key: add a key with the given parameters. @mac_addr will be %NULL
|
* @add_key: add a key with the given parameters. @mac_addr will be %NULL
|
||||||
* when adding a group key.
|
* when adding a group key.
|
||||||
*/
|
*/
|
||||||
static int rwnx_cfg80211_add_key(struct wiphy *wiphy, struct net_device *netdev,
|
static int rwnx_cfg80211_add_key(struct wiphy *wiphy,
|
||||||
|
#if LINUX_VERSION_CODE >= KERNEL_VERSION(7, 1, 0)
|
||||||
|
struct wireless_dev *wdev,
|
||||||
|
#else
|
||||||
|
struct net_device *netdev,
|
||||||
|
#endif
|
||||||
#if (LINUX_VERSION_CODE >= HIGH_KERNEL_VERSION2)
|
#if (LINUX_VERSION_CODE >= HIGH_KERNEL_VERSION2)
|
||||||
int link_id,
|
int link_id,
|
||||||
#endif
|
#endif
|
||||||
@@ -2949,7 +2954,11 @@ static int rwnx_cfg80211_add_key(struct wiphy *wiphy, struct net_device *netdev,
|
|||||||
struct key_params *params)
|
struct key_params *params)
|
||||||
{
|
{
|
||||||
struct rwnx_hw *rwnx_hw = wiphy_priv(wiphy);
|
struct rwnx_hw *rwnx_hw = wiphy_priv(wiphy);
|
||||||
|
#if LINUX_VERSION_CODE >= KERNEL_VERSION(7, 1, 0)
|
||||||
|
struct rwnx_vif *vif = netdev_priv(wdev->netdev);
|
||||||
|
#else
|
||||||
struct rwnx_vif *vif = netdev_priv(netdev);
|
struct rwnx_vif *vif = netdev_priv(netdev);
|
||||||
|
#endif
|
||||||
int i, error = 0;
|
int i, error = 0;
|
||||||
struct mm_key_add_cfm key_add_cfm;
|
struct mm_key_add_cfm key_add_cfm;
|
||||||
u8_l cipher = 0;
|
u8_l cipher = 0;
|
||||||
@@ -3056,7 +3065,12 @@ static int rwnx_cfg80211_add_key(struct wiphy *wiphy, struct net_device *netdev,
|
|||||||
* not possible to retrieve the key, -ENOENT if it doesn't exist.
|
* not possible to retrieve the key, -ENOENT if it doesn't exist.
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
static int rwnx_cfg80211_get_key(struct wiphy *wiphy, struct net_device *netdev,
|
static int rwnx_cfg80211_get_key(struct wiphy *wiphy,
|
||||||
|
#if LINUX_VERSION_CODE >= KERNEL_VERSION(7, 1, 0)
|
||||||
|
struct wireless_dev *wdev,
|
||||||
|
#else
|
||||||
|
struct net_device *netdev,
|
||||||
|
#endif
|
||||||
#if (LINUX_VERSION_CODE >= HIGH_KERNEL_VERSION2)
|
#if (LINUX_VERSION_CODE >= HIGH_KERNEL_VERSION2)
|
||||||
int link_id,
|
int link_id,
|
||||||
#endif
|
#endif
|
||||||
@@ -3075,7 +3089,12 @@ static int rwnx_cfg80211_get_key(struct wiphy *wiphy, struct net_device *netdev,
|
|||||||
* @del_key: remove a key given the @mac_addr (%NULL for a group key)
|
* @del_key: remove a key given the @mac_addr (%NULL for a group key)
|
||||||
* and @key_index, return -ENOENT if the key doesn't exist.
|
* and @key_index, return -ENOENT if the key doesn't exist.
|
||||||
*/
|
*/
|
||||||
static int rwnx_cfg80211_del_key(struct wiphy *wiphy, struct net_device *netdev,
|
static int rwnx_cfg80211_del_key(struct wiphy *wiphy,
|
||||||
|
#if LINUX_VERSION_CODE >= KERNEL_VERSION(7, 1, 0)
|
||||||
|
struct wireless_dev *wdev,
|
||||||
|
#else
|
||||||
|
struct net_device *netdev,
|
||||||
|
#endif
|
||||||
#if (LINUX_VERSION_CODE >= HIGH_KERNEL_VERSION2)
|
#if (LINUX_VERSION_CODE >= HIGH_KERNEL_VERSION2)
|
||||||
int link_id,
|
int link_id,
|
||||||
#endif
|
#endif
|
||||||
@@ -3083,7 +3102,11 @@ static int rwnx_cfg80211_del_key(struct wiphy *wiphy, struct net_device *netdev,
|
|||||||
u8 key_index, bool pairwise, const u8 *mac_addr)
|
u8 key_index, bool pairwise, const u8 *mac_addr)
|
||||||
{
|
{
|
||||||
struct rwnx_hw *rwnx_hw = wiphy_priv(wiphy);
|
struct rwnx_hw *rwnx_hw = wiphy_priv(wiphy);
|
||||||
|
#if LINUX_VERSION_CODE >= KERNEL_VERSION(7, 1, 0)
|
||||||
|
struct rwnx_vif *vif = netdev_priv(wdev->netdev);
|
||||||
|
#else
|
||||||
struct rwnx_vif *vif = netdev_priv(netdev);
|
struct rwnx_vif *vif = netdev_priv(netdev);
|
||||||
|
#endif
|
||||||
int error;
|
int error;
|
||||||
struct rwnx_sta *sta = NULL;
|
struct rwnx_sta *sta = NULL;
|
||||||
struct rwnx_key *rwnx_key;
|
struct rwnx_key *rwnx_key;
|
||||||
@@ -3131,7 +3154,11 @@ static int rwnx_cfg80211_set_default_key(struct wiphy *wiphy,
|
|||||||
* @set_default_mgmt_key: set the default management frame key on an interface
|
* @set_default_mgmt_key: set the default management frame key on an interface
|
||||||
*/
|
*/
|
||||||
static int rwnx_cfg80211_set_default_mgmt_key(struct wiphy *wiphy,
|
static int rwnx_cfg80211_set_default_mgmt_key(struct wiphy *wiphy,
|
||||||
|
#if LINUX_VERSION_CODE >= KERNEL_VERSION(7, 1, 0)
|
||||||
|
struct wireless_dev *wdev,
|
||||||
|
#else
|
||||||
struct net_device *netdev,
|
struct net_device *netdev,
|
||||||
|
#endif
|
||||||
#if (LINUX_VERSION_CODE >= HIGH_KERNEL_VERSION2)
|
#if (LINUX_VERSION_CODE >= HIGH_KERNEL_VERSION2)
|
||||||
int link_id,
|
int link_id,
|
||||||
#endif
|
#endif
|
||||||
@@ -3221,7 +3248,12 @@ static int rwnx_cfg80211_connect(struct wiphy *wiphy, struct net_device *dev,
|
|||||||
key_params.key_len = sme->key_len;
|
key_params.key_len = sme->key_len;
|
||||||
key_params.seq_len = 0;
|
key_params.seq_len = 0;
|
||||||
key_params.cipher = sme->crypto.cipher_group;
|
key_params.cipher = sme->crypto.cipher_group;
|
||||||
rwnx_cfg80211_add_key(wiphy, dev,
|
rwnx_cfg80211_add_key(wiphy,
|
||||||
|
#if LINUX_VERSION_CODE >= KERNEL_VERSION(7, 1, 0)
|
||||||
|
&rwnx_vif->wdev,
|
||||||
|
#else
|
||||||
|
dev,
|
||||||
|
#endif
|
||||||
#if (LINUX_VERSION_CODE >= HIGH_KERNEL_VERSION2)
|
#if (LINUX_VERSION_CODE >= HIGH_KERNEL_VERSION2)
|
||||||
0,
|
0,
|
||||||
#endif
|
#endif
|
||||||
@@ -3448,7 +3480,11 @@ static int rwnx_cfg80211_external_auth(struct wiphy *wiphy, struct net_device *d
|
|||||||
* @add_station: Add a new station.
|
* @add_station: Add a new station.
|
||||||
*/
|
*/
|
||||||
static int rwnx_cfg80211_add_station(struct wiphy *wiphy,
|
static int rwnx_cfg80211_add_station(struct wiphy *wiphy,
|
||||||
|
#if LINUX_VERSION_CODE >= KERNEL_VERSION(7, 1, 0)
|
||||||
|
struct wireless_dev *wdev,
|
||||||
|
#else
|
||||||
struct net_device *dev,
|
struct net_device *dev,
|
||||||
|
#endif
|
||||||
#if (LINUX_VERSION_CODE < KERNEL_VERSION(3, 16, 0))
|
#if (LINUX_VERSION_CODE < KERNEL_VERSION(3, 16, 0))
|
||||||
u8 *mac,
|
u8 *mac,
|
||||||
#else
|
#else
|
||||||
@@ -3457,7 +3493,11 @@ static int rwnx_cfg80211_add_station(struct wiphy *wiphy,
|
|||||||
struct station_parameters *params)
|
struct station_parameters *params)
|
||||||
{
|
{
|
||||||
struct rwnx_hw *rwnx_hw = wiphy_priv(wiphy);
|
struct rwnx_hw *rwnx_hw = wiphy_priv(wiphy);
|
||||||
|
#if LINUX_VERSION_CODE >= KERNEL_VERSION(7, 1, 0)
|
||||||
|
struct rwnx_vif *rwnx_vif = netdev_priv(wdev->netdev);
|
||||||
|
#else
|
||||||
struct rwnx_vif *rwnx_vif = netdev_priv(dev);
|
struct rwnx_vif *rwnx_vif = netdev_priv(dev);
|
||||||
|
#endif
|
||||||
struct me_sta_add_cfm me_sta_add_cfm;
|
struct me_sta_add_cfm me_sta_add_cfm;
|
||||||
int error = 0;
|
int error = 0;
|
||||||
|
|
||||||
@@ -3548,7 +3588,13 @@ static int rwnx_cfg80211_add_station(struct wiphy *wiphy,
|
|||||||
#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 0, 0)
|
#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 0, 0)
|
||||||
sinfo.filled |= STATION_INFO_ASSOC_REQ_IES;
|
sinfo.filled |= STATION_INFO_ASSOC_REQ_IES;
|
||||||
#endif
|
#endif
|
||||||
cfg80211_new_sta(rwnx_vif->ndev, sta->mac_addr, &sinfo, GFP_KERNEL);
|
cfg80211_new_sta(
|
||||||
|
#if LINUX_VERSION_CODE >= KERNEL_VERSION(7, 1, 0)
|
||||||
|
&rwnx_vif->wdev,
|
||||||
|
#else
|
||||||
|
rwnx_vif->ndev,
|
||||||
|
#endif
|
||||||
|
sta->mac_addr, &sinfo, GFP_KERNEL);
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef CONFIG_BAND_STEERING
|
#ifdef CONFIG_BAND_STEERING
|
||||||
@@ -3573,7 +3619,13 @@ static int rwnx_cfg80211_add_station(struct wiphy *wiphy,
|
|||||||
#define PRINT_STA_FLAG(f) \
|
#define PRINT_STA_FLAG(f) \
|
||||||
(params->sta_flags_set & BIT(NL80211_STA_FLAG_##f) ? "["#f"]" : "")
|
(params->sta_flags_set & BIT(NL80211_STA_FLAG_##f) ? "["#f"]" : "")
|
||||||
|
|
||||||
netdev_info(dev, "Add sta %d (%pM) flags=%s%s%s%s%s%s%s",
|
netdev_info(
|
||||||
|
#if LINUX_VERSION_CODE >= KERNEL_VERSION(7, 1, 0)
|
||||||
|
wdev->netdev,
|
||||||
|
#else
|
||||||
|
dev,
|
||||||
|
#endif
|
||||||
|
"Add sta %d (%pM) flags=%s%s%s%s%s%s%s",
|
||||||
sta->sta_idx, mac,
|
sta->sta_idx, mac,
|
||||||
PRINT_STA_FLAG(AUTHORIZED),
|
PRINT_STA_FLAG(AUTHORIZED),
|
||||||
PRINT_STA_FLAG(SHORT_PREAMBLE),
|
PRINT_STA_FLAG(SHORT_PREAMBLE),
|
||||||
@@ -3599,7 +3651,11 @@ static int rwnx_cfg80211_add_station(struct wiphy *wiphy,
|
|||||||
* @del_station: Remove a station
|
* @del_station: Remove a station
|
||||||
*/
|
*/
|
||||||
static int rwnx_cfg80211_del_station_compat(struct wiphy *wiphy,
|
static int rwnx_cfg80211_del_station_compat(struct wiphy *wiphy,
|
||||||
|
#if LINUX_VERSION_CODE >= KERNEL_VERSION(7, 1, 0)
|
||||||
|
struct wireless_dev *wdev,
|
||||||
|
#else
|
||||||
struct net_device *dev,
|
struct net_device *dev,
|
||||||
|
#endif
|
||||||
#if (LINUX_VERSION_CODE < KERNEL_VERSION(3, 16, 0))
|
#if (LINUX_VERSION_CODE < KERNEL_VERSION(3, 16, 0))
|
||||||
u8 *mac
|
u8 *mac
|
||||||
#elif (LINUX_VERSION_CODE < KERNEL_VERSION(3, 19, 0))
|
#elif (LINUX_VERSION_CODE < KERNEL_VERSION(3, 19, 0))
|
||||||
@@ -3610,7 +3666,11 @@ static int rwnx_cfg80211_del_station_compat(struct wiphy *wiphy,
|
|||||||
)
|
)
|
||||||
{
|
{
|
||||||
struct rwnx_hw *rwnx_hw = wiphy_priv(wiphy);
|
struct rwnx_hw *rwnx_hw = wiphy_priv(wiphy);
|
||||||
|
#if LINUX_VERSION_CODE >= KERNEL_VERSION(7, 1, 0)
|
||||||
|
struct rwnx_vif *rwnx_vif = netdev_priv(wdev->netdev);
|
||||||
|
#else
|
||||||
struct rwnx_vif *rwnx_vif = netdev_priv(dev);
|
struct rwnx_vif *rwnx_vif = netdev_priv(dev);
|
||||||
|
#endif
|
||||||
struct rwnx_sta *cur, *tmp;
|
struct rwnx_sta *cur, *tmp;
|
||||||
int error = 0, found = 0;
|
int error = 0, found = 0;
|
||||||
#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0)
|
#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0)
|
||||||
@@ -3650,7 +3710,13 @@ static int rwnx_cfg80211_del_station_compat(struct wiphy *wiphy,
|
|||||||
spin_unlock_bh(&rwnx_hw->cb_lock);
|
spin_unlock_bh(&rwnx_hw->cb_lock);
|
||||||
|
|
||||||
if(found) {
|
if(found) {
|
||||||
netdev_info(dev, "Del sta %d (%pM)", cur->sta_idx, cur->mac_addr);
|
netdev_info(
|
||||||
|
#if LINUX_VERSION_CODE >= KERNEL_VERSION(7, 1, 0)
|
||||||
|
wdev->netdev,
|
||||||
|
#else
|
||||||
|
dev,
|
||||||
|
#endif
|
||||||
|
"Del sta %d (%pM)", cur->sta_idx, cur->mac_addr);
|
||||||
if (cur->vif_idx != cur->vlan_idx) {
|
if (cur->vif_idx != cur->vlan_idx) {
|
||||||
struct rwnx_vif *vlan_vif;
|
struct rwnx_vif *vlan_vif;
|
||||||
vlan_vif = rwnx_hw->vif_table[cur->vlan_idx];
|
vlan_vif = rwnx_hw->vif_table[cur->vlan_idx];
|
||||||
@@ -3664,7 +3730,13 @@ static int rwnx_cfg80211_del_station_compat(struct wiphy *wiphy,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (rwnx_vif->wdev.iftype == NL80211_IFTYPE_AP || rwnx_vif->wdev.iftype == NL80211_IFTYPE_P2P_GO) {
|
if (rwnx_vif->wdev.iftype == NL80211_IFTYPE_AP || rwnx_vif->wdev.iftype == NL80211_IFTYPE_P2P_GO) {
|
||||||
cfg80211_del_sta(rwnx_vif->ndev, cur->mac_addr, GFP_KERNEL);
|
cfg80211_del_sta(
|
||||||
|
#if LINUX_VERSION_CODE >= KERNEL_VERSION(7, 1, 0)
|
||||||
|
&rwnx_vif->wdev,
|
||||||
|
#else
|
||||||
|
rwnx_vif->ndev,
|
||||||
|
#endif
|
||||||
|
cur->mac_addr, GFP_KERNEL);
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef AICWF_RX_REORDER
|
#ifdef AICWF_RX_REORDER
|
||||||
@@ -3889,7 +3961,12 @@ void apm_probe_sta_work_process(struct work_struct *work)
|
|||||||
* them, also against the existing state! Drivers must call
|
* them, also against the existing state! Drivers must call
|
||||||
* cfg80211_check_station_change() to validate the information.
|
* cfg80211_check_station_change() to validate the information.
|
||||||
*/
|
*/
|
||||||
static int rwnx_cfg80211_change_station(struct wiphy *wiphy, struct net_device *dev,
|
static int rwnx_cfg80211_change_station(struct wiphy *wiphy,
|
||||||
|
#if LINUX_VERSION_CODE >= KERNEL_VERSION(7, 1, 0)
|
||||||
|
struct wireless_dev *wdev,
|
||||||
|
#else
|
||||||
|
struct net_device *dev,
|
||||||
|
#endif
|
||||||
#if (LINUX_VERSION_CODE < KERNEL_VERSION(3, 16, 0))
|
#if (LINUX_VERSION_CODE < KERNEL_VERSION(3, 16, 0))
|
||||||
u8 *mac,
|
u8 *mac,
|
||||||
#else
|
#else
|
||||||
@@ -3898,7 +3975,11 @@ static int rwnx_cfg80211_change_station(struct wiphy *wiphy, struct net_device *
|
|||||||
struct station_parameters *params)
|
struct station_parameters *params)
|
||||||
{
|
{
|
||||||
struct rwnx_hw *rwnx_hw = wiphy_priv(wiphy);
|
struct rwnx_hw *rwnx_hw = wiphy_priv(wiphy);
|
||||||
|
#if LINUX_VERSION_CODE >= KERNEL_VERSION(7, 1, 0)
|
||||||
|
struct rwnx_vif *vif = netdev_priv(wdev->netdev);
|
||||||
|
#else
|
||||||
struct rwnx_vif *vif = netdev_priv(dev);
|
struct rwnx_vif *vif = netdev_priv(dev);
|
||||||
|
#endif
|
||||||
struct rwnx_sta *sta;
|
struct rwnx_sta *sta;
|
||||||
|
|
||||||
sta = rwnx_get_sta(rwnx_hw, mac);
|
sta = rwnx_get_sta(rwnx_hw, mac);
|
||||||
@@ -3907,7 +3988,11 @@ static int rwnx_cfg80211_change_station(struct wiphy *wiphy, struct net_device *
|
|||||||
/* Add the TDLS station */
|
/* Add the TDLS station */
|
||||||
if (params->sta_flags_set & BIT(NL80211_STA_FLAG_TDLS_PEER))
|
if (params->sta_flags_set & BIT(NL80211_STA_FLAG_TDLS_PEER))
|
||||||
{
|
{
|
||||||
|
#if LINUX_VERSION_CODE >= KERNEL_VERSION(7, 1, 0)
|
||||||
|
struct rwnx_vif *rwnx_vif = netdev_priv(wdev->netdev);
|
||||||
|
#else
|
||||||
struct rwnx_vif *rwnx_vif = netdev_priv(dev);
|
struct rwnx_vif *rwnx_vif = netdev_priv(dev);
|
||||||
|
#endif
|
||||||
struct me_sta_add_cfm me_sta_add_cfm;
|
struct me_sta_add_cfm me_sta_add_cfm;
|
||||||
int error = 0;
|
int error = 0;
|
||||||
|
|
||||||
@@ -3978,7 +4063,13 @@ static int rwnx_cfg80211_change_station(struct wiphy *wiphy, struct net_device *
|
|||||||
#define PRINT_STA_FLAG(f) \
|
#define PRINT_STA_FLAG(f) \
|
||||||
(params->sta_flags_set & BIT(NL80211_STA_FLAG_##f) ? "["#f"]" : "")
|
(params->sta_flags_set & BIT(NL80211_STA_FLAG_##f) ? "["#f"]" : "")
|
||||||
|
|
||||||
netdev_info(dev, "Add %s TDLS sta %d (%pM) flags=%s%s%s%s%s%s%s",
|
netdev_info(
|
||||||
|
#if LINUX_VERSION_CODE >= KERNEL_VERSION(7, 1, 0)
|
||||||
|
wdev->netdev,
|
||||||
|
#else
|
||||||
|
dev,
|
||||||
|
#endif
|
||||||
|
"Add %s TDLS sta %d (%pM) flags=%s%s%s%s%s%s%s",
|
||||||
sta->tdls.initiator ? "initiator" : "responder",
|
sta->tdls.initiator ? "initiator" : "responder",
|
||||||
sta->sta_idx, mac,
|
sta->sta_idx, mac,
|
||||||
PRINT_STA_FLAG(AUTHORIZED),
|
PRINT_STA_FLAG(AUTHORIZED),
|
||||||
@@ -4261,7 +4352,13 @@ static int rwnx_cfg80211_stop_ap(struct wiphy *wiphy, struct net_device *dev)
|
|||||||
|
|
||||||
/* delete any remaining STA*/
|
/* delete any remaining STA*/
|
||||||
while (!list_empty(&rwnx_vif->ap.sta_list)) {
|
while (!list_empty(&rwnx_vif->ap.sta_list)) {
|
||||||
rwnx_cfg80211_del_station_compat(wiphy, dev, NULL);
|
rwnx_cfg80211_del_station_compat(wiphy,
|
||||||
|
#if LINUX_VERSION_CODE >= KERNEL_VERSION(7, 1, 0)
|
||||||
|
&rwnx_vif->wdev,
|
||||||
|
#else
|
||||||
|
dev,
|
||||||
|
#endif
|
||||||
|
NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef CONFIG_BAND_STEERING
|
#ifdef CONFIG_BAND_STEERING
|
||||||
@@ -4516,7 +4613,9 @@ static int rwnx_cfg80211_get_tx_power(struct wiphy *wiphy,
|
|||||||
#endif
|
#endif
|
||||||
#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 17, 0)
|
#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 17, 0)
|
||||||
int radio_idx,
|
int radio_idx,
|
||||||
unsigned int changed,
|
#endif
|
||||||
|
#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 14, 0)
|
||||||
|
unsigned int link_id,
|
||||||
#endif
|
#endif
|
||||||
int *mbm)
|
int *mbm)
|
||||||
{
|
{
|
||||||
@@ -5882,7 +5981,11 @@ int rwnx_fill_station_info(struct rwnx_sta *sta, struct rwnx_vif *vif,
|
|||||||
* @get_station: get station information for the station identified by @mac
|
* @get_station: get station information for the station identified by @mac
|
||||||
*/
|
*/
|
||||||
static int rwnx_cfg80211_get_station(struct wiphy *wiphy,
|
static int rwnx_cfg80211_get_station(struct wiphy *wiphy,
|
||||||
|
#if LINUX_VERSION_CODE >= KERNEL_VERSION(7, 1, 0)
|
||||||
|
struct wireless_dev *wdev,
|
||||||
|
#else
|
||||||
struct net_device *dev,
|
struct net_device *dev,
|
||||||
|
#endif
|
||||||
#if (LINUX_VERSION_CODE < KERNEL_VERSION(3, 16, 0))
|
#if (LINUX_VERSION_CODE < KERNEL_VERSION(3, 16, 0))
|
||||||
u8 *mac,
|
u8 *mac,
|
||||||
#else
|
#else
|
||||||
@@ -5890,7 +5993,11 @@ static int rwnx_cfg80211_get_station(struct wiphy *wiphy,
|
|||||||
#endif
|
#endif
|
||||||
struct station_info *sinfo)
|
struct station_info *sinfo)
|
||||||
{
|
{
|
||||||
|
#if LINUX_VERSION_CODE >= KERNEL_VERSION(7, 1, 0)
|
||||||
|
struct rwnx_vif *vif = netdev_priv(wdev->netdev);
|
||||||
|
#else
|
||||||
struct rwnx_vif *vif = netdev_priv(dev);
|
struct rwnx_vif *vif = netdev_priv(dev);
|
||||||
|
#endif
|
||||||
struct rwnx_sta *sta = NULL;
|
struct rwnx_sta *sta = NULL;
|
||||||
|
|
||||||
if (RWNX_VIF_TYPE(vif) == NL80211_IFTYPE_MONITOR)
|
if (RWNX_VIF_TYPE(vif) == NL80211_IFTYPE_MONITOR)
|
||||||
@@ -5923,10 +6030,19 @@ static int rwnx_cfg80211_get_station(struct wiphy *wiphy,
|
|||||||
/**
|
/**
|
||||||
* @dump_station: dump station callback -- resume dump at index @idx
|
* @dump_station: dump station callback -- resume dump at index @idx
|
||||||
*/
|
*/
|
||||||
static int rwnx_cfg80211_dump_station(struct wiphy *wiphy, struct net_device *dev,
|
static int rwnx_cfg80211_dump_station(struct wiphy *wiphy,
|
||||||
|
#if LINUX_VERSION_CODE >= KERNEL_VERSION(7, 1, 0)
|
||||||
|
struct wireless_dev *wdev,
|
||||||
|
#else
|
||||||
|
struct net_device *dev,
|
||||||
|
#endif
|
||||||
int idx, u8 *mac, struct station_info *sinfo)
|
int idx, u8 *mac, struct station_info *sinfo)
|
||||||
{
|
{
|
||||||
|
#if LINUX_VERSION_CODE >= KERNEL_VERSION(7, 1, 0)
|
||||||
|
struct rwnx_vif *rwnx_vif = netdev_priv(wdev->netdev);
|
||||||
|
#else
|
||||||
struct rwnx_vif *rwnx_vif = netdev_priv(dev);
|
struct rwnx_vif *rwnx_vif = netdev_priv(dev);
|
||||||
|
#endif
|
||||||
//struct rwnx_hw *rwnx_hw = wiphy_priv(wiphy);
|
//struct rwnx_hw *rwnx_hw = wiphy_priv(wiphy);
|
||||||
struct rwnx_sta *sta_iter, *sta = NULL;
|
struct rwnx_sta *sta_iter, *sta = NULL;
|
||||||
//struct mesh_peer_info_cfm peer_info_cfm;
|
//struct mesh_peer_info_cfm peer_info_cfm;
|
||||||
|
|||||||
@@ -115,12 +115,21 @@ rwnx_prep_tdls_direct(struct rwnx_hw *rwnx_hw, struct rwnx_vif *rwnx_vif,
|
|||||||
|
|
||||||
switch (action_code) {
|
switch (action_code) {
|
||||||
case WLAN_PUB_ACTION_TDLS_DISCOVER_RES:
|
case WLAN_PUB_ACTION_TDLS_DISCOVER_RES:
|
||||||
|
#if LINUX_VERSION_CODE >= KERNEL_VERSION(7, 1, 0)
|
||||||
|
skb_put(skb, 1 + sizeof(mgmt->u.action.tdls_discover_resp));
|
||||||
|
mgmt->u.action.category = WLAN_CATEGORY_PUBLIC;
|
||||||
|
mgmt->u.action.action_code = WLAN_PUB_ACTION_TDLS_DISCOVER_RES;
|
||||||
|
mgmt->u.action.tdls_discover_resp.dialog_token = dialog_token;
|
||||||
|
mgmt->u.action.tdls_discover_resp.capability =
|
||||||
|
cpu_to_le16(rwnx_get_tdls_sta_capab(rwnx_vif, status_code));
|
||||||
|
#else
|
||||||
skb_put(skb, 1 + sizeof(mgmt->u.action.u.tdls_discover_resp));
|
skb_put(skb, 1 + sizeof(mgmt->u.action.u.tdls_discover_resp));
|
||||||
mgmt->u.action.category = WLAN_CATEGORY_PUBLIC;
|
mgmt->u.action.category = WLAN_CATEGORY_PUBLIC;
|
||||||
mgmt->u.action.u.tdls_discover_resp.action_code = WLAN_PUB_ACTION_TDLS_DISCOVER_RES;
|
mgmt->u.action.u.tdls_discover_resp.action_code = WLAN_PUB_ACTION_TDLS_DISCOVER_RES;
|
||||||
mgmt->u.action.u.tdls_discover_resp.dialog_token = dialog_token;
|
mgmt->u.action.u.tdls_discover_resp.dialog_token = dialog_token;
|
||||||
mgmt->u.action.u.tdls_discover_resp.capability =
|
mgmt->u.action.u.tdls_discover_resp.capability =
|
||||||
cpu_to_le16(rwnx_get_tdls_sta_capab(rwnx_vif, status_code));
|
cpu_to_le16(rwnx_get_tdls_sta_capab(rwnx_vif, status_code));
|
||||||
|
#endif
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
|||||||
Reference in New Issue
Block a user