diff options
| author | Sandeep Puligilla <spuligil@codeaurora.org> | 2017-02-07 18:07:14 -0800 |
|---|---|---|
| committer | qcabuildsw <qcabuildsw@localhost> | 2017-02-08 02:50:43 -0800 |
| commit | 1f36781d631dcc5a45dc0041e2eef5edaad1fd94 (patch) | |
| tree | 19a56b99174bcdbbc68e4f1e4c22b5857b9061ce | |
| parent | d37cf66b721485a86419e9d02703a79126ab70ef (diff) | |
qcacld-3.0: Don't fill the vdev response wait queue for set channel command
In monitor mode, wma_set_channel api is filling the
vdev response wait queue before sending the WMI_PDEV_SET_CHANNEL_CMDID
command to firmware and expecting it will be dequeued after response
from firmware but firmware doesn't send any response
to PDEV set channel command which is causing WMA timeout.
Don't fill the vdev request wait queue for WMI_PDEV_SET_CHANNEL_CMDID
command as firmware doesn't send any response.
Change-Id: If1849440143ed671e0261685a53b8a86f4f8e29c
CRs-Fixed: 2003707
| -rw-r--r-- | core/wma/src/wma_scan_roam.c | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/core/wma/src/wma_scan_roam.c b/core/wma/src/wma_scan_roam.c index fd496c91e244..4b4e66a1be77 100644 --- a/core/wma/src/wma_scan_roam.c +++ b/core/wma/src/wma_scan_roam.c @@ -2916,15 +2916,6 @@ void wma_set_channel(tp_wma_handle wma, tpSwitchChannelParams params) qdf_mem_zero(&req, sizeof(req)); req.vdev_id = vdev_id; - msg = wma_fill_vdev_req(wma, req.vdev_id, WMA_CHNL_SWITCH_REQ, - WMA_TARGET_REQ_TYPE_VDEV_START, params, - WMA_VDEV_START_REQUEST_TIMEOUT); - if (!msg) { - WMA_LOGP("%s: Failed to fill channel switch request for vdev %d", - __func__, req.vdev_id); - status = QDF_STATUS_E_NOMEM; - goto send_resp; - } req.chan = params->channelNumber; req.chan_width = params->ch_width; @@ -2971,6 +2962,16 @@ void wma_set_channel(tp_wma_handle wma, tpSwitchChannelParams params) ol_htt_mon_note_chan(pdev, req.chan); } else { + + msg = wma_fill_vdev_req(wma, req.vdev_id, WMA_CHNL_SWITCH_REQ, + WMA_TARGET_REQ_TYPE_VDEV_START, params, + WMA_VDEV_START_REQUEST_TIMEOUT); + if (!msg) { + WMA_LOGP("%s: Failed to fill channel switch request for vdev %d", + __func__, req.vdev_id); + status = QDF_STATUS_E_NOMEM; + goto send_resp; + } status = wma_vdev_start(wma, &req, wma->interfaces[req.vdev_id].is_channel_switch); if (status != QDF_STATUS_SUCCESS) { |
