OSDN Git Service

ath10k: Fix p2p_listen for wcn3990
authorRakesh Pillai <pillair@codeaurora.org>
Fri, 18 Aug 2017 15:14:51 +0000 (20:44 +0530)
committerGerrit - the friendly Code Review server <code-review@localhost>
Tue, 26 Sep 2017 06:41:37 +0000 (23:41 -0700)
p2p_listen not working due to inncorrect scan flags
passed to firmware.

Disable the fitlering out of probe request flag in
scan flag during remain on channel in p2p listen.

CRs-Fixed: 2095628
Change-Id: Ie39222c487160ba4001771fc8e1c6f6f161dfb65
Signed-off-by: Rakesh Pillai <pillair@codeaurora.org>
drivers/net/wireless/ath/ath10k/mac.c
drivers/net/wireless/ath/ath10k/wmi-tlv.c
drivers/net/wireless/ath/ath10k/wmi.c

index 4bb14d4..87058dc 100644 (file)
@@ -6419,7 +6419,10 @@ static int ath10k_remain_on_channel(struct ieee80211_hw *hw,
        arg.dwell_time_passive = scan_time_msec;
        arg.max_scan_time = scan_time_msec;
        arg.scan_ctrl_flags |= WMI_SCAN_FLAG_PASSIVE;
-       arg.scan_ctrl_flags |= WMI_SCAN_FILTER_PROBE_REQ;
+       if (QCA_REV_WCN3990(ar))
+               arg.scan_ctrl_flags &= ~WMI_SCAN_FILTER_PROBE_REQ;
+       else
+               arg.scan_ctrl_flags |= WMI_SCAN_FILTER_PROBE_REQ;
        arg.burst_duration_ms = duration;
 
        ret = ath10k_start_scan(ar, &arg);
index 07b15f4..f536044 100644 (file)
@@ -1553,11 +1553,7 @@ ath10k_wmi_tlv_op_gen_start_scan(struct ath10k *ar,
        cmd->ie_len = __cpu_to_le32(arg->ie_len);
        cmd->num_probes = __cpu_to_le32(3);
 
-       if (QCA_REV_WCN3990(ar)) {
-               cmd->common.scan_ctrl_flags = ar->fw_flags->flags;
-               cmd->common.scan_ctrl_flags |=
-                                       __cpu_to_le32(WMI_SCAN_CHAN_STAT_EVENT);
-       } else {
+       if (!QCA_REV_WCN3990(ar)) {
                cmd->common.scan_ctrl_flags ^=
                        __cpu_to_le32(WMI_SCAN_FILTER_PROBE_REQ);
        }
index d6ec0de..86aedff 100644 (file)
@@ -6192,6 +6192,8 @@ void ath10k_wmi_start_scan_init(struct ath10k *ar,
                | WMI_SCAN_EVENT_BSS_CHANNEL
                | WMI_SCAN_EVENT_FOREIGN_CHANNEL
                | WMI_SCAN_EVENT_DEQUEUED;
+       if (QCA_REV_WCN3990(ar))
+               arg->scan_ctrl_flags = ar->fw_flags->flags;
        arg->scan_ctrl_flags |= WMI_SCAN_CHAN_STAT_EVENT;
        arg->n_bssids = 1;
        arg->bssids[0].bssid = "\xFF\xFF\xFF\xFF\xFF\xFF";