qcacmn: data-path changes for dynamic hw-mode config

This feature enables user to change HW mode dynamically
from DBS to DBS_SBS mode and vice-versa. Currently, HW
mode configuration is only possible through INI setting
requiring a subsequent reboot.

Relevant DP changes are:

1. Add API cdp_txrx_handle_pdev_status_change to pass
pdev 'up' or 'down' status to DP module
2. Add pdev-status check in dp_rx_process_invalid_peer
3. Add pdev-status check in dp_tx_comp_handler to free
buffer and release descriptor

Change-Id: I74b144abb1b0dc41a26a18ad28f872e6457e9653
CRs-fixed: 2490212
This commit is contained in:
Gyanranjan Hazarika
2019-06-05 00:43:38 -07:00
committed by nshrivas
parent c4fa4df717
commit e8047269ee
7 changed files with 70 additions and 4 deletions

View File

@@ -1962,6 +1962,32 @@ cdp_soc_map_pdev_to_lmac(ol_txrx_soc_handle soc, void *pdev_handle,
lmac_id);
}
/**
* cdp_txrx_set_pdev_status_down() - set pdev down/up status
* @soc: soc opaque handle
* @pdev_handle: data path pdev handle
* @is_pdev_down: pdev down/up status
*
* return: void
*/
static inline void cdp_txrx_set_pdev_status_down(ol_txrx_soc_handle soc,
struct cdp_pdev *pdev_handle,
bool is_pdev_down)
{
if (!soc || !soc->ops) {
QDF_TRACE(QDF_MODULE_ID_CDP, QDF_TRACE_LEVEL_DEBUG,
"%s: Invalid Instance:", __func__);
QDF_BUG(0);
return;
}
if (!soc->ops->cmn_drv_ops ||
!soc->ops->cmn_drv_ops->set_pdev_status_down)
return;
soc->ops->cmn_drv_ops->set_pdev_status_down(pdev_handle, is_pdev_down);
}
/**
* cdp_tx_send() - enqueue frame for transmission
* @soc: soc opaque handle