qcacmn: Add CDP Ops for peer unmap conf support
Add CDP Ops to support callbacks for peer unmap confirmation support. Change-Id: Ia530eeb5b6acd845b3c4cdd33108da806c5f33c5 CRs-Fixed: 2358061
This commit is contained in:
@@ -333,4 +333,55 @@ cdp_cfg_set_new_htt_msg_format(ol_txrx_soc_handle soc,
|
||||
soc->ops->cfg_ops->set_new_htt_msg_format(val);
|
||||
}
|
||||
|
||||
/**
|
||||
* cdp_cfg_set_peer_unmap_conf_support() - set peer unmap conf feature
|
||||
* @soc - datapath soc handle
|
||||
* @val - enable or disable peer unmap conf feature
|
||||
*
|
||||
* Set if peer unmap confirmation feature is supported by both FW and in INI
|
||||
*
|
||||
* return NONE
|
||||
*/
|
||||
static inline void
|
||||
cdp_cfg_set_peer_unmap_conf_support(ol_txrx_soc_handle soc, bool val)
|
||||
{
|
||||
if (!soc || !soc->ops) {
|
||||
QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_DEBUG,
|
||||
"%s invalid instance", __func__);
|
||||
QDF_BUG(0);
|
||||
return;
|
||||
}
|
||||
|
||||
if (!soc->ops->cfg_ops ||
|
||||
!soc->ops->cfg_ops->set_peer_unmap_conf_support)
|
||||
return;
|
||||
|
||||
soc->ops->cfg_ops->set_peer_unmap_conf_support(val);
|
||||
}
|
||||
|
||||
/**
|
||||
* cdp_cfg_get_peer_unmap_conf_support() - check peer unmap conf feature
|
||||
* @soc - datapath soc handle
|
||||
*
|
||||
* Check if peer unmap confirmation feature is enabled
|
||||
*
|
||||
* return true is peer unmap confirmation feature is enabled else false
|
||||
*/
|
||||
static inline bool
|
||||
cdp_cfg_get_peer_unmap_conf_support(ol_txrx_soc_handle soc)
|
||||
{
|
||||
if (!soc || !soc->ops) {
|
||||
QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_DEBUG,
|
||||
"%s invalid instance", __func__);
|
||||
QDF_BUG(0);
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!soc->ops->cfg_ops ||
|
||||
!soc->ops->cfg_ops->get_peer_unmap_conf_support)
|
||||
return false;
|
||||
|
||||
return soc->ops->cfg_ops->get_peer_unmap_conf_support();
|
||||
}
|
||||
|
||||
#endif /* _CDP_TXRX_CFG_H_ */
|
||||
|
@@ -702,6 +702,30 @@ cdp_peer_delete(ol_txrx_soc_handle soc, void *peer, uint32_t bitmap)
|
||||
soc->ops->cmn_drv_ops->txrx_peer_delete(peer, bitmap);
|
||||
}
|
||||
|
||||
static inline void
|
||||
cdp_peer_delete_sync(ol_txrx_soc_handle soc, void *peer,
|
||||
QDF_STATUS(*delete_cb)(
|
||||
uint8_t vdev_id,
|
||||
uint32_t peerid_cnt,
|
||||
uint16_t *peerid_list),
|
||||
uint32_t bitmap)
|
||||
{
|
||||
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->txrx_peer_delete_sync)
|
||||
return;
|
||||
|
||||
soc->ops->cmn_drv_ops->txrx_peer_delete_sync(peer,
|
||||
delete_cb,
|
||||
bitmap);
|
||||
}
|
||||
|
||||
static inline int
|
||||
cdp_set_monitor_mode(ol_txrx_soc_handle soc, struct cdp_vdev *vdev,
|
||||
uint8_t smart_monitor)
|
||||
|
@@ -372,6 +372,13 @@ typedef struct cdp_soc_t *ol_txrx_soc_handle;
|
||||
*/
|
||||
typedef void (*ol_txrx_vdev_delete_cb)(void *context);
|
||||
|
||||
/**
|
||||
* ol_txrx_peer_unmap_sync_cb - callback registered during peer detach sync
|
||||
*/
|
||||
typedef QDF_STATUS(*ol_txrx_peer_unmap_sync_cb)(uint8_t vdev_id,
|
||||
uint32_t peer_id_cnt,
|
||||
uint16_t *peer_id_list);
|
||||
|
||||
/**
|
||||
* ol_txrx_pkt_direction - Packet Direction
|
||||
* @rx_direction: rx path packet
|
||||
|
@@ -158,6 +158,12 @@ struct cdp_cmn_ops {
|
||||
|
||||
QDF_STATUS (*txrx_set_monitor_mode)(struct cdp_vdev *vdev,
|
||||
uint8_t smart_monitor);
|
||||
void (*txrx_peer_delete_sync)(void *peer,
|
||||
QDF_STATUS(*delete_cb)(
|
||||
uint8_t vdev_id,
|
||||
uint32_t peerid_cnt,
|
||||
uint16_t *peerid_list),
|
||||
uint32_t bitmap);
|
||||
|
||||
uint8_t (*txrx_get_pdev_id_frm_pdev)(struct cdp_pdev *pdev);
|
||||
|
||||
@@ -999,11 +1005,15 @@ struct cdp_pmf_ops {
|
||||
* @set_cfg_packet_log_enabled:
|
||||
* @cfg_attach:
|
||||
* @vdev_rx_set_intrabss_fwd:
|
||||
* @get_opmode:
|
||||
* @is_rx_fwd_disabled:
|
||||
* @tx_set_is_mgmt_over_wmi_enabled:
|
||||
* @is_high_latency:
|
||||
* @set_flow_control_parameters:
|
||||
* @set_flow_steering:
|
||||
* @set_ptp_rx_opt_enabled:
|
||||
* @set_new_htt_msg_format:
|
||||
* @set_peer_unmap_conf_support:
|
||||
* @get_peer_unmap_conf_support:
|
||||
*/
|
||||
struct cdp_cfg_ops {
|
||||
void (*set_cfg_rx_fwd_disabled)(struct cdp_cfg *cfg_pdev,
|
||||
@@ -1020,6 +1030,8 @@ struct cdp_cfg_ops {
|
||||
void (*set_flow_steering)(struct cdp_cfg *cfg_pdev, uint8_t val);
|
||||
void (*set_ptp_rx_opt_enabled)(struct cdp_cfg *cfg_pdev, uint8_t val);
|
||||
void (*set_new_htt_msg_format)(uint8_t val);
|
||||
void (*set_peer_unmap_conf_support)(bool val);
|
||||
bool (*get_peer_unmap_conf_support)(void);
|
||||
};
|
||||
|
||||
/**
|
||||
|
Reference in New Issue
Block a user