wl12xx: fw api change - add role_id to tsf_info
authorEliad Peller <eliad@wizery.com>
Tue, 31 Jan 2012 09:57:18 +0000 (11:57 +0200)
committerLuciano Coelho <coelho@ti.com>
Wed, 15 Feb 2012 06:38:31 +0000 (08:38 +0200)
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>
drivers/net/wireless/wl12xx/acx.c
drivers/net/wireless/wl12xx/acx.h
drivers/net/wireless/wl12xx/main.c

index 7537c401a4487174a0d50680b1d84e68c3e16675..af2c3123d1d710de9487d80bce8d6c542b945f2d 100644 (file)
@@ -1459,9 +1459,10 @@ out:
        return ret;
 }
 
-int wl1271_acx_tsf_info(struct wl1271 *wl, u64 *mactime)
+int wl12xx_acx_tsf_info(struct wl1271 *wl, struct wl12xx_vif *wlvif,
+                       u64 *mactime)
 {
-       struct wl1271_acx_fw_tsf_information *tsf_info;
+       struct wl12xx_acx_fw_tsf_information *tsf_info;
        int ret;
 
        tsf_info = kzalloc(sizeof(*tsf_info), GFP_KERNEL);
@@ -1470,6 +1471,8 @@ int wl1271_acx_tsf_info(struct wl1271 *wl, u64 *mactime)
                goto out;
        }
 
+       tsf_info->role_id = wlvif->role_id;
+
        ret = wl1271_cmd_interrogate(wl, ACX_TSF_INFO,
                                     tsf_info, sizeof(*tsf_info));
        if (ret < 0) {
index 69892b40c2dfc850cd44b434a155c5ce81da4c6c..a5bf761c83d2e4c2e691c8cf325b0e0abaf47902 100644 (file)
@@ -995,15 +995,17 @@ struct wl1271_acx_ba_receiver_setup {
        u8 padding[2];
 } __packed;
 
-struct wl1271_acx_fw_tsf_information {
+struct wl12xx_acx_fw_tsf_information {
        struct acx_header header;
 
+       u8 role_id;
+       u8 padding1[3];
        __le32 current_tsf_high;
        __le32 current_tsf_low;
        __le32 last_bttt_high;
        __le32 last_tbtt_low;
        u8 last_dtim_count;
-       u8 padding[3];
+       u8 padding2[3];
 } __packed;
 
 struct wl1271_acx_ps_rx_streaming {
@@ -1296,7 +1298,8 @@ int wl12xx_acx_set_ba_initiator_policy(struct wl1271 *wl,
                                       struct wl12xx_vif *wlvif);
 int wl12xx_acx_set_ba_receiver_session(struct wl1271 *wl, u8 tid_index,
                                       u16 ssn, bool enable, u8 peer_hlid);
-int wl1271_acx_tsf_info(struct wl1271 *wl, u64 *mactime);
+int wl12xx_acx_tsf_info(struct wl1271 *wl, struct wl12xx_vif *wlvif,
+                       u64 *mactime);
 int wl1271_acx_ps_rx_streaming(struct wl1271 *wl, struct wl12xx_vif *wlvif,
                               bool enable);
 int wl1271_acx_ap_max_tx_retry(struct wl1271 *wl, struct wl12xx_vif *wlvif);
index d16ea7a528a2154bab20f4e154a2dc5cf559040e..1cdffa88eb02bd7efeaacf0a779c261a41170c22 100644 (file)
@@ -4047,6 +4047,7 @@ static u64 wl1271_op_get_tsf(struct ieee80211_hw *hw,
 {
 
        struct wl1271 *wl = hw->priv;
+       struct wl12xx_vif *wlvif = wl12xx_vif_to_data(vif);
        u64 mactime = ULLONG_MAX;
        int ret;
 
@@ -4061,7 +4062,7 @@ static u64 wl1271_op_get_tsf(struct ieee80211_hw *hw,
        if (ret < 0)
                goto out;
 
-       ret = wl1271_acx_tsf_info(wl, &mactime);
+       ret = wl12xx_acx_tsf_info(wl, wlvif, &mactime);
        if (ret < 0)
                goto out_sleep;