qcacmn: Split dp_rx_pdev_attach and dp_rx_pdev_detach
Split dp_rx_pdev_attach into dp_rx_pdev_desc_pool_alloc, dp_rx_pdev_desc_pool_init, dp_rx_pdev_buffers_alloc and dp_rx_pdev_detach into dp_rx_pdev_desc_pool_free, dp_rx _pdev_desc_pool_deinit, dp_rx_pdev_buffers_free APIs This split is made because dp_pdev_init is introduced as part of this FR and these APIs will be called from dp_pdev_init/dp_pdev_deinit or dp_pdev_attach/dp_pdev_ detach accordingly to maintain the symmetry to DP init and deinit path Change-Id: Ib543ddae90b90f4706004080b1f2b7d0e5cfbfbc CRs-Fixed: 2663595
Этот коммит содержится в:
@@ -4544,7 +4544,8 @@ static void dp_pdev_deinit(struct cdp_pdev *txrx_pdev, int force)
|
||||
dp_pktlogmod_exit(pdev);
|
||||
|
||||
dp_rx_fst_detach(soc, pdev);
|
||||
dp_rx_pdev_detach(pdev);
|
||||
dp_rx_pdev_buffers_free(pdev);
|
||||
dp_rx_pdev_desc_pool_deinit(pdev);
|
||||
dp_rx_pdev_mon_detach(pdev);
|
||||
dp_neighbour_peers_detach(pdev);
|
||||
qdf_spinlock_destroy(&pdev->tx_mutex);
|
||||
@@ -4652,7 +4653,7 @@ static void dp_pdev_detach(struct cdp_pdev *txrx_pdev, int force)
|
||||
struct dp_pdev *pdev = (struct dp_pdev *)txrx_pdev;
|
||||
struct dp_soc *soc = pdev->soc;
|
||||
struct rx_desc_pool *rx_desc_pool;
|
||||
int mac_id, mac_for_pdev;
|
||||
int mac_id;
|
||||
int lmac_id;
|
||||
|
||||
if (wlan_cfg_per_pdev_tx_ring(soc->wlan_cfg_ctx)) {
|
||||
@@ -4668,6 +4669,7 @@ static void dp_pdev_detach(struct cdp_pdev *txrx_pdev, int force)
|
||||
|
||||
dp_mon_link_free(pdev);
|
||||
|
||||
dp_rx_pdev_detach(pdev);
|
||||
/* Cleanup per PDEV REO rings if configured */
|
||||
if (wlan_cfg_per_pdev_rx_ring(soc->wlan_cfg_ctx)) {
|
||||
wlan_minidump_remove(
|
||||
@@ -4691,21 +4693,13 @@ static void dp_pdev_detach(struct cdp_pdev *txrx_pdev, int force)
|
||||
RXDMA_DST, 0);
|
||||
|
||||
if (dp_is_soc_reinit(soc)) {
|
||||
mac_for_pdev =
|
||||
dp_get_lmac_id_for_pdev_id(soc, mac_id,
|
||||
pdev->pdev_id);
|
||||
rx_desc_pool = &soc->rx_desc_status[mac_for_pdev];
|
||||
rx_desc_pool = &soc->rx_desc_status[lmac_id];
|
||||
dp_rx_desc_pool_free(soc, rx_desc_pool);
|
||||
rx_desc_pool = &soc->rx_desc_mon[mac_for_pdev];
|
||||
rx_desc_pool = &soc->rx_desc_mon[lmac_id];
|
||||
dp_rx_desc_pool_free(soc, rx_desc_pool);
|
||||
}
|
||||
}
|
||||
|
||||
if (dp_is_soc_reinit(soc)) {
|
||||
rx_desc_pool = &soc->rx_desc_buf[pdev->lmac_id];
|
||||
dp_rx_desc_pool_free(soc, rx_desc_pool);
|
||||
}
|
||||
|
||||
/* only do soc common cleanup when last pdev do detach */
|
||||
if (!(soc->pdev_count))
|
||||
dp_soc_cmn_cleanup(soc);
|
||||
|
Ссылка в новой задаче
Block a user