|
@@ -2361,6 +2361,7 @@ QDF_STATUS wma_vdev_start(tp_wma_handle wma,
|
|
|
uint16_t bw_val;
|
|
|
struct wma_txrx_node *iface = &wma->interfaces[req->vdev_id];
|
|
|
struct wma_target_req *req_msg;
|
|
|
+ uint32_t chan_mode;
|
|
|
|
|
|
mac_ctx = cds_get_context(QDF_MODULE_ID_PE);
|
|
|
if (mac_ctx == NULL) {
|
|
@@ -2368,6 +2369,14 @@ QDF_STATUS wma_vdev_start(tp_wma_handle wma,
|
|
|
return QDF_STATUS_E_FAILURE;
|
|
|
}
|
|
|
|
|
|
+ chan_mode = wma_chan_phy_mode(req->chan, req->chan_width,
|
|
|
+ req->dot11_mode);
|
|
|
+
|
|
|
+ if (chan_mode == MODE_UNKNOWN) {
|
|
|
+ WMA_LOGE("%s: invalid phy mode!", __func__);
|
|
|
+ return QDF_STATUS_E_FAILURE;
|
|
|
+ }
|
|
|
+
|
|
|
if (!isRestart &&
|
|
|
qdf_atomic_read(&iface->bss_status) == WMA_BSS_STATUS_STARTED) {
|
|
|
req_msg = wma_find_vdev_req(wma, req->vdev_id,
|
|
@@ -2393,8 +2402,8 @@ QDF_STATUS wma_vdev_start(tp_wma_handle wma,
|
|
|
|
|
|
/* Fill channel info */
|
|
|
params.chan_freq = cds_chan_to_freq(req->chan);
|
|
|
- params.chan_mode = wma_chan_phy_mode(req->chan, req->chan_width,
|
|
|
- req->dot11_mode);
|
|
|
+ params.chan_mode = chan_mode;
|
|
|
+
|
|
|
intr[params.vdev_id].chanmode = params.chan_mode;
|
|
|
intr[params.vdev_id].ht_capable = req->ht_capable;
|
|
|
intr[params.vdev_id].vht_capable = req->vht_capable;
|