qcacmn: Add a cdp api to stop the ppe ds

Add a cdp api to stop the ppe direct switch
from control path

Change-Id: Id1c5d5c0e2b80d6fa0fa7b907fac133f815f9627
CRs-Fixed: 3356472
This commit is contained in:
Pavankumar Nandeshwar
2022-12-14 04:24:42 -08:00
committed by Madan Koyyalamudi
parent ea0e2133b3
commit 3548804a60
4 changed files with 37 additions and 1 deletions

View File

@@ -1717,6 +1717,25 @@ static inline void cdp_txrx_intr_detach(ol_txrx_soc_handle soc)
soc->ops->cmn_drv_ops->txrx_intr_detach(soc); soc->ops->cmn_drv_ops->txrx_intr_detach(soc);
} }
/**
* cdp_txrx_ppeds_stop(): function to stop ppeds
* @soc: soc handle
*/
static inline void cdp_txrx_ppeds_stop(ol_txrx_soc_handle soc)
{
if (!soc || !soc->ops) {
dp_cdp_debug("Invalid Instance:");
QDF_BUG(0);
return;
}
if (!soc->ops->cmn_drv_ops ||
!soc->ops->cmn_drv_ops->txrx_ppeds_stop)
return;
soc->ops->cmn_drv_ops->txrx_ppeds_stop(soc);
}
/** /**
* cdp_txrx_umac_reset_deinit(): De-initialize UMAC HW reset module * cdp_txrx_umac_reset_deinit(): De-initialize UMAC HW reset module
* @soc: soc handle * @soc: soc handle

View File

@@ -531,6 +531,7 @@ struct cdp_cmn_ops {
QDF_STATUS (*txrx_intr_attach)(struct cdp_soc_t *soc_handle); QDF_STATUS (*txrx_intr_attach)(struct cdp_soc_t *soc_handle);
void (*txrx_intr_detach)(struct cdp_soc_t *soc_handle); void (*txrx_intr_detach)(struct cdp_soc_t *soc_handle);
void (*txrx_ppeds_stop)(struct cdp_soc_t *soc_handle);
QDF_STATUS (*set_pn_check)(struct cdp_soc_t *soc_handle, QDF_STATUS (*set_pn_check)(struct cdp_soc_t *soc_handle,
uint8_t vdev_id, uint8_t *peermac, uint8_t vdev_id, uint8_t *peermac,
enum cdp_sec_type sec_type, enum cdp_sec_type sec_type,

View File

@@ -309,7 +309,8 @@ struct dp_soc_be {
struct dp_hw_cookie_conversion_t tx_cc_ctx[MAX_TXDESC_POOLS]; struct dp_hw_cookie_conversion_t tx_cc_ctx[MAX_TXDESC_POOLS];
struct dp_hw_cookie_conversion_t rx_cc_ctx[MAX_RXDESC_POOLS]; struct dp_hw_cookie_conversion_t rx_cc_ctx[MAX_RXDESC_POOLS];
#ifdef WLAN_SUPPORT_PPEDS #ifdef WLAN_SUPPORT_PPEDS
bool ppeds_int_mode_enabled; uint8_t ppeds_int_mode_enabled:1,
ppeds_stopped:1;
struct dp_srng reo2ppe_ring; struct dp_srng reo2ppe_ring;
struct dp_srng ppe2tcl_ring; struct dp_srng ppe2tcl_ring;
struct dp_srng ppe_release_ring; struct dp_srng ppe_release_ring;

View File

@@ -3481,6 +3481,20 @@ static inline bool dp_skip_rx_mon_ring_mask_set(struct dp_soc *soc)
} }
#endif #endif
/*
* dp_soc_ppeds_stop() - Stop PPE DS processing
* @txrx_soc: DP SOC handle
*
* Return: none
*/
static void dp_soc_ppeds_stop(struct cdp_soc_t *soc_handle)
{
struct dp_soc *soc = (struct dp_soc *)soc_handle;
if (soc->arch_ops.txrx_soc_ppeds_stop)
soc->arch_ops.txrx_soc_ppeds_stop(soc);
}
/* /*
* dp_soc_interrupt_detach() - Deregister any allocations done for interrupts * dp_soc_interrupt_detach() - Deregister any allocations done for interrupts
* @txrx_soc: DP SOC handle * @txrx_soc: DP SOC handle
@@ -13969,6 +13983,7 @@ static struct cdp_cmn_ops dp_ops_cmn = {
.display_stats = dp_txrx_dump_stats, .display_stats = dp_txrx_dump_stats,
.txrx_intr_attach = dp_soc_interrupt_attach_wrapper, .txrx_intr_attach = dp_soc_interrupt_attach_wrapper,
.txrx_intr_detach = dp_soc_interrupt_detach, .txrx_intr_detach = dp_soc_interrupt_detach,
.txrx_ppeds_stop = dp_soc_ppeds_stop,
.set_pn_check = dp_set_pn_check_wifi3, .set_pn_check = dp_set_pn_check_wifi3,
.set_key_sec_type = dp_set_key_sec_type_wifi3, .set_key_sec_type = dp_set_key_sec_type_wifi3,
.update_config_parameters = dp_update_config_parameters, .update_config_parameters = dp_update_config_parameters,