Skip to content

Commit

Permalink
wlcore: set max num of Rx BA sessions per chip
Browse files Browse the repository at this point in the history
Maximum number of supported RX BA sessions depends on chip type.
wl18xx supports 5 RX BA sessions while wl12xx supports 3.

Signed-off-by: Igal Chernobelsky <igalc@ti.com>
Signed-off-by: Luciano Coelho <coelho@ti.com>
  • Loading branch information
Igal Chernobelsky authored and Luciano Coelho committed Mar 25, 2013
1 parent 0c7cc7f commit d21553f
Show file tree
Hide file tree
Showing 7 changed files with 11 additions and 4 deletions.
1 change: 1 addition & 0 deletions drivers/net/wireless/ti/wl12xx/main.c
Original file line number Diff line number Diff line change
Expand Up @@ -723,6 +723,7 @@ static int wl12xx_identify_chip(struct wl1271 *wl)
wl->sched_scan_templ_id_2_4 = CMD_TEMPL_CFG_PROBE_REQ_2_4;
wl->sched_scan_templ_id_5 = CMD_TEMPL_CFG_PROBE_REQ_5;
wl->max_channels_5 = WL12XX_MAX_CHANNELS_5GHZ;
wl->ba_rx_session_count_max = WL12XX_RX_BA_MAX_SESSIONS;
out:
return ret;
}
Expand Down
2 changes: 2 additions & 0 deletions drivers/net/wireless/ti/wl12xx/wl12xx.h
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,8 @@

#define WL12XX_NUM_MAC_ADDRESSES 2

#define WL12XX_RX_BA_MAX_SESSIONS 3

struct wl127x_rx_mem_pool_addr {
u32 addr;
u32 addr_extra;
Expand Down
1 change: 1 addition & 0 deletions drivers/net/wireless/ti/wl18xx/main.c
Original file line number Diff line number Diff line change
Expand Up @@ -678,6 +678,7 @@ static int wl18xx_identify_chip(struct wl1271 *wl)
wl->sched_scan_templ_id_2_4 = CMD_TEMPL_PROBE_REQ_2_4_PERIODIC;
wl->sched_scan_templ_id_5 = CMD_TEMPL_PROBE_REQ_5_PERIODIC;
wl->max_channels_5 = WL18XX_MAX_CHANNELS_5GHZ;
wl->ba_rx_session_count_max = WL18XX_RX_BA_MAX_SESSIONS;
out:
return ret;
}
Expand Down
4 changes: 3 additions & 1 deletion drivers/net/wireless/ti/wl18xx/wl18xx.h
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@
#define WL18XX_IFTYPE_VER 5
#define WL18XX_MAJOR_VER WLCORE_FW_VER_IGNORE
#define WL18XX_SUBTYPE_VER WLCORE_FW_VER_IGNORE
#define WL18XX_MINOR_VER 28
#define WL18XX_MINOR_VER 39

#define WL18XX_CMD_MAX_SIZE 740

Expand All @@ -40,6 +40,8 @@

#define WL18XX_NUM_MAC_ADDRESSES 3

#define WL18XX_RX_BA_MAX_SESSIONS 5

struct wl18xx_priv {
/* buffer for sending commands to FW */
u8 cmd_buf[WL18XX_CMD_MAX_SIZE];
Expand Down
2 changes: 0 additions & 2 deletions drivers/net/wireless/ti/wlcore/acx.h
Original file line number Diff line number Diff line change
Expand Up @@ -728,8 +728,6 @@ struct wl1271_acx_ht_information {
u8 padding[2];
} __packed;

#define RX_BA_MAX_SESSIONS 3

struct wl1271_acx_ba_initiator_policy {
struct acx_header header;

Expand Down
2 changes: 1 addition & 1 deletion drivers/net/wireless/ti/wlcore/main.c
Original file line number Diff line number Diff line change
Expand Up @@ -4784,7 +4784,7 @@ static int wl1271_op_ampdu_action(struct ieee80211_hw *hw,
break;
}

if (wl->ba_rx_session_count >= RX_BA_MAX_SESSIONS) {
if (wl->ba_rx_session_count >= wl->ba_rx_session_count_max) {
ret = -EBUSY;
wl1271_error("exceeded max RX BA sessions");
break;
Expand Down
3 changes: 3 additions & 0 deletions drivers/net/wireless/ti/wlcore/wlcore.h
Original file line number Diff line number Diff line change
Expand Up @@ -390,6 +390,9 @@ struct wl1271 {
/* number of currently active RX BA sessions */
int ba_rx_session_count;

/* Maximum number of supported RX BA sessions */
int ba_rx_session_count_max;

/* AP-mode - number of currently connected stations */
int active_sta_count;

Expand Down

0 comments on commit d21553f

Please sign in to comment.