diff options
author | Eliad Peller <eliad@wizery.com> | 2011-02-02 02:59:35 -0500 |
---|---|---|
committer | Luciano Coelho <coelho@ti.com> | 2011-02-08 19:51:42 -0500 |
commit | c8bde243421d759844264cf11e4248e7862c2722 (patch) | |
tree | b374d1c823ddd485b6016d0d676821c22edbedc3 /drivers/net/wireless/wl12xx/wl12xx.h | |
parent | ee60833a4f887a09e87be52cdf1247a4963b0aef (diff) |
wl12xx: move to new firmware (6.1.3.50.49)
This patch adds support for the new wl12xx firmware (Rev 6.1.3.50.49)
Since this fw is not backward compatible with previous fw versions,
a new fw (with different name) is being fetched.
(the patch is big because it contains all the required fw api changes.
splitting it into multiple patches will result in corrupted intermediate
commits)
Signed-off-by: Eliad Peller <eliad@wizery.com>
Reviewed-by: Luciano Coelho <coelho@ti.com>
Signed-off-by: Luciano Coelho <coelho@ti.com>
Diffstat (limited to 'drivers/net/wireless/wl12xx/wl12xx.h')
-rw-r--r-- | drivers/net/wireless/wl12xx/wl12xx.h | 31 |
1 files changed, 27 insertions, 4 deletions
diff --git a/drivers/net/wireless/wl12xx/wl12xx.h b/drivers/net/wireless/wl12xx/wl12xx.h index d1de13fe7d9a..140e26f3bae9 100644 --- a/drivers/net/wireless/wl12xx/wl12xx.h +++ b/drivers/net/wireless/wl12xx/wl12xx.h | |||
@@ -130,7 +130,7 @@ extern u32 wl12xx_debug_level; | |||
130 | 130 | ||
131 | 131 | ||
132 | 132 | ||
133 | #define WL1271_FW_NAME "wl1271-fw.bin" | 133 | #define WL1271_FW_NAME "wl1271-fw-2.bin" |
134 | #define WL1271_AP_FW_NAME "wl1271-fw-ap.bin" | 134 | #define WL1271_AP_FW_NAME "wl1271-fw-ap.bin" |
135 | 135 | ||
136 | #define WL1271_NVS_NAME "wl1271-nvs.bin" | 136 | #define WL1271_NVS_NAME "wl1271-nvs.bin" |
@@ -214,8 +214,8 @@ struct wl1271_stats { | |||
214 | /* Broadcast and Global links + links to stations */ | 214 | /* Broadcast and Global links + links to stations */ |
215 | #define AP_MAX_LINKS (AP_MAX_STATIONS + 2) | 215 | #define AP_MAX_LINKS (AP_MAX_STATIONS + 2) |
216 | 216 | ||
217 | /* FW status registers */ | 217 | /* FW status registers common for AP/STA */ |
218 | struct wl1271_fw_status { | 218 | struct wl1271_fw_common_status { |
219 | __le32 intr; | 219 | __le32 intr; |
220 | u8 fw_rx_counter; | 220 | u8 fw_rx_counter; |
221 | u8 drv_rx_counter; | 221 | u8 drv_rx_counter; |
@@ -224,6 +224,11 @@ struct wl1271_fw_status { | |||
224 | __le32 rx_pkt_descs[NUM_RX_PKT_DESC]; | 224 | __le32 rx_pkt_descs[NUM_RX_PKT_DESC]; |
225 | __le32 tx_released_blks[NUM_TX_QUEUES]; | 225 | __le32 tx_released_blks[NUM_TX_QUEUES]; |
226 | __le32 fw_localtime; | 226 | __le32 fw_localtime; |
227 | } __packed; | ||
228 | |||
229 | /* FW status registers for AP */ | ||
230 | struct wl1271_fw_ap_status { | ||
231 | struct wl1271_fw_common_status common; | ||
227 | 232 | ||
228 | /* Next fields valid only in AP FW */ | 233 | /* Next fields valid only in AP FW */ |
229 | 234 | ||
@@ -238,6 +243,24 @@ struct wl1271_fw_status { | |||
238 | u8 padding_1[1]; | 243 | u8 padding_1[1]; |
239 | } __packed; | 244 | } __packed; |
240 | 245 | ||
246 | /* FW status registers for STA */ | ||
247 | struct wl1271_fw_sta_status { | ||
248 | struct wl1271_fw_common_status common; | ||
249 | |||
250 | u8 tx_total; | ||
251 | u8 reserved1; | ||
252 | __le16 reserved2; | ||
253 | } __packed; | ||
254 | |||
255 | struct wl1271_fw_full_status { | ||
256 | union { | ||
257 | struct wl1271_fw_common_status common; | ||
258 | struct wl1271_fw_sta_status sta; | ||
259 | struct wl1271_fw_ap_status ap; | ||
260 | }; | ||
261 | } __packed; | ||
262 | |||
263 | |||
241 | struct wl1271_rx_mem_pool_addr { | 264 | struct wl1271_rx_mem_pool_addr { |
242 | u32 addr; | 265 | u32 addr; |
243 | u32 addr_extra; | 266 | u32 addr_extra; |
@@ -445,7 +468,7 @@ struct wl1271 { | |||
445 | u32 buffer_cmd; | 468 | u32 buffer_cmd; |
446 | u32 buffer_busyword[WL1271_BUSY_WORD_CNT]; | 469 | u32 buffer_busyword[WL1271_BUSY_WORD_CNT]; |
447 | 470 | ||
448 | struct wl1271_fw_status *fw_status; | 471 | struct wl1271_fw_full_status *fw_status; |
449 | struct wl1271_tx_hw_res_if *tx_res_if; | 472 | struct wl1271_tx_hw_res_if *tx_res_if; |
450 | 473 | ||
451 | struct ieee80211_vif *vif; | 474 | struct ieee80211_vif *vif; |