mwifiex: fix missing tsf_val TLV
authorBing Zhao <bzhao@marvell.com>
Mon, 2 May 2011 18:00:45 +0000 (11:00 -0700)
committerJohn W. Linville <linville@tuxdriver.com>
Mon, 2 May 2011 18:49:19 +0000 (14:49 -0400)
In mwifiex_cmd_append_tsf_tlv(), two tsf_val TLVs should be
filled in the buffer and then sent to firmware.

The missing first TLV for tsf_val is added back in this patch.

Signed-off-by: Bing Zhao <bzhao@marvell.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/mwifiex/join.c
drivers/net/wireless/mwifiex/main.h

index 042eb7701d04ed0bf48ac8dc0bf646cf2f7f2125..85fca5eb4195f5c9a7f268247b5dec685d212d82 100644 (file)
@@ -100,7 +100,7 @@ mwifiex_cmd_append_tsf_tlv(struct mwifiex_private *priv, u8 **buffer,
                           struct mwifiex_bssdescriptor *bss_desc)
 {
        struct mwifiex_ie_types_tsf_timestamp tsf_tlv;
-       long long tsf_val;
+       __le64 tsf_val;
 
        /* Null Checks */
        if (buffer == NULL)
@@ -116,6 +116,11 @@ mwifiex_cmd_append_tsf_tlv(struct mwifiex_private *priv, u8 **buffer,
        memcpy(*buffer, &tsf_tlv, sizeof(tsf_tlv.header));
        *buffer += sizeof(tsf_tlv.header);
 
+       /* TSF at the time when beacon/probe_response was received */
+       tsf_val = cpu_to_le64(bss_desc->network_tsf);
+       memcpy(*buffer, &tsf_val, sizeof(tsf_val));
+       *buffer += sizeof(tsf_val);
+
        memcpy(&tsf_val, bss_desc->time_stamp, sizeof(tsf_val));
 
        dev_dbg(priv->adapter->dev, "info: %s: TSF offset calc: %016llx - "
index 1b503038270e4aa96ccc08263bd5c152fff5eeb8..5043fcd22565135720f845950a7e96007c99ad0c 100644 (file)
@@ -280,7 +280,7 @@ struct mwifiex_bssdescriptor {
         * BAND_A(0X04): 'a' band
         */
        u16 bss_band;
-       long long network_tsf;
+       u64 network_tsf;
        u8 time_stamp[8];
        union ieee_types_phy_param_set phy_param_set;
        union ieee_types_ss_param_set ss_param_set;