aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/ti
diff options
context:
space:
mode:
authorArik Nemtsov <arik@wizery.com>2011-12-13 05:15:09 -0500
committerLuciano Coelho <coelho@ti.com>2012-04-12 01:44:01 -0400
commit8a9affc08d676a9fe627361ab6767cdec0740af3 (patch)
tree0ba701f39a5ac4cec80e033cf3c83131fc0d168d /drivers/net/wireless/ti
parent9d68d1eea7fb4d05b5bd037da6a66329d640b2f1 (diff)
wlcore/wl12xx: add hw op for vif init
Add an op for family-specific vif initialization. Currently unused, but will be needed when wl18xx support is implemented. Signed-off-by: Arik Nemtsov <arik@wizery.com> Signed-off-by: Luciano Coelho <coelho@ti.com>
Diffstat (limited to 'drivers/net/wireless/ti')
-rw-r--r--drivers/net/wireless/ti/wl12xx/main.c1
-rw-r--r--drivers/net/wireless/ti/wlcore/hw_ops.h9
-rw-r--r--drivers/net/wireless/ti/wlcore/init.c5
-rw-r--r--drivers/net/wireless/ti/wlcore/wlcore.h1
4 files changed, 16 insertions, 0 deletions
diff --git a/drivers/net/wireless/ti/wl12xx/main.c b/drivers/net/wireless/ti/wl12xx/main.c
index 9b2f40cd58d7..564ca914bfcf 100644
--- a/drivers/net/wireless/ti/wl12xx/main.c
+++ b/drivers/net/wireless/ti/wl12xx/main.c
@@ -915,6 +915,7 @@ static struct wlcore_ops wl12xx_ops = {
915 .tx_immediate_compl = NULL, 915 .tx_immediate_compl = NULL,
916 .tx_delayed_compl = wl12xx_tx_delayed_compl, 916 .tx_delayed_compl = wl12xx_tx_delayed_compl,
917 .hw_init = wl12xx_hw_init, 917 .hw_init = wl12xx_hw_init,
918 .init_vif = NULL,
918 .get_pg_ver = wl12xx_get_pg_ver, 919 .get_pg_ver = wl12xx_get_pg_ver,
919 .get_mac = wl12xx_get_mac, 920 .get_mac = wl12xx_get_mac,
920}; 921};
diff --git a/drivers/net/wireless/ti/wlcore/hw_ops.h b/drivers/net/wireless/ti/wlcore/hw_ops.h
index 9fc64295293f..6fc71430e963 100644
--- a/drivers/net/wireless/ti/wlcore/hw_ops.h
+++ b/drivers/net/wireless/ti/wlcore/hw_ops.h
@@ -93,4 +93,13 @@ static inline void wlcore_hw_tx_immediate_compl(struct wl1271 *wl)
93 wl->ops->tx_immediate_compl(wl); 93 wl->ops->tx_immediate_compl(wl);
94} 94}
95 95
96static inline int
97wlcore_hw_init_vif(struct wl1271 *wl, struct wl12xx_vif *wlvif)
98{
99 if (wl->ops->init_vif)
100 return wl->ops->init_vif(wl, wlvif);
101
102 return 0;
103}
104
96#endif 105#endif
diff --git a/drivers/net/wireless/ti/wlcore/init.c b/drivers/net/wireless/ti/wlcore/init.c
index afe4f753f706..9f89255eb6e6 100644
--- a/drivers/net/wireless/ti/wlcore/init.c
+++ b/drivers/net/wireless/ti/wlcore/init.c
@@ -32,6 +32,7 @@
32#include "cmd.h" 32#include "cmd.h"
33#include "tx.h" 33#include "tx.h"
34#include "io.h" 34#include "io.h"
35#include "hw_ops.h"
35 36
36int wl1271_init_templates_config(struct wl1271 *wl) 37int wl1271_init_templates_config(struct wl1271 *wl)
37{ 38{
@@ -638,6 +639,10 @@ int wl1271_init_vif_specific(struct wl1271 *wl, struct ieee80211_vif *vif)
638 if (ret < 0) 639 if (ret < 0)
639 return ret; 640 return ret;
640 641
642 ret = wlcore_hw_init_vif(wl, wlvif);
643 if (ret < 0)
644 return ret;
645
641 return 0; 646 return 0;
642} 647}
643 648
diff --git a/drivers/net/wireless/ti/wlcore/wlcore.h b/drivers/net/wireless/ti/wlcore/wlcore.h
index 91ccd1e36389..7e2881d38860 100644
--- a/drivers/net/wireless/ti/wlcore/wlcore.h
+++ b/drivers/net/wireless/ti/wlcore/wlcore.h
@@ -54,6 +54,7 @@ struct wlcore_ops {
54 void (*tx_delayed_compl)(struct wl1271 *wl); 54 void (*tx_delayed_compl)(struct wl1271 *wl);
55 void (*tx_immediate_compl)(struct wl1271 *wl); 55 void (*tx_immediate_compl)(struct wl1271 *wl);
56 int (*hw_init)(struct wl1271 *wl); 56 int (*hw_init)(struct wl1271 *wl);
57 int (*init_vif)(struct wl1271 *wl, struct wl12xx_vif *wlvif);
57 s8 (*get_pg_ver)(struct wl1271 *wl); 58 s8 (*get_pg_ver)(struct wl1271 *wl);
58 void (*get_mac)(struct wl1271 *wl); 59 void (*get_mac)(struct wl1271 *wl);
59}; 60};