diff options
author | kaloz <kaloz@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2014-03-18 18:55:54 +0000 |
---|---|---|
committer | kaloz <kaloz@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2014-03-18 18:55:54 +0000 |
commit | 2ead16490139642a2cb5d191e90729d6c27455d1 (patch) | |
tree | 2559a20fed9cca97addaeeb1a9f3a2948311b424 /package/kernel/mac80211/patches/907-wlcore-wl12xx-wl18xx-configure-max_stations-per-hw.patch | |
parent | ee194135dc0e12c78515a6349d651ada3807ae12 (diff) |
[mac80211]: add add new firmware support and additional fixes for wl18xx
Signed-off-by: Imre Kaloz <kaloz@openwrt.org>
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@39947 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'package/kernel/mac80211/patches/907-wlcore-wl12xx-wl18xx-configure-max_stations-per-hw.patch')
-rw-r--r-- | package/kernel/mac80211/patches/907-wlcore-wl12xx-wl18xx-configure-max_stations-per-hw.patch | 110 |
1 files changed, 110 insertions, 0 deletions
diff --git a/package/kernel/mac80211/patches/907-wlcore-wl12xx-wl18xx-configure-max_stations-per-hw.patch b/package/kernel/mac80211/patches/907-wlcore-wl12xx-wl18xx-configure-max_stations-per-hw.patch new file mode 100644 index 0000000000..66fd7dde1b --- /dev/null +++ b/package/kernel/mac80211/patches/907-wlcore-wl12xx-wl18xx-configure-max_stations-per-hw.patch @@ -0,0 +1,110 @@ +Each hw supports a different max stations (connected to the +same ap). add a new wl->max_ap_stations and use it instead +of the current common AP_MAX_STATIONS. + +Signed-off-by: Eliad Peller <eliad@wizery.com> + +--- +drivers/net/wireless/ti/wl12xx/main.c | 2 ++ + drivers/net/wireless/ti/wl12xx/wl12xx.h | 1 + + drivers/net/wireless/ti/wl18xx/main.c | 2 ++ + drivers/net/wireless/ti/wl18xx/wl18xx.h | 1 + + drivers/net/wireless/ti/wlcore/main.c | 4 +--- + drivers/net/wireless/ti/wlcore/wlcore.h | 2 ++ + drivers/net/wireless/ti/wlcore/wlcore_i.h | 2 -- + 7 files changed, 9 insertions(+), 5 deletions(-) + +--- a/drivers/net/wireless/ti/wl12xx/main.c ++++ b/drivers/net/wireless/ti/wl12xx/main.c +@@ -1750,11 +1750,13 @@ static int wl12xx_setup(struct wl1271 *w + struct wl12xx_platform_data *pdata = pdev_data->pdata; + + BUILD_BUG_ON(WL12XX_MAX_LINKS > WLCORE_MAX_LINKS); ++ BUILD_BUG_ON(WL12XX_MAX_AP_STATIONS > WL12XX_MAX_LINKS); + + wl->rtable = wl12xx_rtable; + wl->num_tx_desc = WL12XX_NUM_TX_DESCRIPTORS; + wl->num_rx_desc = WL12XX_NUM_RX_DESCRIPTORS; + wl->num_links = WL12XX_MAX_LINKS; ++ wl->max_ap_stations = WL12XX_MAX_AP_STATIONS; + wl->num_channels = 1; + wl->num_mac_addr = WL12XX_NUM_MAC_ADDRESSES; + wl->band_rate_to_idx = wl12xx_band_rate_to_idx; +--- a/drivers/net/wireless/ti/wl12xx/wl12xx.h ++++ b/drivers/net/wireless/ti/wl12xx/wl12xx.h +@@ -65,6 +65,7 @@ + + #define WL12XX_RX_BA_MAX_SESSIONS 3 + ++#define WL12XX_MAX_AP_STATIONS 8 + #define WL12XX_MAX_LINKS 12 + + struct wl127x_rx_mem_pool_addr { +--- a/drivers/net/wireless/ti/wl18xx/main.c ++++ b/drivers/net/wireless/ti/wl18xx/main.c +@@ -1753,11 +1753,13 @@ static int wl18xx_setup(struct wl1271 *w + int ret; + + BUILD_BUG_ON(WL18XX_MAX_LINKS > WLCORE_MAX_LINKS); ++ BUILD_BUG_ON(WL18XX_MAX_AP_STATIONS > WL18XX_MAX_LINKS); + + wl->rtable = wl18xx_rtable; + wl->num_tx_desc = WL18XX_NUM_TX_DESCRIPTORS; + wl->num_rx_desc = WL18XX_NUM_RX_DESCRIPTORS; + wl->num_links = WL18XX_MAX_LINKS; ++ wl->max_ap_stations = WL18XX_MAX_AP_STATIONS; + wl->num_channels = 2; + wl->num_mac_addr = WL18XX_NUM_MAC_ADDRESSES; + wl->band_rate_to_idx = wl18xx_band_rate_to_idx; +--- a/drivers/net/wireless/ti/wl18xx/wl18xx.h ++++ b/drivers/net/wireless/ti/wl18xx/wl18xx.h +@@ -42,6 +42,7 @@ + + #define WL18XX_RX_BA_MAX_SESSIONS 5 + ++#define WL18XX_MAX_AP_STATIONS 8 + #define WL18XX_MAX_LINKS 12 + + struct wl18xx_priv { +--- a/drivers/net/wireless/ti/wlcore/main.c ++++ b/drivers/net/wireless/ti/wlcore/main.c +@@ -4695,7 +4695,7 @@ static int wl1271_allocate_sta(struct wl + int ret; + + +- if (wl->active_sta_count >= AP_MAX_STATIONS) { ++ if (wl->active_sta_count >= wl->max_ap_stations) { + wl1271_warning("could not allocate HLID - too much stations"); + return -EBUSY; + } +@@ -5888,8 +5888,6 @@ struct ieee80211_hw *wlcore_alloc_hw(siz + int i, j, ret; + unsigned int order; + +- BUILD_BUG_ON(AP_MAX_STATIONS > WLCORE_MAX_LINKS); +- + hw = ieee80211_alloc_hw(sizeof(*wl), &wl1271_ops); + if (!hw) { + wl1271_error("could not alloc ieee80211_hw"); +--- a/drivers/net/wireless/ti/wlcore/wlcore.h ++++ b/drivers/net/wireless/ti/wlcore/wlcore.h +@@ -440,6 +440,8 @@ struct wl1271 { + u32 num_rx_desc; + /* number of links the HW supports */ + u8 num_links; ++ /* max stations a single AP can support */ ++ u8 max_ap_stations; + + /* translate HW Tx rates to standard rate-indices */ + const u8 **band_rate_to_idx; +--- a/drivers/net/wireless/ti/wlcore/wlcore_i.h ++++ b/drivers/net/wireless/ti/wlcore/wlcore_i.h +@@ -123,8 +123,6 @@ struct wl1271_chip { + + #define NUM_TX_QUEUES 4 + +-#define AP_MAX_STATIONS 8 +- + struct wl_fw_status { + u32 intr; + u8 fw_rx_counter; |