qcacld-3.0: Check for channel state before blocking the transmissions
Ensure that the channel state is checked to see if it is a DFS channel before stopping the transmission on the interface. Currently, on radar detection, transmission is getting stopped for all the SAP/P2P-GO interfaces. This affects SAP+SAP case where one SAP is on a DFS channel and the other SAP is on a non-DFS channel. On radar detection, the transmission is getting stopped for both the SAP interfaces. But, the transmission should be stopped only for the interface that is operating on DFS channel. Fix the same by checking the channel state before stopping the transmissions. Change-Id: I564980534bc0d943db8da300439e1d072715f462 CRs-Fixed: 1061559
Este cometimento está contido em:

cometido por
qcabuildsw

ascendente
1015f04c1d
cometimento
11ecd55d23
@@ -1487,6 +1487,7 @@ bool hdd_dfs_indicate_radar(void *context, void *param)
|
||||
hdd_adapter_list_node_t *adapterNode = NULL, *pNext = NULL;
|
||||
hdd_adapter_t *adapter;
|
||||
QDF_STATUS status;
|
||||
hdd_ap_ctx_t *ap_ctx;
|
||||
|
||||
if (!hdd_ctx || !hdd_radar_event ||
|
||||
hdd_ctx->config->disableDFSChSwitch)
|
||||
@@ -1504,10 +1505,15 @@ bool hdd_dfs_indicate_radar(void *context, void *param)
|
||||
status = hdd_get_front_adapter(hdd_ctx, &adapterNode);
|
||||
while (NULL != adapterNode && QDF_STATUS_SUCCESS == status) {
|
||||
adapter = adapterNode->pAdapter;
|
||||
if (QDF_SAP_MODE == adapter->device_mode ||
|
||||
QDF_P2P_GO_MODE == adapter->device_mode) {
|
||||
ap_ctx = WLAN_HDD_GET_AP_CTX_PTR(adapter);
|
||||
if ((QDF_SAP_MODE == adapter->device_mode ||
|
||||
QDF_P2P_GO_MODE == adapter->device_mode) &&
|
||||
(CHANNEL_STATE_DFS ==
|
||||
cds_get_channel_state(ap_ctx->operatingChannel))) {
|
||||
WLAN_HDD_GET_AP_CTX_PTR(adapter)->
|
||||
dfs_cac_block_tx = true;
|
||||
hdd_info("tx blocked for session:%d",
|
||||
adapter->sessionId);
|
||||
}
|
||||
|
||||
status = hdd_get_next_adapter(hdd_ctx,
|
||||
|
Criar uma nova questão referindo esta
Bloquear um utilizador