qcacld-3.0: Program phymode before channel width for CSA handling

In CSA handling after vdev restarts, program peer_phymode before peer_ch_wd
to firmware, since firmware cannot handle higher channel width than current
peer_phymode.

Change-Id: I12ce1a6e6c0af758e1ecc9c1d272320e5e800983
CRs-Fixed: 2201944
This commit is contained in:
Naveen Rawat 2018-03-07 15:59:31 -08:00 • committed by nshrivas
commit d24c116d75

View file

@ -1237,6 +1237,14 @@ int wma_vdev_start_resp_handler(void *handle, uint8_t *cmd_param_info,
(iface->type == WMI_VDEV_TYPE_MONITOR))) ||
((resp_event->resp_type == WMI_VDEV_START_RESP_EVENT) &&
(iface->type == WMI_VDEV_TYPE_MONITOR))) {
/* for CSA case firmware expects phymode before ch_wd */
err = wma_set_peer_param(wma, iface->bssid,
WMI_PEER_PHYMODE, iface->chanmode,
resp_event->vdev_id);
WMA_LOGD("%s:vdev_id %d chanmode %d status %d",
__func__, resp_event->vdev_id,
iface->chanmode, err);
chanwidth = chanmode_to_chanwidth(iface->chanmode);
err = wma_set_peer_param(wma, iface->bssid,
WMI_PEER_CHWIDTH, chanwidth,
@ -1245,13 +1253,6 @@ int wma_vdev_start_resp_handler(void *handle, uint8_t *cmd_param_info,
__func__, resp_event->vdev_id,
chanwidth, err);
err = wma_set_peer_param(wma, iface->bssid,
WMI_PEER_PHYMODE, iface->chanmode,
resp_event->vdev_id);
WMA_LOGD("%s:vdev_id %d chanmode %d status %d",
__func__, resp_event->vdev_id,
iface->chanmode, err);
param.vdev_id = resp_event->vdev_id;
param.assoc_id = iface->aid;
status = wma_send_vdev_up_to_fw(wma, &param,