summaryrefslogtreecommitdiff
path: root/drivers/net/wireless/mwifiex/sta_rx.c
diff options
context:
space:
mode:
authorAvinash Patil <patila@marvell.com>2014-11-13 21:54:16 +0530
committerJohn W. Linville <linville@tuxdriver.com>2014-11-17 15:32:14 -0500
commit9927baa3c7244b1f80582fc7360a7662bcb648ba (patch)
tree83cf97d5dfa4cf33c6a86389f780602ac87789d9 /drivers/net/wireless/mwifiex/sta_rx.c
parent16fa5e659f3c3b2a5edfd0a40fc8d0116d9cd52b (diff)
downloadlinux-next-9927baa3c7244b1f80582fc7360a7662bcb648ba.tar.gz
mwifiex: add auto TDLS support
This patch adds auto TDLS support to mwifiex. Auto TDLS functionality works as follows: 1. Whenever userspace application has triggered TDLS connection with any peer, driver would store this peer mac address details in its database. 2. After this driver whenever driver receives packet on direct link, it would store rssi and timestamp in peer information. 3. Whenever a packet is to be transmitted to non-AP peer in station mode, driver would check if TDLS link can be established by looking at peer RSSI information. Driver would initiate TDLS setup in such cases. 4. Periodic timer is used for updating peer information. 5. Auto TDLS peer list & timer are cleared during disconnection or driver unload. Signed-off-by: Avinash Patil <patila@marvell.com> Signed-off-by: Cathy Luo <cluo@marvell.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/mwifiex/sta_rx.c')
-rw-r--r--drivers/net/wireless/mwifiex/sta_rx.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/net/wireless/mwifiex/sta_rx.c b/drivers/net/wireless/mwifiex/sta_rx.c
index 9ceb1dbe34c5..c2ad3b63ae70 100644
--- a/drivers/net/wireless/mwifiex/sta_rx.c
+++ b/drivers/net/wireless/mwifiex/sta_rx.c
@@ -232,6 +232,9 @@ int mwifiex_process_sta_rx_packet(struct mwifiex_private *priv,
if (sta_ptr)
sta_ptr->rx_seq[local_rx_pd->priority] =
le16_to_cpu(local_rx_pd->seq_num);
+ mwifiex_auto_tdls_update_peer_signal(priv, ta,
+ local_rx_pd->snr,
+ local_rx_pd->nf);
}
} else {
if (rx_pkt_type != PKT_TYPE_BAR)