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);
|
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_ */
|
#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);
|
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
|
static inline int
|
||||||
cdp_set_monitor_mode(ol_txrx_soc_handle soc, struct cdp_vdev *vdev,
|
cdp_set_monitor_mode(ol_txrx_soc_handle soc, struct cdp_vdev *vdev,
|
||||||
uint8_t smart_monitor)
|
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);
|
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
|
* ol_txrx_pkt_direction - Packet Direction
|
||||||
* @rx_direction: rx path packet
|
* @rx_direction: rx path packet
|
||||||
|
@@ -158,6 +158,12 @@ struct cdp_cmn_ops {
|
|||||||
|
|
||||||
QDF_STATUS (*txrx_set_monitor_mode)(struct cdp_vdev *vdev,
|
QDF_STATUS (*txrx_set_monitor_mode)(struct cdp_vdev *vdev,
|
||||||
uint8_t smart_monitor);
|
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);
|
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:
|
* @set_cfg_packet_log_enabled:
|
||||||
* @cfg_attach:
|
* @cfg_attach:
|
||||||
* @vdev_rx_set_intrabss_fwd:
|
* @vdev_rx_set_intrabss_fwd:
|
||||||
* @get_opmode:
|
|
||||||
* @is_rx_fwd_disabled:
|
* @is_rx_fwd_disabled:
|
||||||
* @tx_set_is_mgmt_over_wmi_enabled:
|
* @tx_set_is_mgmt_over_wmi_enabled:
|
||||||
* @is_high_latency:
|
* @is_high_latency:
|
||||||
* @set_flow_control_parameters:
|
* @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 {
|
struct cdp_cfg_ops {
|
||||||
void (*set_cfg_rx_fwd_disabled)(struct cdp_cfg *cfg_pdev,
|
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_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_ptp_rx_opt_enabled)(struct cdp_cfg *cfg_pdev, uint8_t val);
|
||||||
void (*set_new_htt_msg_format)(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