aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net
diff options
context:
space:
mode:
authorEliad Peller <eliad@wizery.com>2012-01-31 04:57:18 -0500
committerLuciano Coelho <coelho@ti.com>2012-02-15 01:38:31 -0500
commit9c531149af5b6e81d204c3f633827338ad9b327e (patch)
treedc16cd44bb020711701d9b3462cea4b87ab3ce8e /drivers/net
parentc059beb2adbf632748ac63ea829c69437575761a (diff)
wl12xx: fw api change - add role_id to tsf_info
The ACX_TSF_INFO command now takes role_id as param. change the struct accordingly, and pass the wlvif to the wl1271_acx_tsf_info() function. Signed-off-by: Eliad Peller <eliad@wizery.com> Signed-off-by: Luciano Coelho <coelho@ti.com>
Diffstat (limited to 'drivers/net')
-rw-r--r--drivers/net/wireless/wl12xx/acx.c7
-rw-r--r--drivers/net/wireless/wl12xx/acx.h9
-rw-r--r--drivers/net/wireless/wl12xx/main.c3
3 files changed, 13 insertions, 6 deletions
diff --git a/drivers/net/wireless/wl12xx/acx.c b/drivers/net/wireless/wl12xx/acx.c
index 7537c401a448..af2c3123d1d7 100644
--- a/drivers/net/wireless/wl12xx/acx.c
+++ b/drivers/net/wireless/wl12xx/acx.c
@@ -1459,9 +1459,10 @@ out:
1459 return ret; 1459 return ret;
1460} 1460}
1461 1461
1462int wl1271_acx_tsf_info(struct wl1271 *wl, u64 *mactime) 1462int wl12xx_acx_tsf_info(struct wl1271 *wl, struct wl12xx_vif *wlvif,
1463 u64 *mactime)
1463{ 1464{
1464 struct wl1271_acx_fw_tsf_information *tsf_info; 1465 struct wl12xx_acx_fw_tsf_information *tsf_info;
1465 int ret; 1466 int ret;
1466 1467
1467 tsf_info = kzalloc(sizeof(*tsf_info), GFP_KERNEL); 1468 tsf_info = kzalloc(sizeof(*tsf_info), GFP_KERNEL);
@@ -1470,6 +1471,8 @@ int wl1271_acx_tsf_info(struct wl1271 *wl, u64 *mactime)
1470 goto out; 1471 goto out;
1471 } 1472 }
1472 1473
1474 tsf_info->role_id = wlvif->role_id;
1475
1473 ret = wl1271_cmd_interrogate(wl, ACX_TSF_INFO, 1476 ret = wl1271_cmd_interrogate(wl, ACX_TSF_INFO,
1474 tsf_info, sizeof(*tsf_info)); 1477 tsf_info, sizeof(*tsf_info));
1475 if (ret < 0) { 1478 if (ret < 0) {
diff --git a/drivers/net/wireless/wl12xx/acx.h b/drivers/net/wireless/wl12xx/acx.h
index 69892b40c2df..a5bf761c83d2 100644
--- a/drivers/net/wireless/wl12xx/acx.h
+++ b/drivers/net/wireless/wl12xx/acx.h
@@ -995,15 +995,17 @@ struct wl1271_acx_ba_receiver_setup {
995 u8 padding[2]; 995 u8 padding[2];
996} __packed; 996} __packed;
997 997
998struct wl1271_acx_fw_tsf_information { 998struct wl12xx_acx_fw_tsf_information {
999 struct acx_header header; 999 struct acx_header header;
1000 1000
1001 u8 role_id;
1002 u8 padding1[3];
1001 __le32 current_tsf_high; 1003 __le32 current_tsf_high;
1002 __le32 current_tsf_low; 1004 __le32 current_tsf_low;
1003 __le32 last_bttt_high; 1005 __le32 last_bttt_high;
1004 __le32 last_tbtt_low; 1006 __le32 last_tbtt_low;
1005 u8 last_dtim_count; 1007 u8 last_dtim_count;
1006 u8 padding[3]; 1008 u8 padding2[3];
1007} __packed; 1009} __packed;
1008 1010
1009struct wl1271_acx_ps_rx_streaming { 1011struct wl1271_acx_ps_rx_streaming {
@@ -1296,7 +1298,8 @@ int wl12xx_acx_set_ba_initiator_policy(struct wl1271 *wl,
1296 struct wl12xx_vif *wlvif); 1298 struct wl12xx_vif *wlvif);
1297int wl12xx_acx_set_ba_receiver_session(struct wl1271 *wl, u8 tid_index, 1299int wl12xx_acx_set_ba_receiver_session(struct wl1271 *wl, u8 tid_index,
1298 u16 ssn, bool enable, u8 peer_hlid); 1300 u16 ssn, bool enable, u8 peer_hlid);
1299int wl1271_acx_tsf_info(struct wl1271 *wl, u64 *mactime); 1301int wl12xx_acx_tsf_info(struct wl1271 *wl, struct wl12xx_vif *wlvif,
1302 u64 *mactime);
1300int wl1271_acx_ps_rx_streaming(struct wl1271 *wl, struct wl12xx_vif *wlvif, 1303int wl1271_acx_ps_rx_streaming(struct wl1271 *wl, struct wl12xx_vif *wlvif,
1301 bool enable); 1304 bool enable);
1302int wl1271_acx_ap_max_tx_retry(struct wl1271 *wl, struct wl12xx_vif *wlvif); 1305int wl1271_acx_ap_max_tx_retry(struct wl1271 *wl, struct wl12xx_vif *wlvif);
diff --git a/drivers/net/wireless/wl12xx/main.c b/drivers/net/wireless/wl12xx/main.c
index d16ea7a528a2..1cdffa88eb02 100644
--- a/drivers/net/wireless/wl12xx/main.c
+++ b/drivers/net/wireless/wl12xx/main.c
@@ -4047,6 +4047,7 @@ static u64 wl1271_op_get_tsf(struct ieee80211_hw *hw,
4047{ 4047{
4048 4048
4049 struct wl1271 *wl = hw->priv; 4049 struct wl1271 *wl = hw->priv;
4050 struct wl12xx_vif *wlvif = wl12xx_vif_to_data(vif);
4050 u64 mactime = ULLONG_MAX; 4051 u64 mactime = ULLONG_MAX;
4051 int ret; 4052 int ret;
4052 4053
@@ -4061,7 +4062,7 @@ static u64 wl1271_op_get_tsf(struct ieee80211_hw *hw,
4061 if (ret < 0) 4062 if (ret < 0)
4062 goto out; 4063 goto out;
4063 4064
4064 ret = wl1271_acx_tsf_info(wl, &mactime); 4065 ret = wl12xx_acx_tsf_info(wl, wlvif, &mactime);
4065 if (ret < 0) 4066 if (ret < 0)
4066 goto out_sleep; 4067 goto out_sleep;
4067 4068