Commit 6da1e00a authored by Prameela Rani Garnepudi's avatar Prameela Rani Garnepudi Committed by Kalle Valo

rsi: advertise ap mode support

AP mode support is advertised to cfg80211. Necessary wiphy
parameters are initialized.
Signed-off-by: default avatarPrameela Rani Garnepudi <prameela.j04cs@gmail.com>
Signed-off-by: default avatarAmitkumar Karwar <amit.karwar@redpinesignals.com>
Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
parent 0593da27
...@@ -122,6 +122,23 @@ const u16 rsi_mcsrates[8] = { ...@@ -122,6 +122,23 @@ const u16 rsi_mcsrates[8] = {
RSI_RATE_MCS4, RSI_RATE_MCS5, RSI_RATE_MCS6, RSI_RATE_MCS7 RSI_RATE_MCS4, RSI_RATE_MCS5, RSI_RATE_MCS6, RSI_RATE_MCS7
}; };
static const u32 rsi_max_ap_stas[16] = {
32, /* 1 - Wi-Fi alone */
0, /* 2 */
0, /* 3 */
0, /* 4 - BT EDR alone */
4, /* 5 - STA + BT EDR */
32, /* 6 - AP + BT EDR */
0, /* 7 */
0, /* 8 - BT LE alone */
4, /* 9 - STA + BE LE */
0, /* 10 */
0, /* 11 */
0, /* 12 */
1, /* 13 - STA + BT Dual */
4, /* 14 - AP + BT Dual */
};
/** /**
* rsi_is_cipher_wep() - This function determines if the cipher is WEP or not. * rsi_is_cipher_wep() - This function determines if the cipher is WEP or not.
* @common: Pointer to the driver private structure. * @common: Pointer to the driver private structure.
...@@ -1348,7 +1365,8 @@ int rsi_mac80211_attach(struct rsi_common *common) ...@@ -1348,7 +1365,8 @@ int rsi_mac80211_attach(struct rsi_common *common)
SET_IEEE80211_PERM_ADDR(hw, common->mac_addr); SET_IEEE80211_PERM_ADDR(hw, common->mac_addr);
ether_addr_copy(hw->wiphy->addr_mask, addr_mask); ether_addr_copy(hw->wiphy->addr_mask, addr_mask);
wiphy->interface_modes = BIT(NL80211_IFTYPE_STATION); wiphy->interface_modes = BIT(NL80211_IFTYPE_STATION) |
BIT(NL80211_IFTYPE_AP);
wiphy->signal_type = CFG80211_SIGNAL_TYPE_MBM; wiphy->signal_type = CFG80211_SIGNAL_TYPE_MBM;
wiphy->retry_short = RETRY_SHORT; wiphy->retry_short = RETRY_SHORT;
wiphy->retry_long = RETRY_LONG; wiphy->retry_long = RETRY_LONG;
...@@ -1363,6 +1381,14 @@ int rsi_mac80211_attach(struct rsi_common *common) ...@@ -1363,6 +1381,14 @@ int rsi_mac80211_attach(struct rsi_common *common)
wiphy->bands[NL80211_BAND_5GHZ] = wiphy->bands[NL80211_BAND_5GHZ] =
&adapter->sbands[NL80211_BAND_5GHZ]; &adapter->sbands[NL80211_BAND_5GHZ];
/* AP Parameters */
wiphy->max_ap_assoc_sta = rsi_max_ap_stas[common->oper_mode - 1];
common->max_stations = wiphy->max_ap_assoc_sta;
rsi_dbg(ERR_ZONE, "Max Stations Allowed = %d\n", common->max_stations);
hw->sta_data_size = sizeof(struct rsi_sta);
wiphy->flags = WIPHY_FLAG_REPORTS_OBSS;
wiphy->flags |= WIPHY_FLAG_AP_UAPSD;
wiphy->features |= NL80211_FEATURE_INACTIVITY_TIMER;
wiphy->reg_notifier = rsi_reg_notify; wiphy->reg_notifier = rsi_reg_notify;
wiphy_ext_feature_set(wiphy, NL80211_EXT_FEATURE_CQM_RSSI_LIST); wiphy_ext_feature_set(wiphy, NL80211_EXT_FEATURE_CQM_RSSI_LIST);
......
...@@ -21,6 +21,13 @@ ...@@ -21,6 +21,13 @@
#include <linux/skbuff.h> #include <linux/skbuff.h>
#include <net/mac80211.h> #include <net/mac80211.h>
struct rsi_sta {
struct ieee80211_sta *sta;
s16 sta_id;
u16 seq_start[IEEE80211_NUM_TIDS];
bool start_tx_aggr[IEEE80211_NUM_TIDS];
};
struct rsi_hw; struct rsi_hw;
#include "rsi_ps.h" #include "rsi_ps.h"
...@@ -253,6 +260,9 @@ struct rsi_common { ...@@ -253,6 +260,9 @@ struct rsi_common {
u16 beacon_interval; u16 beacon_interval;
u8 dtim_cnt; u8 dtim_cnt;
/* AP mode parameters */
int max_stations;
}; };
enum host_intf { enum host_intf {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment