qcacmn: Setup DS VP on FW recovery

On FW recovery, do not allocate a new VP and use
the existing profile to setup DS VP

Change-Id: I330613fa104c51becc1018750edf91d8055edb01
CRs-Fixed: 3427382
This commit is contained in:
Parikshit Gune
2023-03-07 22:55:46 +05:30
committed by Madan Koyyalamudi
parent f453c827cb
commit ba18ce8164
3 changed files with 31 additions and 0 deletions

View File

@@ -2356,6 +2356,9 @@ struct cdp_sawf_ops {
#ifdef WLAN_SUPPORT_PPEDS #ifdef WLAN_SUPPORT_PPEDS
struct cdp_ppeds_txrx_ops { struct cdp_ppeds_txrx_ops {
QDF_STATUS QDF_STATUS
(*ppeds_vp_setup_recovery)(struct cdp_soc_t *soc,
uint8_t vdev_id, uint16_t profile_idx);
QDF_STATUS
(*ppeds_entry_attach)(struct cdp_soc_t *soc, (*ppeds_entry_attach)(struct cdp_soc_t *soc,
uint8_t vdev_id, void *vpai, uint8_t vdev_id, void *vpai,
int32_t *ppe_vp_num, int32_t *ppe_vp_num,

View File

@@ -17,6 +17,33 @@
#ifndef _CDP_TXRX_PPE_H_ #ifndef _CDP_TXRX_PPE_H_
#define _CDP_TXRX_PPE_H_ #define _CDP_TXRX_PPE_H_
/**
* cdp_ppesds_vp_setup_fw_recovery() - Setup DS VP on FW recovery.
* @soc: data path soc handle
* @vdev_id: vdev id
* @profile_idx: DS profile index.
*
* return: qdf_status where DS VP setup is done or not.
*/
static inline
QDF_STATUS cdp_ppesds_vp_setup_fw_recovery(struct cdp_soc_t *soc,
uint8_t vdev_id,
uint16_t profile_idx)
{
if (!soc || !soc->ops || !soc->ops->ppeds_ops) {
QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_FATAL,
"%s invalid instance", __func__);
return QDF_STATUS_E_NOSUPPORT;
}
if (soc->ops->ppeds_ops->ppeds_vp_setup_recovery)
return soc->ops->ppeds_ops->ppeds_vp_setup_recovery(soc,
vdev_id,
profile_idx);
return QDF_STATUS_E_INVAL;
}
/** /**
* cdp_ppesds_entry_attach() - attach the ppe vp interface. * cdp_ppesds_entry_attach() - attach the ppe vp interface.
* @soc: data path soc handle * @soc: data path soc handle

View File

@@ -74,6 +74,7 @@ static struct cdp_ppeds_txrx_ops dp_ops_ppeds_be = {
.ppeds_update_int_pri2tid = dp_ppeds_update_int_pri2tid_be, .ppeds_update_int_pri2tid = dp_ppeds_update_int_pri2tid_be,
.ppeds_entry_dump = dp_ppeds_dump_ppe_vp_tbl_be, .ppeds_entry_dump = dp_ppeds_dump_ppe_vp_tbl_be,
.ppeds_enable_pri2tid = dp_ppeds_vdev_enable_pri2tid_be, .ppeds_enable_pri2tid = dp_ppeds_vdev_enable_pri2tid_be,
.ppeds_vp_setup_recovery = dp_ppeds_vp_setup_on_fw_recovery,
}; };
static void dp_ppeds_rings_status(struct dp_soc *soc) static void dp_ppeds_rings_status(struct dp_soc *soc)