diff options
author | Eliad Peller <eliad@wizery.com> | 2012-01-31 04:57:18 -0500 |
---|---|---|
committer | Luciano Coelho <coelho@ti.com> | 2012-02-15 01:38:31 -0500 |
commit | 9c531149af5b6e81d204c3f633827338ad9b327e (patch) | |
tree | dc16cd44bb020711701d9b3462cea4b87ab3ce8e /drivers/net | |
parent | c059beb2adbf632748ac63ea829c69437575761a (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.c | 7 | ||||
-rw-r--r-- | drivers/net/wireless/wl12xx/acx.h | 9 | ||||
-rw-r--r-- | drivers/net/wireless/wl12xx/main.c | 3 |
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 | ||
1462 | int wl1271_acx_tsf_info(struct wl1271 *wl, u64 *mactime) | 1462 | int 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 | ||
998 | struct wl1271_acx_fw_tsf_information { | 998 | struct 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 | ||
1009 | struct wl1271_acx_ps_rx_streaming { | 1011 | struct 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); |
1297 | int wl12xx_acx_set_ba_receiver_session(struct wl1271 *wl, u8 tid_index, | 1299 | int 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); |
1299 | int wl1271_acx_tsf_info(struct wl1271 *wl, u64 *mactime); | 1301 | int wl12xx_acx_tsf_info(struct wl1271 *wl, struct wl12xx_vif *wlvif, |
1302 | u64 *mactime); | ||
1300 | int wl1271_acx_ps_rx_streaming(struct wl1271 *wl, struct wl12xx_vif *wlvif, | 1303 | int wl1271_acx_ps_rx_streaming(struct wl1271 *wl, struct wl12xx_vif *wlvif, |
1301 | bool enable); | 1304 | bool enable); |
1302 | int wl1271_acx_ap_max_tx_retry(struct wl1271 *wl, struct wl12xx_vif *wlvif); | 1305 | int 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 | ||