aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/wl12xx/wl12xx.h
diff options
context:
space:
mode:
authorEliad Peller <eliad@wizery.com>2012-02-06 13:07:52 +0200
committerLuciano Coelho <coelho@ti.com>2012-02-15 08:38:36 +0200
commit4549d09c57cf44ae9ab6095c375bad5c100658c7 (patch)
treef6093845de683aa220183a85aab6e1bcd082b9bf /drivers/net/wireless/wl12xx/wl12xx.h
parentwl12xx: Use a dedicated fw for PLT (diff)
downloadlinux-dev-4549d09c57cf44ae9ab6095c375bad5c100658c7.tar.xz
linux-dev-4549d09c57cf44ae9ab6095c375bad5c100658c7.zip
wl12xx: dynamically change fw according to number of active roles
wl12xx uses different fw for single-role and multi-role scenarios (due to lack of space, some of the fw advanced features are disabled in the multi-role fw). Add checks on add_interfae and remove_interface in order to determine whether a fw switch is needed (and initiate recovery in this case). Signed-off-by: Eliad Peller <eliad@wizery.com> Signed-off-by: Luciano Coelho <coelho@ti.com>
Diffstat (limited to '')
-rw-r--r--drivers/net/wireless/wl12xx/wl12xx.h11
1 files changed, 9 insertions, 2 deletions
diff --git a/drivers/net/wireless/wl12xx/wl12xx.h b/drivers/net/wireless/wl12xx/wl12xx.h
index 9b48aa48cdca..04cddaaf9498 100644
--- a/drivers/net/wireless/wl12xx/wl12xx.h
+++ b/drivers/net/wireless/wl12xx/wl12xx.h
@@ -35,8 +35,12 @@
#include "conf.h"
#include "ini.h"
-#define WL127X_FW_NAME "ti-connectivity/wl127x-fw-4-sr.bin"
-#define WL128X_FW_NAME "ti-connectivity/wl128x-fw-4-sr.bin"
+#define WL127X_FW_NAME_MULTI "ti-connectivity/wl127x-fw-4-mr.bin"
+#define WL127X_FW_NAME_SINGLE "ti-connectivity/wl127x-fw-4-sr.bin"
+
+#define WL128X_FW_NAME_MULTI "ti-connectivity/wl128x-fw-4-mr.bin"
+#define WL128X_FW_NAME_SINGLE "ti-connectivity/wl128x-fw-4-sr.bin"
+
#define WL127X_PLT_FW_NAME "ti-connectivity/wl127x-fw-4-plt.bin"
#define WL128X_PLT_FW_NAME "ti-connectivity/wl128x-fw-4-plt.bin"
@@ -97,6 +101,7 @@ enum wl1271_state {
enum wl12xx_fw_type {
WL12XX_FW_TYPE_NONE,
WL12XX_FW_TYPE_NORMAL,
+ WL12XX_FW_TYPE_MULTI,
WL12XX_FW_TYPE_PLT,
};
@@ -254,6 +259,7 @@ enum wl12xx_flags {
WL1271_FLAG_PENDING_WORK,
WL1271_FLAG_SOFT_GEMINI,
WL1271_FLAG_RECOVERY_IN_PROGRESS,
+ WL1271_FLAG_VIF_CHANGE_IN_PROGRESS,
};
enum wl12xx_vif_flags {
@@ -303,6 +309,7 @@ struct wl1271 {
enum wl1271_state state;
enum wl12xx_fw_type fw_type;
bool plt;
+ u8 last_vif_count;
struct mutex mutex;
unsigned long flags;