qcacmn: Modify set 2 of ctrl_ops in dp to for umac-dp decoupling
Change set 2 of ctrl_ops APIs to replace pdev, vdev and peer dp handles with pdev_id, vdev_id and peer mac address along with dp soc handle Change-Id: I3f180c9c360d564f0b229b447074ad23b7c0a737
This commit is contained in:

committed by
nshrivas

parent
e6f443f27a
commit
0ce3870654
@@ -127,40 +127,6 @@ cdp_soc_attach_target(ol_txrx_soc_handle soc)
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline int
|
|
||||||
cdp_soc_get_nss_cfg(ol_txrx_soc_handle soc)
|
|
||||||
{
|
|
||||||
if (!soc || !soc->ops) {
|
|
||||||
QDF_TRACE(QDF_MODULE_ID_CDP, QDF_TRACE_LEVEL_DEBUG,
|
|
||||||
"%s: Invalid Instance:", __func__);
|
|
||||||
QDF_BUG(0);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!soc->ops->cmn_drv_ops ||
|
|
||||||
!soc->ops->cmn_drv_ops->txrx_soc_get_nss_cfg)
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
return soc->ops->cmn_drv_ops->txrx_soc_get_nss_cfg(soc);
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline void
|
|
||||||
cdp_soc_set_nss_cfg(ol_txrx_soc_handle soc, uint32_t config)
|
|
||||||
{
|
|
||||||
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_soc_set_nss_cfg)
|
|
||||||
return;
|
|
||||||
|
|
||||||
soc->ops->cmn_drv_ops->txrx_soc_set_nss_cfg(soc, config);
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline struct cdp_vdev *
|
static inline struct cdp_vdev *
|
||||||
cdp_vdev_attach(ol_txrx_soc_handle soc, uint8_t pdev_id,
|
cdp_vdev_attach(ol_txrx_soc_handle soc, uint8_t pdev_id,
|
||||||
uint8_t *vdev_mac_addr, uint8_t vdev_id,
|
uint8_t *vdev_mac_addr, uint8_t vdev_id,
|
||||||
@@ -820,12 +786,13 @@ cdp_set_privacy_filters(ol_txrx_soc_handle soc, uint8_t vdev_id,
|
|||||||
}
|
}
|
||||||
|
|
||||||
static inline int
|
static inline int
|
||||||
cdp_set_monitor_filter(ol_txrx_soc_handle soc, struct cdp_pdev *pdev,
|
cdp_set_monitor_filter(ol_txrx_soc_handle soc, uint8_t pdev_id,
|
||||||
struct cdp_monitor_filter *filter_val)
|
struct cdp_monitor_filter *filter_val)
|
||||||
{
|
{
|
||||||
if (soc->ops->mon_ops->txrx_set_advance_monitor_filter)
|
if (soc->ops->mon_ops->txrx_set_advance_monitor_filter)
|
||||||
return soc->ops->mon_ops->txrx_set_advance_monitor_filter(pdev,
|
return soc->ops->mon_ops->txrx_set_advance_monitor_filter(soc,
|
||||||
filter_val);
|
pdev_id,
|
||||||
|
filter_val);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -944,24 +911,6 @@ cdp_peer_unmap_sync_cb_set(ol_txrx_soc_handle soc,
|
|||||||
unmap_resp_cb);
|
unmap_resp_cb);
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline int cdp_get_tx_pending(ol_txrx_soc_handle soc,
|
|
||||||
struct cdp_pdev *pdev)
|
|
||||||
{
|
|
||||||
if (!soc || !soc->ops) {
|
|
||||||
QDF_TRACE(QDF_MODULE_ID_CDP, QDF_TRACE_LEVEL_DEBUG,
|
|
||||||
"%s: Invalid Instance:", __func__);
|
|
||||||
QDF_BUG(0);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!soc->ops->cmn_drv_ops ||
|
|
||||||
!soc->ops->cmn_drv_ops->txrx_get_tx_pending)
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
|
|
||||||
return soc->ops->cmn_drv_ops->txrx_get_tx_pending(pdev);
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* cdp_data_tx_cb_set(): set the callback for non standard tx
|
* cdp_data_tx_cb_set(): set the callback for non standard tx
|
||||||
* @soc - datapath soc handle
|
* @soc - datapath soc handle
|
||||||
@@ -1590,56 +1539,6 @@ static inline void cdp_set_pdev_dscp_tid_map(ol_txrx_soc_handle soc,
|
|||||||
map_id, tos, tid);
|
map_id, tos, tid);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* cdp_hmmc_tid_override_en(): Function to enable hmmc tid override.
|
|
||||||
* @soc : soc handle
|
|
||||||
* @pdev: pdev handle
|
|
||||||
* @val: hmmc-dscp flag value
|
|
||||||
*
|
|
||||||
* Return: void
|
|
||||||
*/
|
|
||||||
static inline void cdp_hmmc_tid_override_en(ol_txrx_soc_handle soc,
|
|
||||||
struct cdp_pdev *pdev, bool val)
|
|
||||||
{
|
|
||||||
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->hmmc_tid_override_en)
|
|
||||||
return;
|
|
||||||
|
|
||||||
soc->ops->cmn_drv_ops->hmmc_tid_override_en(pdev, val);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* cdp_set_hmmc_tid_val(): Function to set hmmc tid value.
|
|
||||||
* @soc : soc handle
|
|
||||||
* @pdev: pdev handle
|
|
||||||
* @tid: tid value
|
|
||||||
*
|
|
||||||
* Return: void
|
|
||||||
*/
|
|
||||||
static inline void cdp_set_hmmc_tid_val(ol_txrx_soc_handle soc,
|
|
||||||
struct cdp_pdev *pdev, uint8_t tid)
|
|
||||||
{
|
|
||||||
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->set_hmmc_tid_val)
|
|
||||||
return;
|
|
||||||
|
|
||||||
soc->ops->cmn_drv_ops->set_hmmc_tid_val(pdev, tid);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* cdp_flush_cache_rx_queue() - flush cache rx queue frame
|
* cdp_flush_cache_rx_queue() - flush cache rx queue frame
|
||||||
*
|
*
|
||||||
@@ -2060,89 +1959,6 @@ cdp_tx_send(ol_txrx_soc_handle soc, uint8_t vdev_id, qdf_nbuf_t nbuf)
|
|||||||
soc->ops->cmn_drv_ops->tx_send(soc, vdev_id, nbuf);
|
soc->ops->cmn_drv_ops->tx_send(soc, vdev_id, nbuf);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
* cdp_get_pdev_id_frm_pdev() - return pdev_id from pdev
|
|
||||||
* @soc: opaque soc handle
|
|
||||||
* @pdev: data path pdev handle
|
|
||||||
*
|
|
||||||
* Return: pdev_id
|
|
||||||
*/
|
|
||||||
static inline
|
|
||||||
uint8_t cdp_get_pdev_id_frm_pdev(ol_txrx_soc_handle soc,
|
|
||||||
struct cdp_pdev *pdev)
|
|
||||||
{
|
|
||||||
if (soc->ops->cmn_drv_ops->txrx_get_pdev_id_frm_pdev)
|
|
||||||
return soc->ops->cmn_drv_ops->txrx_get_pdev_id_frm_pdev(pdev);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* cdp_get_vow_config_frm_pdev() - return carrier_vow_config from pdev
|
|
||||||
* @soc: opaque soc handle
|
|
||||||
* @pdev: data path pdev handle
|
|
||||||
*
|
|
||||||
* Return: carrier_vow_config
|
|
||||||
*/
|
|
||||||
static inline
|
|
||||||
bool cdp_get_vow_config_frm_pdev(ol_txrx_soc_handle soc,
|
|
||||||
struct cdp_pdev *pdev)
|
|
||||||
{
|
|
||||||
if (soc->ops->cmn_drv_ops->txrx_get_vow_config_frm_pdev)
|
|
||||||
return soc->ops->cmn_drv_ops->txrx_get_vow_config_frm_pdev(
|
|
||||||
pdev);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* cdp_pdev_set_chan_noise_floor() - Set channel noise floor to DP layer
|
|
||||||
* @soc: opaque soc handle
|
|
||||||
* @pdev: data path pdev handle
|
|
||||||
* @chan_noise_floor: Channel Noise Floor (in dbM) obtained from control path
|
|
||||||
*
|
|
||||||
* Return: None
|
|
||||||
*/
|
|
||||||
static inline
|
|
||||||
void cdp_pdev_set_chan_noise_floor(ol_txrx_soc_handle soc,
|
|
||||||
struct cdp_pdev *pdev,
|
|
||||||
int16_t chan_noise_floor)
|
|
||||||
{
|
|
||||||
if (soc->ops->cmn_drv_ops->txrx_pdev_set_chan_noise_floor)
|
|
||||||
return soc->ops->cmn_drv_ops->txrx_pdev_set_chan_noise_floor(
|
|
||||||
pdev, chan_noise_floor);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* cdp_set_nac() - set nac
|
|
||||||
* @soc: opaque soc handle
|
|
||||||
* @vdev_id: id of vdev handle
|
|
||||||
* @peer_mac: mac of data path peer handle
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
static inline
|
|
||||||
void cdp_set_nac(ol_txrx_soc_handle soc, uint8_t vdev_id, uint8_t *peer_mac)
|
|
||||||
{
|
|
||||||
if (soc->ops->cmn_drv_ops->txrx_set_nac)
|
|
||||||
soc->ops->cmn_drv_ops->txrx_set_nac(soc, vdev_id, peer_mac);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* cdp_set_pdev_tx_capture() - set pdev tx_capture
|
|
||||||
* @soc: opaque soc handle
|
|
||||||
* @pdev: data path pdev handle
|
|
||||||
* @val: value of pdev_tx_capture
|
|
||||||
*
|
|
||||||
* Return: status: 0 - Success, non-zero: Failure
|
|
||||||
*/
|
|
||||||
static inline
|
|
||||||
QDF_STATUS cdp_set_pdev_tx_capture(ol_txrx_soc_handle soc,
|
|
||||||
struct cdp_pdev *pdev, int val)
|
|
||||||
{
|
|
||||||
if (soc->ops->cmn_drv_ops->txrx_set_pdev_tx_capture)
|
|
||||||
return soc->ops->cmn_drv_ops->txrx_set_pdev_tx_capture(pdev,
|
|
||||||
val);
|
|
||||||
return QDF_STATUS_SUCCESS;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* cdp_set_pdev_pcp_tid_map() - set pdev pcp-tid-map
|
* cdp_set_pdev_pcp_tid_map() - set pdev pcp-tid-map
|
||||||
* @soc: opaque soc handle
|
* @soc: opaque soc handle
|
||||||
@@ -2174,37 +1990,6 @@ QDF_STATUS cdp_set_pdev_pcp_tid_map(ol_txrx_soc_handle soc,
|
|||||||
pcp, tid);
|
pcp, tid);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* cdp_set_pdev_pcp_tidmap_prty() - set pdev tidmap priority
|
|
||||||
* @soc: opaque soc handle
|
|
||||||
* @pdev: data path pdev handle
|
|
||||||
* @val: priority value
|
|
||||||
*
|
|
||||||
* This API is used to configure the tidmap priority for a pdev.
|
|
||||||
* The tidmap priority decides which mapping, namely DSCP-TID, SVLAN_PCP-TID,
|
|
||||||
* CVLAN_PCP-TID will be used.
|
|
||||||
*
|
|
||||||
* Return: QDF_STATUS_SUCCESS if value set successfully
|
|
||||||
* QDF_STATUS_E_INVAL false if error
|
|
||||||
*/
|
|
||||||
static inline
|
|
||||||
QDF_STATUS cdp_set_pdev_tidmap_prty(ol_txrx_soc_handle soc,
|
|
||||||
struct cdp_pdev *pdev_handle,
|
|
||||||
uint32_t val)
|
|
||||||
{
|
|
||||||
if (!soc || !soc->ops) {
|
|
||||||
QDF_TRACE(QDF_MODULE_ID_CDP, QDF_TRACE_LEVEL_DEBUG,
|
|
||||||
"%s: Invalid Instance", __func__);
|
|
||||||
return QDF_STATUS_E_INVAL;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!soc->ops->cmn_drv_ops ||
|
|
||||||
!soc->ops->cmn_drv_ops->set_pdev_tidmap_prty)
|
|
||||||
return QDF_STATUS_E_INVAL;
|
|
||||||
|
|
||||||
return soc->ops->cmn_drv_ops->set_pdev_tidmap_prty(pdev_handle, val);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* cdp_get_peer_mac_from_peer_id() - get peer mac addr from peer id
|
* cdp_get_peer_mac_from_peer_id() - get peer mac addr from peer id
|
||||||
* @soc: opaque soc handle
|
* @soc: opaque soc handle
|
||||||
@@ -2643,70 +2428,6 @@ QDF_STATUS cdp_set_vdev_pcp_tid_map(ol_txrx_soc_handle soc,
|
|||||||
pcp, tid);
|
pcp, tid);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* cdp_set_vdev_tidmap_tbl_id() - set vdev tidmap table id
|
|
||||||
*
|
|
||||||
* @soc: opaque soc handle
|
|
||||||
* @vdev: data path vdev handle
|
|
||||||
* @mapid: value of mapid
|
|
||||||
*
|
|
||||||
* This API is used to configure the table-id of the tid-mapping for a vdev.
|
|
||||||
* Table '0' is for using the pdev's pcp-tid mapping and '1' is for using
|
|
||||||
* the vdev's pcp-tid mapping.
|
|
||||||
*
|
|
||||||
* Return: QDF_STATUS_SUCCESS if value set successfully
|
|
||||||
* QDF_STATUS_E_INVAL false if error
|
|
||||||
*/
|
|
||||||
static inline
|
|
||||||
QDF_STATUS cdp_set_vdev_tidmap_tbl_id(ol_txrx_soc_handle soc,
|
|
||||||
struct cdp_vdev *vdev_handle,
|
|
||||||
uint8_t mapid)
|
|
||||||
{
|
|
||||||
if (!soc || !soc->ops) {
|
|
||||||
QDF_TRACE(QDF_MODULE_ID_CDP, QDF_TRACE_LEVEL_DEBUG,
|
|
||||||
"%s: Invalid Instance", __func__);
|
|
||||||
return QDF_STATUS_E_INVAL;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!soc->ops->cmn_drv_ops ||
|
|
||||||
!soc->ops->cmn_drv_ops->set_vdev_tidmap_tbl_id)
|
|
||||||
return QDF_STATUS_E_INVAL;
|
|
||||||
|
|
||||||
return soc->ops->cmn_drv_ops->set_vdev_tidmap_tbl_id(vdev_handle,
|
|
||||||
mapid);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* cdp_set_vdev_tidmap_prty() - set vdev tidmap priority
|
|
||||||
* @soc: opaque soc handle
|
|
||||||
* @vdev: data path vdev handle
|
|
||||||
* @prio: tidmap priority value
|
|
||||||
*
|
|
||||||
* This API is used to configure the tidmap priority for a vdev.
|
|
||||||
* The tidmap priority decides which mapping, namely DSCP-TID, SVLAN_PCP-TID,
|
|
||||||
* CVLAN_PCP-TID will be used.
|
|
||||||
* The vdev tidmap priority will be used only when the tidmap_tbl_id is '1'.
|
|
||||||
*
|
|
||||||
* Return: QDF_STATUS_SUCCESS if value set successfully
|
|
||||||
* QDF_STATUS_E_INVAL false if error
|
|
||||||
*/
|
|
||||||
static inline
|
|
||||||
QDF_STATUS cdp_set_vdev_tidmap_prty(ol_txrx_soc_handle soc,
|
|
||||||
struct cdp_vdev *vdev_handle, uint8_t prio)
|
|
||||||
{
|
|
||||||
if (!soc || !soc->ops) {
|
|
||||||
QDF_TRACE(QDF_MODULE_ID_CDP, QDF_TRACE_LEVEL_DEBUG,
|
|
||||||
"%s: Invalid Instance", __func__);
|
|
||||||
return QDF_STATUS_E_INVAL;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!soc->ops->cmn_drv_ops ||
|
|
||||||
!soc->ops->cmn_drv_ops->set_vdev_tidmap_prty)
|
|
||||||
return QDF_STATUS_E_INVAL;
|
|
||||||
|
|
||||||
return soc->ops->cmn_drv_ops->set_vdev_tidmap_prty(vdev_handle, prio);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* cdp_tx_send_exc() - Transmit a frame on a given vdev in exception path
|
* cdp_tx_send_exc() - Transmit a frame on a given vdev in exception path
|
||||||
*
|
*
|
||||||
|
@@ -77,13 +77,13 @@ void *dp_soc_init_wifi3(struct cdp_soc_t *soc,
|
|||||||
HTC_HANDLE htc_handle, qdf_device_t qdf_osdev,
|
HTC_HANDLE htc_handle, qdf_device_t qdf_osdev,
|
||||||
struct ol_if_ops *ol_ops, uint16_t device_id);
|
struct ol_if_ops *ol_ops, uint16_t device_id);
|
||||||
#else
|
#else
|
||||||
static inline
|
static inline struct cdp_soc_t *
|
||||||
struct cdp_soc_t *dp_soc_attach_wifi3(struct cdp_ctrl_objmgr_psoc *ctrl_psoc,
|
dp_soc_attach_wifi3(struct cdp_ctrl_objmgr_psoc *ctrl_psoc,
|
||||||
struct hif_opaque_softc *hif_handle,
|
struct hif_opaque_softc *hif_handle,
|
||||||
HTC_HANDLE htc_handle,
|
HTC_HANDLE htc_handle,
|
||||||
qdf_device_t qdf_osdev,
|
qdf_device_t qdf_osdev,
|
||||||
struct ol_if_ops *ol_ops,
|
struct ol_if_ops *ol_ops,
|
||||||
uint16_t device_id)
|
uint16_t device_id)
|
||||||
{
|
{
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
@@ -99,10 +99,13 @@ void *dp_soc_init_wifi3(struct cdp_soc_t *soc,
|
|||||||
}
|
}
|
||||||
#endif /* QCA_WIFI_QCA8074 */
|
#endif /* QCA_WIFI_QCA8074 */
|
||||||
|
|
||||||
static inline ol_txrx_soc_handle cdp_soc_attach(
|
static inline
|
||||||
u_int16_t devid, void *hif_handle, void *psoc,
|
ol_txrx_soc_handle cdp_soc_attach(u_int16_t devid,
|
||||||
HTC_HANDLE htc_handle, qdf_device_t qdf_dev,
|
struct hif_opaque_softc *hif_handle,
|
||||||
struct ol_if_ops *dp_ol_if_ops)
|
struct cdp_ctrl_objmgr_psoc *psoc,
|
||||||
|
HTC_HANDLE htc_handle,
|
||||||
|
qdf_device_t qdf_dev,
|
||||||
|
struct ol_if_ops *dp_ol_if_ops)
|
||||||
{
|
{
|
||||||
switch (devid) {
|
switch (devid) {
|
||||||
case LITHIUM_DP: /*FIXME Add lithium devide IDs */
|
case LITHIUM_DP: /*FIXME Add lithium devide IDs */
|
||||||
|
@@ -774,12 +774,12 @@ typedef QDF_STATUS(*ol_txrx_get_key_fp)(void *osif_dev, uint8_t *key_buf, uint8_
|
|||||||
* @osif_dev - the virtual device's OS shim object
|
* @osif_dev - the virtual device's OS shim object
|
||||||
* @list_head - poniter to head of receive packet queue to decap
|
* @list_head - poniter to head of receive packet queue to decap
|
||||||
* @list_tail - poniter to tail of receive packet queue to decap
|
* @list_tail - poniter to tail of receive packet queue to decap
|
||||||
* @peer - Peer handler
|
* @peer_mac - mac address of peer handler
|
||||||
*/
|
*/
|
||||||
typedef QDF_STATUS(*ol_txrx_rsim_rx_decap_fp)(void *osif_dev,
|
typedef QDF_STATUS(*ol_txrx_rsim_rx_decap_fp)(void *osif_dev,
|
||||||
qdf_nbuf_t *list_head,
|
qdf_nbuf_t *list_head,
|
||||||
qdf_nbuf_t *list_tail,
|
qdf_nbuf_t *list_tail,
|
||||||
struct cdp_peer *peer);
|
uint8_t *peer_mac);
|
||||||
|
|
||||||
/* ol_txrx_rx_fp - external tx free function to read per packet stats and
|
/* ol_txrx_rx_fp - external tx free function to read per packet stats and
|
||||||
* free tx buffer externally
|
* free tx buffer externally
|
||||||
@@ -997,6 +997,8 @@ enum cdp_peer_param_type {
|
|||||||
* @CDP_FILTER_MCAST_DATA: filter multicast data
|
* @CDP_FILTER_MCAST_DATA: filter multicast data
|
||||||
* @CDP_FILTER_NO_DATA: filter no data
|
* @CDP_FILTER_NO_DATA: filter no data
|
||||||
* @CDP_MONITOR_CHANNEL: monitor channel
|
* @CDP_MONITOR_CHANNEL: monitor channel
|
||||||
|
* @CDP_MONITOR_FREQUENCY: monitor frequency
|
||||||
|
* @CDP_CONFIG_BSS_COLOR: configure bss color
|
||||||
*/
|
*/
|
||||||
enum cdp_pdev_param_type {
|
enum cdp_pdev_param_type {
|
||||||
CDP_CONFIG_DEBUG_SNIFFER,
|
CDP_CONFIG_DEBUG_SNIFFER,
|
||||||
@@ -1024,6 +1026,8 @@ enum cdp_pdev_param_type {
|
|||||||
CDP_FILTER_MCAST_DATA,
|
CDP_FILTER_MCAST_DATA,
|
||||||
CDP_FILTER_NO_DATA,
|
CDP_FILTER_NO_DATA,
|
||||||
CDP_MONITOR_CHANNEL,
|
CDP_MONITOR_CHANNEL,
|
||||||
|
CDP_MONITOR_FREQUENCY,
|
||||||
|
CDP_CONFIG_BSS_COLOR,
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -1069,6 +1073,8 @@ enum cdp_pdev_param_type {
|
|||||||
* @cdp_pdev_param_chn_noise_flr: set channel noise floor
|
* @cdp_pdev_param_chn_noise_flr: set channel noise floor
|
||||||
* @cdp_pdev_param_cfg_vow: set/get vow config
|
* @cdp_pdev_param_cfg_vow: set/get vow config
|
||||||
* @cdp_pdev_param_tidq_override: set/get tid queue override
|
* @cdp_pdev_param_tidq_override: set/get tid queue override
|
||||||
|
* @cdp_pdev_param_mon_freq: set monitor frequency
|
||||||
|
* @cdp_pdev_param_bss_color: configure bss color
|
||||||
* @cdp_pdev_param_tidmap_prty: set/get tid map prty
|
* @cdp_pdev_param_tidmap_prty: set/get tid map prty
|
||||||
* @cdp_pdev_param_tx_pending: get tx pending
|
* @cdp_pdev_param_tx_pending: get tx pending
|
||||||
* @cdp_pdev_param_fltr_neigh_peers: filter neighbour peers
|
* @cdp_pdev_param_fltr_neigh_peers: filter neighbour peers
|
||||||
@@ -1125,7 +1131,9 @@ typedef union cdp_config_param_t {
|
|||||||
uint8_t cdp_pdev_param_igmpmld_tid;
|
uint8_t cdp_pdev_param_igmpmld_tid;
|
||||||
uint8_t cdp_pdev_param_arp_dbg_conf;
|
uint8_t cdp_pdev_param_arp_dbg_conf;
|
||||||
uint8_t cdp_pdev_param_tidq_override;
|
uint8_t cdp_pdev_param_tidq_override;
|
||||||
|
uint8_t cdp_pdev_param_bss_color;
|
||||||
uint16_t cdp_pdev_param_chn_noise_flr;
|
uint16_t cdp_pdev_param_chn_noise_flr;
|
||||||
|
qdf_freq_t cdp_pdev_param_mon_freq;
|
||||||
int cdp_pdev_param_dbg_snf;
|
int cdp_pdev_param_dbg_snf;
|
||||||
int cdp_pdev_param_bpr_enable;
|
int cdp_pdev_param_bpr_enable;
|
||||||
int cdp_pdev_param_monitor_chan;
|
int cdp_pdev_param_monitor_chan;
|
||||||
|
@@ -49,7 +49,7 @@ static inline int cdp_is_target_ar900b
|
|||||||
|
|
||||||
/* WIN */
|
/* WIN */
|
||||||
static inline int
|
static inline int
|
||||||
cdp_mempools_attach(ol_txrx_soc_handle soc, void *ctrl_pdev)
|
cdp_mempools_attach(ol_txrx_soc_handle soc)
|
||||||
{
|
{
|
||||||
if (!soc || !soc->ops) {
|
if (!soc || !soc->ops) {
|
||||||
QDF_TRACE(QDF_MODULE_ID_CDP, QDF_TRACE_LEVEL_DEBUG,
|
QDF_TRACE(QDF_MODULE_ID_CDP, QDF_TRACE_LEVEL_DEBUG,
|
||||||
@@ -62,36 +62,7 @@ cdp_mempools_attach(ol_txrx_soc_handle soc, void *ctrl_pdev)
|
|||||||
!soc->ops->ctrl_ops->txrx_mempools_attach)
|
!soc->ops->ctrl_ops->txrx_mempools_attach)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
return soc->ops->ctrl_ops->txrx_mempools_attach(ctrl_pdev);
|
return soc->ops->ctrl_ops->txrx_mempools_attach(soc);
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @brief set filter neighbour peers
|
|
||||||
* @details
|
|
||||||
* This defines interface function to set neighbour peer filtering.
|
|
||||||
*
|
|
||||||
* @param soc - the pointer to soc object
|
|
||||||
* @param pdev - the pointer physical device object
|
|
||||||
* @param val - the enable/disable value
|
|
||||||
* @return - int
|
|
||||||
*/
|
|
||||||
static inline int
|
|
||||||
cdp_set_filter_neighbour_peers(ol_txrx_soc_handle soc,
|
|
||||||
struct cdp_pdev *pdev, u_int32_t val)
|
|
||||||
{
|
|
||||||
if (!soc || !soc->ops) {
|
|
||||||
QDF_TRACE(QDF_MODULE_ID_CDP, QDF_TRACE_LEVEL_DEBUG,
|
|
||||||
"%s: Invalid Instance:", __func__);
|
|
||||||
QDF_BUG(0);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!soc->ops->ctrl_ops ||
|
|
||||||
!soc->ops->ctrl_ops->txrx_set_filter_neighbour_peers)
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
return soc->ops->ctrl_ops->txrx_set_filter_neighbour_peers
|
|
||||||
(pdev, val);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -125,143 +96,6 @@ cdp_update_filter_neighbour_peers(ol_txrx_soc_handle soc,
|
|||||||
(soc, vdev_id, cmd, macaddr);
|
(soc, vdev_id, cmd, macaddr);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* @brief set the safemode of the device
|
|
||||||
* @details
|
|
||||||
* This flag is used to bypass the encrypt and decrypt processes when send and
|
|
||||||
* receive packets. It works like open AUTH mode, HW will treate all packets
|
|
||||||
* as non-encrypt frames because no key installed. For rx fragmented frames,
|
|
||||||
* it bypasses all the rx defragmentaion.
|
|
||||||
*
|
|
||||||
* @param vdev - the data virtual device object
|
|
||||||
* @param val - the safemode state
|
|
||||||
* @return - void
|
|
||||||
*/
|
|
||||||
static inline void
|
|
||||||
cdp_set_safemode(ol_txrx_soc_handle soc,
|
|
||||||
struct cdp_vdev *vdev, u_int32_t val)
|
|
||||||
{
|
|
||||||
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->ctrl_ops ||
|
|
||||||
!soc->ops->ctrl_ops->txrx_set_safemode)
|
|
||||||
return;
|
|
||||||
|
|
||||||
soc->ops->ctrl_ops->txrx_set_safemode(vdev, val);
|
|
||||||
}
|
|
||||||
/**
|
|
||||||
* @brief configure the drop unencrypted frame flag
|
|
||||||
* @details
|
|
||||||
* Rx related. When set this flag, all the unencrypted frames
|
|
||||||
* received over a secure connection will be discarded
|
|
||||||
*
|
|
||||||
* @param vdev - the data virtual device object
|
|
||||||
* @param val - flag
|
|
||||||
* @return - void
|
|
||||||
*/
|
|
||||||
static inline void
|
|
||||||
cdp_set_drop_unenc(ol_txrx_soc_handle soc,
|
|
||||||
struct cdp_vdev *vdev, u_int32_t val)
|
|
||||||
{
|
|
||||||
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->ctrl_ops ||
|
|
||||||
!soc->ops->ctrl_ops->txrx_set_drop_unenc)
|
|
||||||
return;
|
|
||||||
|
|
||||||
soc->ops->ctrl_ops->txrx_set_drop_unenc(vdev, val);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @brief set the Tx encapsulation type of the VDEV
|
|
||||||
* @details
|
|
||||||
* This will be used to populate the HTT desc packet type field during Tx
|
|
||||||
*
|
|
||||||
* @param vdev - the data virtual device object
|
|
||||||
* @param val - the Tx encap type (htt_cmn_pkt_type)
|
|
||||||
* @return - void
|
|
||||||
*/
|
|
||||||
static inline void
|
|
||||||
cdp_set_tx_encap_type(ol_txrx_soc_handle soc,
|
|
||||||
struct cdp_vdev *vdev, enum htt_cmn_pkt_type val)
|
|
||||||
{
|
|
||||||
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->ctrl_ops ||
|
|
||||||
!soc->ops->ctrl_ops->txrx_set_tx_encap_type)
|
|
||||||
return;
|
|
||||||
|
|
||||||
soc->ops->ctrl_ops->txrx_set_tx_encap_type(vdev, val);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @brief set the Rx decapsulation type of the VDEV
|
|
||||||
* @details
|
|
||||||
* This will be used to configure into firmware and hardware which format to
|
|
||||||
* decap all Rx packets into, for all peers under the VDEV.
|
|
||||||
*
|
|
||||||
* @param vdev - the data virtual device object
|
|
||||||
* @param val - the Rx decap mode (htt_cmn_pkt_type)
|
|
||||||
* @return - void
|
|
||||||
*/
|
|
||||||
static inline void
|
|
||||||
cdp_set_vdev_rx_decap_type(ol_txrx_soc_handle soc,
|
|
||||||
struct cdp_vdev *vdev, enum htt_cmn_pkt_type val)
|
|
||||||
{
|
|
||||||
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->ctrl_ops ||
|
|
||||||
!soc->ops->ctrl_ops->txrx_set_vdev_rx_decap_type)
|
|
||||||
return;
|
|
||||||
|
|
||||||
soc->ops->ctrl_ops->txrx_set_vdev_rx_decap_type
|
|
||||||
(vdev, val);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @brief get the Rx decapsulation type of the VDEV
|
|
||||||
*
|
|
||||||
* @param vdev - the data virtual device object
|
|
||||||
* @return - the Rx decap type (htt_cmn_pkt_type)
|
|
||||||
*/
|
|
||||||
static inline enum htt_cmn_pkt_type
|
|
||||||
cdp_get_vdev_rx_decap_type(ol_txrx_soc_handle soc, struct cdp_vdev *vdev)
|
|
||||||
{
|
|
||||||
if (!soc || !soc->ops) {
|
|
||||||
QDF_TRACE(QDF_MODULE_ID_CDP, QDF_TRACE_LEVEL_DEBUG,
|
|
||||||
"%s: Invalid Instance:", __func__);
|
|
||||||
QDF_BUG(0);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!soc->ops->ctrl_ops ||
|
|
||||||
!soc->ops->ctrl_ops->txrx_get_vdev_rx_decap_type)
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
return soc->ops->ctrl_ops->txrx_get_vdev_rx_decap_type(vdev);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief set the Reo Destination ring for the pdev
|
* @brief set the Reo Destination ring for the pdev
|
||||||
* @details
|
* @details
|
||||||
@@ -323,77 +157,34 @@ cdp_get_pdev_reo_dest(ol_txrx_soc_handle soc, uint8_t pdev_id)
|
|||||||
* updates the peer/node-related parameters within rate-control
|
* updates the peer/node-related parameters within rate-control
|
||||||
* context of the peer at association.
|
* context of the peer at association.
|
||||||
*
|
*
|
||||||
* @param peer - pointer to the node's object
|
* @param soc - pointer to the soc
|
||||||
|
* @param vdev_id - id of the pointer to vdev
|
||||||
|
* @param peer_mac - mac address of the node's object
|
||||||
* @authorize - either to authorize or unauthorize peer
|
* @authorize - either to authorize or unauthorize peer
|
||||||
*
|
*
|
||||||
* @return none
|
* @return QDF_STATUS
|
||||||
*/
|
*/
|
||||||
static inline void
|
static inline QDF_STATUS
|
||||||
cdp_peer_authorize(ol_txrx_soc_handle soc,
|
cdp_peer_authorize(ol_txrx_soc_handle soc, uint8_t vdev_id, uint8_t *peer_mac,
|
||||||
struct cdp_peer *peer, u_int32_t authorize)
|
u_int32_t authorize)
|
||||||
{
|
{
|
||||||
if (!soc || !soc->ops) {
|
if (!soc || !soc->ops) {
|
||||||
QDF_TRACE(QDF_MODULE_ID_CDP, QDF_TRACE_LEVEL_DEBUG,
|
QDF_TRACE(QDF_MODULE_ID_CDP, QDF_TRACE_LEVEL_DEBUG,
|
||||||
"%s: Invalid Instance:", __func__);
|
"%s: Invalid Instance:", __func__);
|
||||||
QDF_BUG(0);
|
QDF_BUG(0);
|
||||||
return;
|
return QDF_STATUS_E_FAILURE;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!soc->ops->ctrl_ops ||
|
if (!soc->ops->ctrl_ops ||
|
||||||
!soc->ops->ctrl_ops->txrx_peer_authorize)
|
!soc->ops->ctrl_ops->txrx_peer_authorize)
|
||||||
return;
|
return QDF_STATUS_E_FAILURE;
|
||||||
|
|
||||||
soc->ops->ctrl_ops->txrx_peer_authorize
|
return soc->ops->ctrl_ops->txrx_peer_authorize
|
||||||
(peer, authorize);
|
(soc, vdev_id, peer_mac, authorize);
|
||||||
}
|
|
||||||
|
|
||||||
/* Should be ol_txrx_ctrl_api.h */
|
|
||||||
static inline void cdp_set_mesh_mode
|
|
||||||
(ol_txrx_soc_handle soc, struct cdp_vdev *vdev, u_int32_t val)
|
|
||||||
{
|
|
||||||
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->ctrl_ops ||
|
|
||||||
!soc->ops->ctrl_ops->txrx_set_mesh_mode)
|
|
||||||
return;
|
|
||||||
|
|
||||||
soc->ops->ctrl_ops->txrx_set_mesh_mode(vdev, val);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @brief set mesh rx filter
|
|
||||||
* @details based on the bits enabled in the filter packets has to be dropped.
|
|
||||||
*
|
|
||||||
* @param soc - pointer to the soc
|
|
||||||
* @param vdev - the data virtual device object
|
|
||||||
* @param val - value to be set
|
|
||||||
* @return - void
|
|
||||||
*/
|
|
||||||
static inline
|
|
||||||
void cdp_set_mesh_rx_filter(ol_txrx_soc_handle soc,
|
|
||||||
struct cdp_vdev *vdev, uint32_t val)
|
|
||||||
{
|
|
||||||
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->ctrl_ops ||
|
|
||||||
!soc->ops->ctrl_ops->txrx_set_mesh_rx_filter)
|
|
||||||
return;
|
|
||||||
|
|
||||||
soc->ops->ctrl_ops->txrx_set_mesh_rx_filter(vdev, val);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline void cdp_tx_flush_buffers
|
static inline void cdp_tx_flush_buffers
|
||||||
(ol_txrx_soc_handle soc, struct cdp_vdev *vdev)
|
(ol_txrx_soc_handle soc, uint8_t vdev_id)
|
||||||
{
|
{
|
||||||
if (!soc || !soc->ops) {
|
if (!soc || !soc->ops) {
|
||||||
QDF_TRACE(QDF_MODULE_ID_CDP, QDF_TRACE_LEVEL_DEBUG,
|
QDF_TRACE(QDF_MODULE_ID_CDP, QDF_TRACE_LEVEL_DEBUG,
|
||||||
@@ -406,65 +197,179 @@ static inline void cdp_tx_flush_buffers
|
|||||||
!soc->ops->ctrl_ops->tx_flush_buffers)
|
!soc->ops->ctrl_ops->tx_flush_buffers)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
soc->ops->ctrl_ops->tx_flush_buffers(vdev);
|
soc->ops->ctrl_ops->tx_flush_buffers(soc, vdev_id);
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline uint32_t cdp_txrx_get_vdev_param(ol_txrx_soc_handle soc,
|
static inline QDF_STATUS cdp_txrx_get_vdev_param(ol_txrx_soc_handle soc,
|
||||||
struct cdp_vdev *vdev,
|
uint8_t vdev_id,
|
||||||
enum cdp_vdev_param_type type)
|
enum cdp_vdev_param_type type,
|
||||||
|
cdp_config_param_type *val)
|
||||||
{
|
{
|
||||||
if (!soc || !soc->ops) {
|
if (!soc || !soc->ops) {
|
||||||
QDF_TRACE(QDF_MODULE_ID_CDP, QDF_TRACE_LEVEL_DEBUG,
|
QDF_TRACE(QDF_MODULE_ID_CDP, QDF_TRACE_LEVEL_DEBUG,
|
||||||
"%s: Invalid Instance:", __func__);
|
"%s: Invalid Instance:", __func__);
|
||||||
QDF_BUG(0);
|
QDF_BUG(0);
|
||||||
return -1;
|
return QDF_STATUS_E_FAILURE;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!soc->ops->ctrl_ops ||
|
if (!soc->ops->ctrl_ops ||
|
||||||
!soc->ops->ctrl_ops->txrx_get_vdev_param) {
|
!soc->ops->ctrl_ops->txrx_get_vdev_param) {
|
||||||
QDF_TRACE(QDF_MODULE_ID_CDP, QDF_TRACE_LEVEL_DEBUG,
|
QDF_TRACE(QDF_MODULE_ID_CDP, QDF_TRACE_LEVEL_DEBUG,
|
||||||
"%s: callback not registered:", __func__);
|
"%s: callback not registered:", __func__);
|
||||||
return -1;
|
return QDF_STATUS_E_FAILURE;
|
||||||
}
|
}
|
||||||
|
|
||||||
return soc->ops->ctrl_ops->txrx_get_vdev_param(vdev, type);
|
return soc->ops->ctrl_ops->txrx_get_vdev_param(soc, vdev_id,
|
||||||
|
type, val);
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline void cdp_txrx_set_vdev_param(ol_txrx_soc_handle soc,
|
static inline QDF_STATUS
|
||||||
struct cdp_vdev *vdev, enum cdp_vdev_param_type type,
|
cdp_txrx_set_vdev_param(ol_txrx_soc_handle soc,
|
||||||
uint32_t val)
|
uint8_t vdev_id, enum cdp_vdev_param_type type,
|
||||||
|
cdp_config_param_type val)
|
||||||
{
|
{
|
||||||
if (!soc || !soc->ops) {
|
if (!soc || !soc->ops) {
|
||||||
QDF_TRACE(QDF_MODULE_ID_CDP, QDF_TRACE_LEVEL_DEBUG,
|
QDF_TRACE(QDF_MODULE_ID_CDP, QDF_TRACE_LEVEL_DEBUG,
|
||||||
"%s: Invalid Instance:", __func__);
|
"%s: Invalid Instance:", __func__);
|
||||||
QDF_BUG(0);
|
QDF_BUG(0);
|
||||||
return;
|
return QDF_STATUS_E_FAILURE;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!soc->ops->ctrl_ops ||
|
if (!soc->ops->ctrl_ops ||
|
||||||
!soc->ops->ctrl_ops->txrx_set_vdev_param)
|
!soc->ops->ctrl_ops->txrx_set_vdev_param)
|
||||||
return;
|
return QDF_STATUS_E_FAILURE;
|
||||||
|
|
||||||
soc->ops->ctrl_ops->txrx_set_vdev_param(vdev, type, val);
|
return soc->ops->ctrl_ops->txrx_set_vdev_param(soc, vdev_id,
|
||||||
|
type, val);
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline void
|
static inline QDF_STATUS
|
||||||
cdp_peer_set_nawds(ol_txrx_soc_handle soc,
|
cdp_txrx_set_psoc_param(ol_txrx_soc_handle soc,
|
||||||
struct cdp_peer *peer, uint8_t value)
|
enum cdp_psoc_param_type type,
|
||||||
|
cdp_config_param_type val)
|
||||||
{
|
{
|
||||||
if (!soc || !soc->ops) {
|
if (!soc || !soc->ops) {
|
||||||
QDF_TRACE(QDF_MODULE_ID_CDP, QDF_TRACE_LEVEL_DEBUG,
|
QDF_TRACE(QDF_MODULE_ID_CDP, QDF_TRACE_LEVEL_DEBUG,
|
||||||
"%s: Invalid Instance:", __func__);
|
"%s: Invalid Instance:", __func__);
|
||||||
QDF_BUG(0);
|
QDF_BUG(0);
|
||||||
return;
|
return QDF_STATUS_E_FAILURE;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!soc->ops->ctrl_ops ||
|
if (!soc->ops->ctrl_ops ||
|
||||||
!soc->ops->ctrl_ops->txrx_peer_set_nawds)
|
!soc->ops->ctrl_ops->txrx_set_psoc_param)
|
||||||
return;
|
return QDF_STATUS_E_FAILURE;
|
||||||
|
|
||||||
soc->ops->ctrl_ops->txrx_peer_set_nawds
|
return soc->ops->ctrl_ops->txrx_set_psoc_param(soc, type, val);
|
||||||
(peer, value);
|
}
|
||||||
|
|
||||||
|
static inline QDF_STATUS
|
||||||
|
cdp_txrx_get_psoc_param(ol_txrx_soc_handle soc,
|
||||||
|
enum cdp_psoc_param_type type,
|
||||||
|
cdp_config_param_type *val)
|
||||||
|
{
|
||||||
|
if (!soc || !soc->ops) {
|
||||||
|
QDF_TRACE(QDF_MODULE_ID_CDP, QDF_TRACE_LEVEL_DEBUG,
|
||||||
|
"%s: Invalid Instance:", __func__);
|
||||||
|
QDF_BUG(0);
|
||||||
|
return QDF_STATUS_E_FAILURE;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!soc->ops->ctrl_ops ||
|
||||||
|
!soc->ops->ctrl_ops->txrx_get_psoc_param)
|
||||||
|
return QDF_STATUS_E_FAILURE;
|
||||||
|
|
||||||
|
return soc->ops->ctrl_ops->txrx_get_psoc_param(soc, type, val);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* cdp_txrx_set_pdev_param() - set pdev parameter
|
||||||
|
* @soc: opaque soc handle
|
||||||
|
* @pdev_id: id of data path pdev handle
|
||||||
|
* @type: param type
|
||||||
|
* @val: value
|
||||||
|
*
|
||||||
|
* Return: status: 0 - Success, non-zero: Failure
|
||||||
|
*/
|
||||||
|
static inline QDF_STATUS cdp_txrx_set_pdev_param(ol_txrx_soc_handle soc,
|
||||||
|
uint8_t pdev_id,
|
||||||
|
enum cdp_pdev_param_type type,
|
||||||
|
cdp_config_param_type val)
|
||||||
|
{
|
||||||
|
if (!soc || !soc->ops) {
|
||||||
|
QDF_TRACE(QDF_MODULE_ID_CDP, QDF_TRACE_LEVEL_DEBUG,
|
||||||
|
"%s: Invalid Instance:", __func__);
|
||||||
|
QDF_BUG(0);
|
||||||
|
return QDF_STATUS_E_FAILURE;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!soc->ops->ctrl_ops ||
|
||||||
|
!soc->ops->ctrl_ops->txrx_set_pdev_param)
|
||||||
|
return QDF_STATUS_E_FAILURE;
|
||||||
|
|
||||||
|
return soc->ops->ctrl_ops->txrx_set_pdev_param
|
||||||
|
(soc, pdev_id, type, val);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* cdp_txrx_set_peer_param() - set pdev parameter
|
||||||
|
* @soc: opaque soc handle
|
||||||
|
* @vdev_id: id of data path vdev handle
|
||||||
|
* @peer_mac: peer mac address
|
||||||
|
* @type: param type
|
||||||
|
* @val: value
|
||||||
|
*
|
||||||
|
* Return: status: 0 - Success, non-zero: Failure
|
||||||
|
*/
|
||||||
|
static inline QDF_STATUS cdp_txrx_set_peer_param(ol_txrx_soc_handle soc,
|
||||||
|
uint8_t vdev_id,
|
||||||
|
uint8_t *peer_mac,
|
||||||
|
enum cdp_peer_param_type type,
|
||||||
|
cdp_config_param_type val)
|
||||||
|
{
|
||||||
|
if (!soc || !soc->ops) {
|
||||||
|
QDF_TRACE(QDF_MODULE_ID_CDP, QDF_TRACE_LEVEL_DEBUG,
|
||||||
|
"%s: Invalid Instance:", __func__);
|
||||||
|
QDF_BUG(0);
|
||||||
|
return QDF_STATUS_E_FAILURE;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!soc->ops->ctrl_ops ||
|
||||||
|
!soc->ops->ctrl_ops->txrx_set_peer_param)
|
||||||
|
return QDF_STATUS_E_FAILURE;
|
||||||
|
|
||||||
|
return soc->ops->ctrl_ops->txrx_set_peer_param
|
||||||
|
(soc, vdev_id, peer_mac, type, val);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* cdp_txrx_get_peer_param() - set pdev parameter
|
||||||
|
* @soc: opaque soc handle
|
||||||
|
* @vdev_id: id of data path vdev handle
|
||||||
|
* @peer_mac: peer mac address
|
||||||
|
* @type: param type
|
||||||
|
* @val: address of buffer
|
||||||
|
*
|
||||||
|
* Return: status
|
||||||
|
*/
|
||||||
|
static inline QDF_STATUS cdp_txrx_get_peer_param(ol_txrx_soc_handle soc,
|
||||||
|
uint8_t vdev_id,
|
||||||
|
uint8_t *peer_mac,
|
||||||
|
enum cdp_peer_param_type type,
|
||||||
|
cdp_config_param_type *val)
|
||||||
|
{
|
||||||
|
if (!soc || !soc->ops) {
|
||||||
|
QDF_TRACE(QDF_MODULE_ID_CDP, QDF_TRACE_LEVEL_DEBUG,
|
||||||
|
"%s: Invalid Instance:", __func__);
|
||||||
|
QDF_BUG(0);
|
||||||
|
return QDF_STATUS_E_FAILURE;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!soc->ops->ctrl_ops ||
|
||||||
|
!soc->ops->ctrl_ops->txrx_get_peer_param)
|
||||||
|
return QDF_STATUS_E_FAILURE;
|
||||||
|
|
||||||
|
return soc->ops->ctrl_ops->txrx_get_peer_param
|
||||||
|
(soc, vdev_id, peer_mac, type, val);
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef QCA_MULTIPASS_SUPPORT
|
#ifdef QCA_MULTIPASS_SUPPORT
|
||||||
@@ -489,32 +394,32 @@ cdp_peer_set_vlan_id(ol_txrx_soc_handle soc, uint8_t vdev_id,
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* cdp_txrx_set_pdev_param() - set pdev parameter
|
* cdp_txrx_get_pdev_param() - get pdev parameter
|
||||||
* @soc: opaque soc handle
|
* @soc: opaque soc handle
|
||||||
* @pdev: data path pdev handle
|
* @pdev_id: id of data path pdev handle
|
||||||
* @type: param type
|
* @type: param type
|
||||||
* @val: value of pdev_tx_capture
|
* @value: address of value buffer
|
||||||
*
|
*
|
||||||
* Return: status: 0 - Success, non-zero: Failure
|
* Return: status
|
||||||
*/
|
*/
|
||||||
static inline QDF_STATUS cdp_txrx_set_pdev_param(ol_txrx_soc_handle soc,
|
static inline QDF_STATUS cdp_txrx_get_pdev_param(ol_txrx_soc_handle soc,
|
||||||
struct cdp_pdev *pdev,
|
uint8_t pdev_id,
|
||||||
enum cdp_pdev_param_type type,
|
enum cdp_pdev_param_type type,
|
||||||
uint32_t val)
|
cdp_config_param_type *value)
|
||||||
{
|
{
|
||||||
if (!soc || !soc->ops) {
|
if (!soc || !soc->ops) {
|
||||||
QDF_TRACE(QDF_MODULE_ID_CDP, QDF_TRACE_LEVEL_DEBUG,
|
QDF_TRACE(QDF_MODULE_ID_CDP, QDF_TRACE_LEVEL_DEBUG,
|
||||||
"%s: Invalid Instance:", __func__);
|
"%s: Invalid Instance:", __func__);
|
||||||
QDF_BUG(0);
|
QDF_BUG(0);
|
||||||
return QDF_STATUS_SUCCESS;
|
return QDF_STATUS_E_FAILURE;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!soc->ops->ctrl_ops ||
|
if (!soc->ops->ctrl_ops ||
|
||||||
!soc->ops->ctrl_ops->txrx_set_pdev_param)
|
!soc->ops->ctrl_ops->txrx_get_pdev_param)
|
||||||
return QDF_STATUS_SUCCESS;
|
return QDF_STATUS_E_FAILURE;
|
||||||
|
|
||||||
return soc->ops->ctrl_ops->txrx_set_pdev_param
|
return soc->ops->ctrl_ops->txrx_get_pdev_param
|
||||||
(pdev, type, val);
|
(soc, pdev_id, type, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@@ -705,29 +705,4 @@ cdp_host_get_radio_stats(ol_txrx_soc_handle soc,
|
|||||||
return soc->ops->host_stats_ops->txrx_get_radio_stats(soc, pdev_id,
|
return soc->ops->host_stats_ops->txrx_get_radio_stats(soc, pdev_id,
|
||||||
buf);
|
buf);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* @brief confgure rate stats at soc
|
|
||||||
*
|
|
||||||
* @param soc - opaque soc handle
|
|
||||||
* @param val - capabilities
|
|
||||||
* @return - QDF_STATUS
|
|
||||||
*/
|
|
||||||
static inline QDF_STATUS
|
|
||||||
cdp_soc_configure_rate_stats(ol_txrx_soc_handle soc, uint8_t val)
|
|
||||||
{
|
|
||||||
if (!soc || !soc->ops) {
|
|
||||||
QDF_TRACE(QDF_MODULE_ID_CDP, QDF_TRACE_LEVEL_DEBUG,
|
|
||||||
"%s: Invalid Instance", __func__);
|
|
||||||
QDF_BUG(0);
|
|
||||||
return QDF_STATUS_E_FAILURE;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!soc->ops->host_stats_ops ||
|
|
||||||
!soc->ops->host_stats_ops->configure_rate_stats)
|
|
||||||
return QDF_STATUS_E_FAILURE;
|
|
||||||
|
|
||||||
return soc->ops->host_stats_ops->configure_rate_stats(soc, val);
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif /* _CDP_TXRX_HOST_STATS_H_ */
|
#endif /* _CDP_TXRX_HOST_STATS_H_ */
|
||||||
|
@@ -28,67 +28,8 @@
|
|||||||
/* TODO: adf need to be replaced with qdf */
|
/* TODO: adf need to be replaced with qdf */
|
||||||
#include "cdp_txrx_handle.h"
|
#include "cdp_txrx_handle.h"
|
||||||
|
|
||||||
static inline u_int16_t
|
|
||||||
cdp_tx_desc_alloc_and_mark_for_mcast_clone(ol_txrx_soc_handle soc,
|
|
||||||
struct cdp_pdev *pdev, u_int16_t buf_count)
|
|
||||||
{
|
|
||||||
if (!soc || !soc->ops) {
|
|
||||||
QDF_TRACE(QDF_MODULE_ID_CDP, QDF_TRACE_LEVEL_DEBUG,
|
|
||||||
"%s: Invalid Instance", __func__);
|
|
||||||
QDF_BUG(0);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!soc->ops->me_ops ||
|
|
||||||
!soc->ops->me_ops->tx_desc_alloc_and_mark_for_mcast_clone)
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
return soc->ops->me_ops->
|
|
||||||
tx_desc_alloc_and_mark_for_mcast_clone
|
|
||||||
(pdev, buf_count);
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline u_int16_t
|
|
||||||
cdp_tx_desc_free_and_unmark_for_mcast_clone(ol_txrx_soc_handle soc,
|
|
||||||
struct cdp_pdev *pdev, u_int16_t buf_count)
|
|
||||||
{
|
|
||||||
if (!soc || !soc->ops) {
|
|
||||||
QDF_TRACE(QDF_MODULE_ID_CDP, QDF_TRACE_LEVEL_DEBUG,
|
|
||||||
"%s: Invalid Instance", __func__);
|
|
||||||
QDF_BUG(0);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!soc->ops->me_ops ||
|
|
||||||
!soc->ops->me_ops->tx_desc_free_and_unmark_for_mcast_clone)
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
return soc->ops->me_ops->
|
|
||||||
tx_desc_free_and_unmark_for_mcast_clone
|
|
||||||
(pdev, buf_count);
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline u_int16_t
|
|
||||||
cdp_tx_get_mcast_buf_allocated_marked(ol_txrx_soc_handle soc,
|
|
||||||
struct cdp_pdev *pdev)
|
|
||||||
{
|
|
||||||
if (!soc || !soc->ops) {
|
|
||||||
QDF_TRACE(QDF_MODULE_ID_CDP, QDF_TRACE_LEVEL_DEBUG,
|
|
||||||
"%s: Invalid Instance", __func__);
|
|
||||||
QDF_BUG(0);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!soc->ops->me_ops ||
|
|
||||||
!soc->ops->me_ops->tx_get_mcast_buf_allocated_marked)
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
return soc->ops->me_ops->tx_get_mcast_buf_allocated_marked
|
|
||||||
(pdev);
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline void
|
static inline void
|
||||||
cdp_tx_me_alloc_descriptor(ol_txrx_soc_handle soc, struct cdp_pdev *pdev)
|
cdp_tx_me_alloc_descriptor(ol_txrx_soc_handle soc, uint8_t pdev_id)
|
||||||
{
|
{
|
||||||
if (!soc || !soc->ops) {
|
if (!soc || !soc->ops) {
|
||||||
QDF_TRACE(QDF_MODULE_ID_CDP, QDF_TRACE_LEVEL_DEBUG,
|
QDF_TRACE(QDF_MODULE_ID_CDP, QDF_TRACE_LEVEL_DEBUG,
|
||||||
@@ -101,11 +42,11 @@ cdp_tx_me_alloc_descriptor(ol_txrx_soc_handle soc, struct cdp_pdev *pdev)
|
|||||||
!soc->ops->me_ops->tx_me_alloc_descriptor)
|
!soc->ops->me_ops->tx_me_alloc_descriptor)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
soc->ops->me_ops->tx_me_alloc_descriptor(pdev);
|
soc->ops->me_ops->tx_me_alloc_descriptor(soc, pdev_id);
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline void
|
static inline void
|
||||||
cdp_tx_me_free_descriptor(ol_txrx_soc_handle soc, struct cdp_pdev *pdev)
|
cdp_tx_me_free_descriptor(ol_txrx_soc_handle soc, uint8_t pdev_id)
|
||||||
{
|
{
|
||||||
if (!soc || !soc->ops) {
|
if (!soc || !soc->ops) {
|
||||||
QDF_TRACE(QDF_MODULE_ID_CDP, QDF_TRACE_LEVEL_DEBUG,
|
QDF_TRACE(QDF_MODULE_ID_CDP, QDF_TRACE_LEVEL_DEBUG,
|
||||||
@@ -118,12 +59,13 @@ cdp_tx_me_free_descriptor(ol_txrx_soc_handle soc, struct cdp_pdev *pdev)
|
|||||||
!soc->ops->me_ops->tx_me_free_descriptor)
|
!soc->ops->me_ops->tx_me_free_descriptor)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
soc->ops->me_ops->tx_me_free_descriptor(pdev);
|
soc->ops->me_ops->tx_me_free_descriptor(soc, pdev_id);
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline uint16_t cdp_tx_me_convert_ucast(
|
static inline uint16_t
|
||||||
ol_txrx_soc_handle soc, uint8_t vdev_id,
|
cdp_tx_me_convert_ucast(ol_txrx_soc_handle soc, uint8_t vdev_id,
|
||||||
qdf_nbuf_t wbuf, u_int8_t newmac[][6], uint8_t newmaccnt)
|
qdf_nbuf_t wbuf, u_int8_t newmac[][6],
|
||||||
|
uint8_t newmaccnt)
|
||||||
{
|
{
|
||||||
if (!soc || !soc->ops) {
|
if (!soc || !soc->ops) {
|
||||||
QDF_TRACE(QDF_MODULE_ID_CDP, QDF_TRACE_LEVEL_DEBUG,
|
QDF_TRACE(QDF_MODULE_ID_CDP, QDF_TRACE_LEVEL_DEBUG,
|
||||||
@@ -140,32 +82,4 @@ static inline uint16_t cdp_tx_me_convert_ucast(
|
|||||||
(soc, vdev_id, wbuf, newmac, newmaccnt);
|
(soc, vdev_id, wbuf, newmac, newmaccnt);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Should be a function pointer in ol_txrx_osif_ops{} */
|
|
||||||
/**
|
|
||||||
* @brief notify mcast frame indication from FW.
|
|
||||||
* @details
|
|
||||||
* This notification will be used to convert
|
|
||||||
* multicast frame to unicast.
|
|
||||||
*
|
|
||||||
* @param pdev - handle to the ctrl SW's physical device object
|
|
||||||
* @param vdev_id - ID of the virtual device received the special data
|
|
||||||
* @param msdu - the multicast msdu returned by FW for host inspect
|
|
||||||
*/
|
|
||||||
|
|
||||||
static inline int cdp_mcast_notify(ol_txrx_soc_handle soc,
|
|
||||||
struct cdp_pdev *pdev, u_int8_t vdev_id, qdf_nbuf_t msdu)
|
|
||||||
{
|
|
||||||
if (!soc || !soc->ops) {
|
|
||||||
QDF_TRACE(QDF_MODULE_ID_CDP, QDF_TRACE_LEVEL_DEBUG,
|
|
||||||
"%s: Invalid Instance", __func__);
|
|
||||||
QDF_BUG(0);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!soc->ops->me_ops ||
|
|
||||||
!soc->ops->me_ops->mcast_notify)
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
return soc->ops->me_ops->mcast_notify(pdev, vdev_id, msdu);
|
|
||||||
}
|
|
||||||
#endif
|
#endif
|
||||||
|
@@ -25,116 +25,9 @@
|
|||||||
#ifndef _CDP_TXRX_MON_H_
|
#ifndef _CDP_TXRX_MON_H_
|
||||||
#define _CDP_TXRX_MON_H_
|
#define _CDP_TXRX_MON_H_
|
||||||
#include "cdp_txrx_handle.h"
|
#include "cdp_txrx_handle.h"
|
||||||
static inline void cdp_monitor_set_filter_ucast_data
|
|
||||||
(ol_txrx_soc_handle soc, struct cdp_pdev *pdev, u_int8_t val)
|
|
||||||
{
|
|
||||||
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->mon_ops ||
|
static inline QDF_STATUS cdp_reset_monitor_mode(ol_txrx_soc_handle soc,
|
||||||
!soc->ops->mon_ops->txrx_monitor_set_filter_ucast_data)
|
uint8_t pdev_id)
|
||||||
return;
|
|
||||||
|
|
||||||
soc->ops->mon_ops->txrx_monitor_set_filter_ucast_data
|
|
||||||
(pdev, val);
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline void cdp_monitor_set_filter_mcast_data
|
|
||||||
(ol_txrx_soc_handle soc, struct cdp_pdev *pdev, u_int8_t val)
|
|
||||||
{
|
|
||||||
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->mon_ops ||
|
|
||||||
!soc->ops->mon_ops->txrx_monitor_set_filter_mcast_data)
|
|
||||||
return;
|
|
||||||
|
|
||||||
soc->ops->mon_ops->txrx_monitor_set_filter_mcast_data
|
|
||||||
(pdev, val);
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline void cdp_monitor_set_filter_non_data
|
|
||||||
(ol_txrx_soc_handle soc, struct cdp_pdev *pdev, u_int8_t val)
|
|
||||||
{
|
|
||||||
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->mon_ops ||
|
|
||||||
!soc->ops->mon_ops->txrx_monitor_set_filter_non_data)
|
|
||||||
return;
|
|
||||||
|
|
||||||
soc->ops->mon_ops->txrx_monitor_set_filter_non_data
|
|
||||||
(pdev, val);
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline bool cdp_monitor_get_filter_ucast_data
|
|
||||||
(ol_txrx_soc_handle soc, struct cdp_vdev *vdev_txrx_handle)
|
|
||||||
{
|
|
||||||
if (!soc || !soc->ops) {
|
|
||||||
QDF_TRACE(QDF_MODULE_ID_CDP, QDF_TRACE_LEVEL_DEBUG,
|
|
||||||
"%s: Invalid Instance", __func__);
|
|
||||||
QDF_BUG(0);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!soc->ops->mon_ops ||
|
|
||||||
!soc->ops->mon_ops->txrx_monitor_get_filter_ucast_data)
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
return soc->ops->mon_ops->txrx_monitor_get_filter_ucast_data
|
|
||||||
(vdev_txrx_handle);
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline bool cdp_monitor_get_filter_mcast_data
|
|
||||||
(ol_txrx_soc_handle soc, struct cdp_vdev *vdev_txrx_handle)
|
|
||||||
{
|
|
||||||
if (!soc || !soc->ops) {
|
|
||||||
QDF_TRACE(QDF_MODULE_ID_CDP, QDF_TRACE_LEVEL_DEBUG,
|
|
||||||
"%s: Invalid Instance", __func__);
|
|
||||||
QDF_BUG(0);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!soc->ops->mon_ops ||
|
|
||||||
!soc->ops->mon_ops->txrx_monitor_get_filter_mcast_data)
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
return soc->ops->mon_ops->txrx_monitor_get_filter_mcast_data
|
|
||||||
(vdev_txrx_handle);
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline bool cdp_monitor_get_filter_non_data
|
|
||||||
(ol_txrx_soc_handle soc, struct cdp_vdev *vdev_txrx_handle)
|
|
||||||
{
|
|
||||||
if (!soc || !soc->ops) {
|
|
||||||
QDF_TRACE(QDF_MODULE_ID_CDP, QDF_TRACE_LEVEL_DEBUG,
|
|
||||||
"%s: Invalid Instance", __func__);
|
|
||||||
QDF_BUG(0);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!soc->ops->mon_ops ||
|
|
||||||
!soc->ops->mon_ops->txrx_monitor_get_filter_non_data)
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
return soc->ops->mon_ops->txrx_monitor_get_filter_non_data
|
|
||||||
(vdev_txrx_handle);
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline QDF_STATUS cdp_reset_monitor_mode
|
|
||||||
(ol_txrx_soc_handle soc, struct cdp_pdev *pdev)
|
|
||||||
{
|
{
|
||||||
if (!soc || !soc->ops) {
|
if (!soc || !soc->ops) {
|
||||||
QDF_TRACE(QDF_MODULE_ID_CDP, QDF_TRACE_LEVEL_DEBUG,
|
QDF_TRACE(QDF_MODULE_ID_CDP, QDF_TRACE_LEVEL_DEBUG,
|
||||||
@@ -147,85 +40,31 @@ static inline QDF_STATUS cdp_reset_monitor_mode
|
|||||||
!soc->ops->mon_ops->txrx_reset_monitor_mode)
|
!soc->ops->mon_ops->txrx_reset_monitor_mode)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
return soc->ops->mon_ops->txrx_reset_monitor_mode(pdev);
|
return soc->ops->mon_ops->txrx_reset_monitor_mode(soc, pdev_id);
|
||||||
}
|
|
||||||
|
|
||||||
static inline void
|
|
||||||
cdp_record_monitor_chan_num(ol_txrx_soc_handle soc, struct cdp_pdev *pdev,
|
|
||||||
int chan_num)
|
|
||||||
{
|
|
||||||
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->mon_ops ||
|
|
||||||
!soc->ops->mon_ops->txrx_monitor_record_channel)
|
|
||||||
return;
|
|
||||||
|
|
||||||
soc->ops->mon_ops->txrx_monitor_record_channel(pdev, chan_num);
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline void
|
|
||||||
cdp_record_monitor_chan_freq(ol_txrx_soc_handle soc, struct cdp_pdev *pdev,
|
|
||||||
qdf_freq_t chan_freq)
|
|
||||||
{
|
|
||||||
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->mon_ops ||
|
|
||||||
!soc->ops->mon_ops->txrx_monitor_record_frequency)
|
|
||||||
return;
|
|
||||||
|
|
||||||
soc->ops->mon_ops->txrx_monitor_record_frequency(pdev, chan_freq);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* cdp_deliver_tx_mgmt() - Deliver mgmt frame for tx capture
|
* cdp_deliver_tx_mgmt() - Deliver mgmt frame for tx capture
|
||||||
* @soc: Datapath SOC handle
|
* @soc: Datapath SOC handle
|
||||||
* @pdev: Datapath PDEV handle
|
* @pdev_id: id of datapath PDEV handle
|
||||||
* @nbuf: Management frame buffer
|
* @nbuf: Management frame buffer
|
||||||
*/
|
*/
|
||||||
static inline void
|
static inline QDF_STATUS
|
||||||
cdp_deliver_tx_mgmt(ol_txrx_soc_handle soc, struct cdp_pdev *pdev,
|
cdp_deliver_tx_mgmt(ol_txrx_soc_handle soc, uint8_t pdev_id,
|
||||||
qdf_nbuf_t nbuf)
|
qdf_nbuf_t nbuf)
|
||||||
{
|
{
|
||||||
if (!soc || !soc->ops) {
|
if (!soc || !soc->ops) {
|
||||||
QDF_TRACE(QDF_MODULE_ID_CDP, QDF_TRACE_LEVEL_DEBUG,
|
QDF_TRACE(QDF_MODULE_ID_CDP, QDF_TRACE_LEVEL_DEBUG,
|
||||||
"%s: Invalid Instance", __func__);
|
"%s: Invalid Instance", __func__);
|
||||||
QDF_BUG(0);
|
QDF_BUG(0);
|
||||||
return;
|
return QDF_STATUS_E_FAILURE;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!soc->ops->mon_ops ||
|
if (!soc->ops->mon_ops ||
|
||||||
!soc->ops->mon_ops->txrx_deliver_tx_mgmt)
|
!soc->ops->mon_ops->txrx_deliver_tx_mgmt)
|
||||||
return;
|
return QDF_STATUS_E_FAILURE;
|
||||||
|
|
||||||
soc->ops->mon_ops->txrx_deliver_tx_mgmt(pdev, nbuf);
|
return soc->ops->mon_ops->txrx_deliver_tx_mgmt(soc, pdev_id, nbuf);
|
||||||
}
|
|
||||||
|
|
||||||
static inline void
|
|
||||||
cdp_set_bsscolor(ol_txrx_soc_handle soc, struct cdp_pdev *pdev,
|
|
||||||
uint8_t bsscolor)
|
|
||||||
{
|
|
||||||
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->mon_ops ||
|
|
||||||
!soc->ops->mon_ops->txrx_set_bsscolor)
|
|
||||||
return;
|
|
||||||
|
|
||||||
soc->ops->mon_ops->txrx_set_bsscolor(pdev, bsscolor);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef WLAN_FEATURE_PKT_CAPTURE
|
#ifdef WLAN_FEATURE_PKT_CAPTURE
|
||||||
|
@@ -171,26 +171,6 @@ struct cdp_cmn_ops {
|
|||||||
ol_txrx_peer_unmap_sync_cb
|
ol_txrx_peer_unmap_sync_cb
|
||||||
peer_unmap_sync);
|
peer_unmap_sync);
|
||||||
|
|
||||||
uint8_t (*txrx_get_pdev_id_frm_pdev)(struct cdp_pdev *pdev);
|
|
||||||
bool (*txrx_get_vow_config_frm_pdev)(struct cdp_pdev *pdev);
|
|
||||||
|
|
||||||
void (*txrx_pdev_set_chan_noise_floor)(struct cdp_pdev *pdev,
|
|
||||||
int16_t chan_noise_floor);
|
|
||||||
|
|
||||||
void
|
|
||||||
(*txrx_set_nac)(ol_txrx_soc_handle soc, uint8_t vdev_id,
|
|
||||||
uint8_t *peer_mac);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* txrx_set_pdev_tx_capture() - callback to set pdev tx_capture
|
|
||||||
* @soc: opaque soc handle
|
|
||||||
* @pdev: data path pdev handle
|
|
||||||
* @val: value of pdev_tx_capture
|
|
||||||
*
|
|
||||||
* Return: status: 0 - Success, non-zero: Failure
|
|
||||||
*/
|
|
||||||
QDF_STATUS (*txrx_set_pdev_tx_capture)(struct cdp_pdev *pdev, int val);
|
|
||||||
|
|
||||||
QDF_STATUS
|
QDF_STATUS
|
||||||
(*txrx_get_peer_mac_from_peer_id)
|
(*txrx_get_peer_mac_from_peer_id)
|
||||||
(struct cdp_soc_t *cdp_soc,
|
(struct cdp_soc_t *cdp_soc,
|
||||||
@@ -257,8 +237,6 @@ struct cdp_cmn_ops {
|
|||||||
ol_txrx_mgmt_tx_cb ota_ack_cb,
|
ol_txrx_mgmt_tx_cb ota_ack_cb,
|
||||||
void *ctxt);
|
void *ctxt);
|
||||||
|
|
||||||
int (*txrx_get_tx_pending)(struct cdp_pdev *pdev);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* ol_txrx_data_tx_cb - Function registered with the data path
|
* ol_txrx_data_tx_cb - Function registered with the data path
|
||||||
* that is called when tx frames marked as "no free" are
|
* that is called when tx frames marked as "no free" are
|
||||||
@@ -420,18 +398,12 @@ struct cdp_cmn_ops {
|
|||||||
uint8_t map_id,
|
uint8_t map_id,
|
||||||
uint8_t tos, uint8_t tid);
|
uint8_t tos, uint8_t tid);
|
||||||
|
|
||||||
void (*hmmc_tid_override_en)(struct cdp_pdev *pdev, bool val);
|
|
||||||
void (*set_hmmc_tid_val)(struct cdp_pdev *pdev, uint8_t tid);
|
|
||||||
|
|
||||||
QDF_STATUS (*txrx_stats_request)(struct cdp_soc_t *soc_handle,
|
QDF_STATUS (*txrx_stats_request)(struct cdp_soc_t *soc_handle,
|
||||||
uint8_t vdev_id,
|
uint8_t vdev_id,
|
||||||
struct cdp_txrx_stats_req *req);
|
struct cdp_txrx_stats_req *req);
|
||||||
|
|
||||||
QDF_STATUS (*display_stats)(struct cdp_soc_t *psoc, uint16_t value,
|
QDF_STATUS (*display_stats)(struct cdp_soc_t *psoc, uint16_t value,
|
||||||
enum qdf_stats_verbosity_level level);
|
enum qdf_stats_verbosity_level level);
|
||||||
void (*txrx_soc_set_nss_cfg)(ol_txrx_soc_handle soc, int config);
|
|
||||||
|
|
||||||
int(*txrx_soc_get_nss_cfg)(ol_txrx_soc_handle soc);
|
|
||||||
|
|
||||||
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);
|
||||||
@@ -494,13 +466,16 @@ struct cdp_cmn_ops {
|
|||||||
uint8_t vdev_id,
|
uint8_t vdev_id,
|
||||||
ol_txrx_rx_fp *stack_fn,
|
ol_txrx_rx_fp *stack_fn,
|
||||||
ol_osif_vdev_handle *osif_vdev);
|
ol_osif_vdev_handle *osif_vdev);
|
||||||
|
|
||||||
|
void (*set_rate_stats_ctx)(struct cdp_soc_t *soc,
|
||||||
|
void *ctx);
|
||||||
|
|
||||||
int (*txrx_classify_update)
|
int (*txrx_classify_update)
|
||||||
(struct cdp_soc_t *soc, uint8_t vdev_id, qdf_nbuf_t skb,
|
(struct cdp_soc_t *soc, uint8_t vdev_id, qdf_nbuf_t skb,
|
||||||
enum txrx_direction, struct ol_txrx_nbuf_classify *nbuf_class);
|
enum txrx_direction, struct ol_txrx_nbuf_classify *nbuf_class);
|
||||||
|
|
||||||
bool (*get_dp_capabilities)(struct cdp_soc_t *soc,
|
bool (*get_dp_capabilities)(struct cdp_soc_t *soc,
|
||||||
enum cdp_capabilities dp_caps);
|
enum cdp_capabilities dp_caps);
|
||||||
void (*set_rate_stats_ctx)(struct cdp_soc_t *soc, void *ctx);
|
|
||||||
void* (*get_rate_stats_ctx)(struct cdp_soc_t *soc);
|
void* (*get_rate_stats_ctx)(struct cdp_soc_t *soc);
|
||||||
QDF_STATUS (*txrx_peer_flush_rate_stats)(struct cdp_soc_t *soc,
|
QDF_STATUS (*txrx_peer_flush_rate_stats)(struct cdp_soc_t *soc,
|
||||||
uint8_t pdev_id,
|
uint8_t pdev_id,
|
||||||
@@ -511,13 +486,9 @@ struct cdp_cmn_ops {
|
|||||||
QDF_STATUS (*set_pdev_pcp_tid_map)(struct cdp_soc_t *soc,
|
QDF_STATUS (*set_pdev_pcp_tid_map)(struct cdp_soc_t *soc,
|
||||||
uint8_t pdev_id,
|
uint8_t pdev_id,
|
||||||
uint8_t pcp, uint8_t tid);
|
uint8_t pcp, uint8_t tid);
|
||||||
QDF_STATUS (*set_pdev_tidmap_prty)(struct cdp_pdev *pdev, uint8_t prty);
|
|
||||||
QDF_STATUS (*set_vdev_pcp_tid_map)(struct cdp_soc_t *soc,
|
QDF_STATUS (*set_vdev_pcp_tid_map)(struct cdp_soc_t *soc,
|
||||||
uint8_t vdev_id,
|
uint8_t vdev_id,
|
||||||
uint8_t pcp, uint8_t tid);
|
uint8_t pcp, uint8_t tid);
|
||||||
QDF_STATUS (*set_vdev_tidmap_prty)(struct cdp_vdev *vdev, uint8_t prty);
|
|
||||||
QDF_STATUS (*set_vdev_tidmap_tbl_id)(struct cdp_vdev *vdev,
|
|
||||||
uint8_t mapid);
|
|
||||||
#ifdef QCA_MULTIPASS_SUPPORT
|
#ifdef QCA_MULTIPASS_SUPPORT
|
||||||
QDF_STATUS (*set_vlan_groupkey)(struct cdp_soc_t *soc, uint8_t vdev_id,
|
QDF_STATUS (*set_vlan_groupkey)(struct cdp_soc_t *soc, uint8_t vdev_id,
|
||||||
uint16_t vlan_id, uint16_t group_key);
|
uint16_t vlan_id, uint16_t group_key);
|
||||||
@@ -531,85 +502,11 @@ struct cdp_cmn_ops {
|
|||||||
struct cdp_ctrl_ops {
|
struct cdp_ctrl_ops {
|
||||||
|
|
||||||
int
|
int
|
||||||
(*txrx_mempools_attach)(void *ctrl_pdev);
|
(*txrx_mempools_attach)(ol_txrx_soc_handle dp_soc);
|
||||||
|
|
||||||
int
|
|
||||||
(*txrx_set_filter_neighbour_peers)(
|
|
||||||
struct cdp_pdev *pdev,
|
|
||||||
uint32_t val);
|
|
||||||
int
|
int
|
||||||
(*txrx_update_filter_neighbour_peers)(
|
(*txrx_update_filter_neighbour_peers)(
|
||||||
struct cdp_soc_t *soc, uint8_t vdev_id,
|
struct cdp_soc_t *soc, uint8_t vdev_id,
|
||||||
uint32_t cmd, uint8_t *macaddr);
|
uint32_t cmd, uint8_t *macaddr);
|
||||||
/**
|
|
||||||
* @brief set the safemode of the device
|
|
||||||
* @details
|
|
||||||
* This flag is used to bypass the encrypt and decrypt processes when
|
|
||||||
* send and receive packets. It works like open AUTH mode, HW will
|
|
||||||
* ctreate all packets as non-encrypt frames because no key installed.
|
|
||||||
* For rx fragmented frames,it bypasses all the rx defragmentaion.
|
|
||||||
*
|
|
||||||
* @param vdev - the data virtual device object
|
|
||||||
* @param val - the safemode state
|
|
||||||
* @return - void
|
|
||||||
*/
|
|
||||||
|
|
||||||
void
|
|
||||||
(*txrx_set_safemode)(
|
|
||||||
struct cdp_vdev *vdev,
|
|
||||||
u_int32_t val);
|
|
||||||
/**
|
|
||||||
* @brief configure the drop unencrypted frame flag
|
|
||||||
* @details
|
|
||||||
* Rx related. When set this flag, all the unencrypted frames
|
|
||||||
* received over a secure connection will be discarded
|
|
||||||
*
|
|
||||||
* @param vdev - the data virtual device object
|
|
||||||
* @param val - flag
|
|
||||||
* @return - void
|
|
||||||
*/
|
|
||||||
void
|
|
||||||
(*txrx_set_drop_unenc)(
|
|
||||||
struct cdp_vdev *vdev,
|
|
||||||
u_int32_t val);
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @brief set the Tx encapsulation type of the VDEV
|
|
||||||
* @details
|
|
||||||
* This will be used to populate the HTT desc packet type field
|
|
||||||
* during Tx
|
|
||||||
* @param vdev - the data virtual device object
|
|
||||||
* @param val - the Tx encap type
|
|
||||||
* @return - void
|
|
||||||
*/
|
|
||||||
void
|
|
||||||
(*txrx_set_tx_encap_type)(
|
|
||||||
struct cdp_vdev *vdev,
|
|
||||||
enum htt_cmn_pkt_type val);
|
|
||||||
/**
|
|
||||||
* @brief set the Rx decapsulation type of the VDEV
|
|
||||||
* @details
|
|
||||||
* This will be used to configure into firmware and hardware
|
|
||||||
* which format to decap all Rx packets into, for all peers under
|
|
||||||
* the VDEV.
|
|
||||||
* @param vdev - the data virtual device object
|
|
||||||
* @param val - the Rx decap mode
|
|
||||||
* @return - void
|
|
||||||
*/
|
|
||||||
void
|
|
||||||
(*txrx_set_vdev_rx_decap_type)(
|
|
||||||
struct cdp_vdev *vdev,
|
|
||||||
enum htt_cmn_pkt_type val);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @brief get the Rx decapsulation type of the VDEV
|
|
||||||
*
|
|
||||||
* @param vdev - the data virtual device object
|
|
||||||
* @return - the Rx decap type
|
|
||||||
*/
|
|
||||||
enum htt_cmn_pkt_type
|
|
||||||
(*txrx_get_vdev_rx_decap_type)(struct cdp_vdev *vdev);
|
|
||||||
|
|
||||||
/* Is this similar to ol_txrx_peer_state_update() in MCL */
|
/* Is this similar to ol_txrx_peer_state_update() in MCL */
|
||||||
/**
|
/**
|
||||||
@@ -619,36 +516,28 @@ struct cdp_ctrl_ops {
|
|||||||
* updates the peer/node-related parameters within rate-control
|
* updates the peer/node-related parameters within rate-control
|
||||||
* context of the peer at association.
|
* context of the peer at association.
|
||||||
*
|
*
|
||||||
* @param peer - pointer to the node's object
|
* @param soc_hdl - pointer to the soc object
|
||||||
|
* @param vdev_id - id of the virtual object
|
||||||
|
* @param peer_mac - mac address of the node's object
|
||||||
* @authorize - either to authorize or unauthorize peer
|
* @authorize - either to authorize or unauthorize peer
|
||||||
*
|
*
|
||||||
* @return none
|
* @return QDF_STATUS
|
||||||
*/
|
*/
|
||||||
void
|
QDF_STATUS
|
||||||
(*txrx_peer_authorize)(struct cdp_peer *peer,
|
(*txrx_peer_authorize)(struct cdp_soc_t *soc_hdl,
|
||||||
u_int32_t authorize);
|
uint8_t vdev_id,
|
||||||
|
uint8_t *peer_mac,
|
||||||
|
u_int32_t authorize);
|
||||||
|
|
||||||
/* Should be ol_txrx_ctrl_api.h */
|
void (*tx_flush_buffers)(struct cdp_soc_t *soc, uint8_t vdev_id);
|
||||||
void (*txrx_set_mesh_mode)(struct cdp_vdev *vdev, u_int32_t val);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @brief setting mesh rx filter
|
|
||||||
* @details
|
|
||||||
* based on the bits enabled in the filter packets has to be dropped.
|
|
||||||
*
|
|
||||||
* @param vdev - the data virtual device object
|
|
||||||
* @param val - value to set
|
|
||||||
*/
|
|
||||||
void (*txrx_set_mesh_rx_filter)(struct cdp_vdev *vdev, uint32_t val);
|
|
||||||
|
|
||||||
void (*tx_flush_buffers)(struct cdp_vdev *vdev);
|
|
||||||
|
|
||||||
int (*txrx_is_target_ar900b)(struct cdp_soc_t *soc_hdl);
|
int (*txrx_is_target_ar900b)(struct cdp_soc_t *soc_hdl);
|
||||||
|
|
||||||
void (*txrx_set_vdev_param)(struct cdp_vdev *vdev,
|
QDF_STATUS
|
||||||
enum cdp_vdev_param_type param, uint32_t val);
|
(*txrx_set_vdev_param)(struct cdp_soc_t *soc, uint8_t vdev_id,
|
||||||
|
enum cdp_vdev_param_type param,
|
||||||
|
cdp_config_param_type val);
|
||||||
|
|
||||||
void (*txrx_peer_set_nawds)(struct cdp_peer *peer, uint8_t value);
|
|
||||||
/**
|
/**
|
||||||
* @brief Set the reo dest ring num of the radio
|
* @brief Set the reo dest ring num of the radio
|
||||||
* @details
|
* @details
|
||||||
@@ -687,6 +576,9 @@ struct cdp_ctrl_ops {
|
|||||||
wdi_event_subscribe *event_cb_sub,
|
wdi_event_subscribe *event_cb_sub,
|
||||||
uint32_t event);
|
uint32_t event);
|
||||||
|
|
||||||
|
int (*txrx_get_sec_type)(ol_txrx_soc_handle soc, uint8_t vdev_id,
|
||||||
|
uint8_t *peer_mac, uint8_t sec_idx);
|
||||||
|
|
||||||
QDF_STATUS
|
QDF_STATUS
|
||||||
(*txrx_update_mgmt_txpow_vdev)(struct cdp_soc_t *soc,
|
(*txrx_update_mgmt_txpow_vdev)(struct cdp_soc_t *soc,
|
||||||
uint8_t vdev_id,
|
uint8_t vdev_id,
|
||||||
@@ -695,14 +587,31 @@ struct cdp_ctrl_ops {
|
|||||||
/**
|
/**
|
||||||
* txrx_set_pdev_param() - callback to set pdev parameter
|
* txrx_set_pdev_param() - callback to set pdev parameter
|
||||||
* @soc: opaque soc handle
|
* @soc: opaque soc handle
|
||||||
* @pdev: data path pdev handle
|
* @pdev_id:id of data path pdev handle
|
||||||
* @val: value of pdev_tx_capture
|
* @val: value of pdev_tx_capture
|
||||||
*
|
*
|
||||||
* Return: status: 0 - Success, non-zero: Failure
|
* Return: status: 0 - Success, non-zero: Failure
|
||||||
*/
|
*/
|
||||||
QDF_STATUS (*txrx_set_pdev_param)(struct cdp_pdev *pdev,
|
QDF_STATUS (*txrx_set_pdev_param)(struct cdp_soc_t *soc,
|
||||||
|
uint8_t pdev_id,
|
||||||
enum cdp_pdev_param_type type,
|
enum cdp_pdev_param_type type,
|
||||||
uint32_t val);
|
cdp_config_param_type val);
|
||||||
|
|
||||||
|
QDF_STATUS (*txrx_get_pdev_param)(struct cdp_soc_t *soc,
|
||||||
|
uint8_t pdev_id,
|
||||||
|
enum cdp_pdev_param_type type,
|
||||||
|
cdp_config_param_type *val);
|
||||||
|
|
||||||
|
QDF_STATUS (*txrx_set_peer_param)(struct cdp_soc_t *soc,
|
||||||
|
uint8_t vdev_id, uint8_t *peer_mac,
|
||||||
|
enum cdp_peer_param_type param,
|
||||||
|
cdp_config_param_type val);
|
||||||
|
|
||||||
|
QDF_STATUS (*txrx_get_peer_param)(struct cdp_soc_t *soc,
|
||||||
|
uint8_t vdev_id, uint8_t *peer_mac,
|
||||||
|
enum cdp_peer_param_type param,
|
||||||
|
cdp_config_param_type *val);
|
||||||
|
|
||||||
void * (*txrx_get_pldev)(struct cdp_pdev *pdev);
|
void * (*txrx_get_pldev)(struct cdp_pdev *pdev);
|
||||||
|
|
||||||
#ifdef ATH_SUPPORT_NAC_RSSI
|
#ifdef ATH_SUPPORT_NAC_RSSI
|
||||||
@@ -722,8 +631,10 @@ struct cdp_ctrl_ops {
|
|||||||
(*set_key)(struct cdp_soc_t *soc, uint8_t vdev_id, uint8_t *mac,
|
(*set_key)(struct cdp_soc_t *soc, uint8_t vdev_id, uint8_t *mac,
|
||||||
bool is_unicast, uint32_t *key);
|
bool is_unicast, uint32_t *key);
|
||||||
|
|
||||||
uint32_t (*txrx_get_vdev_param)(struct cdp_vdev *vdev,
|
QDF_STATUS (*txrx_get_vdev_param)(struct cdp_soc_t *soc,
|
||||||
enum cdp_vdev_param_type param);
|
uint8_t vdev_id,
|
||||||
|
enum cdp_vdev_param_type param,
|
||||||
|
cdp_config_param_type *val);
|
||||||
int (*enable_peer_based_pktlog)(struct cdp_soc_t *cdp_soc,
|
int (*enable_peer_based_pktlog)(struct cdp_soc_t *cdp_soc,
|
||||||
uint8_t pdev_id,
|
uint8_t pdev_id,
|
||||||
uint8_t *macaddr, uint8_t enb_dsb);
|
uint8_t *macaddr, uint8_t enb_dsb);
|
||||||
@@ -761,78 +672,40 @@ struct cdp_ctrl_ops {
|
|||||||
bool is_rx_pkt_cap_enable, bool is_tx_pkt_cap_enable,
|
bool is_rx_pkt_cap_enable, bool is_tx_pkt_cap_enable,
|
||||||
uint8_t *peer_mac);
|
uint8_t *peer_mac);
|
||||||
#endif /* WLAN_TX_PKT_CAPTURE_ENH || WLAN_RX_PKT_CAPTURE_ENH */
|
#endif /* WLAN_TX_PKT_CAPTURE_ENH || WLAN_RX_PKT_CAPTURE_ENH */
|
||||||
|
QDF_STATUS
|
||||||
|
(*txrx_set_psoc_param)(struct cdp_soc_t *soc,
|
||||||
|
enum cdp_psoc_param_type param,
|
||||||
|
cdp_config_param_type val);
|
||||||
|
|
||||||
|
QDF_STATUS (*txrx_get_psoc_param)(ol_txrx_soc_handle soc,
|
||||||
|
enum cdp_psoc_param_type type,
|
||||||
|
cdp_config_param_type *val);
|
||||||
};
|
};
|
||||||
|
|
||||||
struct cdp_me_ops {
|
struct cdp_me_ops {
|
||||||
|
|
||||||
u_int16_t (*tx_desc_alloc_and_mark_for_mcast_clone)
|
void (*tx_me_alloc_descriptor)(struct cdp_soc_t *soc,
|
||||||
(struct cdp_pdev *pdev, u_int16_t buf_count);
|
uint8_t pdev_id);
|
||||||
|
|
||||||
u_int16_t (*tx_desc_free_and_unmark_for_mcast_clone)(
|
void (*tx_me_free_descriptor)(struct cdp_soc_t *soc, uint8_t pdev_id);
|
||||||
struct cdp_pdev *pdev,
|
|
||||||
u_int16_t buf_count);
|
|
||||||
|
|
||||||
u_int16_t
|
uint16_t (*tx_me_convert_ucast)(struct cdp_soc_t *soc, uint8_t vdev_id,
|
||||||
(*tx_get_mcast_buf_allocated_marked)
|
qdf_nbuf_t wbuf, u_int8_t newmac[][6],
|
||||||
(struct cdp_pdev *pdev);
|
uint8_t newmaccnt);
|
||||||
void
|
|
||||||
(*tx_me_alloc_descriptor)(struct cdp_pdev *pdev);
|
|
||||||
|
|
||||||
void
|
|
||||||
(*tx_me_free_descriptor)(struct cdp_pdev *pdev);
|
|
||||||
|
|
||||||
uint16_t (*tx_me_convert_ucast)(
|
|
||||||
ol_txrx_soc_handle soc, uint8_t vdev_id,
|
|
||||||
qdf_nbuf_t wbuf, u_int8_t newmac[][6],
|
|
||||||
uint8_t newmaccnt);
|
|
||||||
/* Should be a function pointer in ol_txrx_osif_ops{} */
|
|
||||||
/**
|
|
||||||
* @brief notify mcast frame indication from FW.
|
|
||||||
* @details
|
|
||||||
* This notification will be used to convert
|
|
||||||
* multicast frame to unicast.
|
|
||||||
*
|
|
||||||
* @param pdev - handle to the ctrl SW's physical device object
|
|
||||||
* @param vdev_id - ID of the virtual device received the special data
|
|
||||||
* @param msdu - the multicast msdu returned by FW for host inspect
|
|
||||||
*/
|
|
||||||
|
|
||||||
int (*mcast_notify)(struct cdp_pdev *pdev,
|
|
||||||
u_int8_t vdev_id, qdf_nbuf_t msdu);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
struct cdp_mon_ops {
|
struct cdp_mon_ops {
|
||||||
|
|
||||||
void (*txrx_monitor_set_filter_ucast_data)
|
QDF_STATUS (*txrx_reset_monitor_mode)(ol_txrx_soc_handle soc,
|
||||||
(struct cdp_pdev *, u_int8_t val);
|
uint8_t pdev_id);
|
||||||
void (*txrx_monitor_set_filter_mcast_data)
|
|
||||||
(struct cdp_pdev *, u_int8_t val);
|
|
||||||
void (*txrx_monitor_set_filter_non_data)
|
|
||||||
(struct cdp_pdev *, u_int8_t val);
|
|
||||||
|
|
||||||
bool (*txrx_monitor_get_filter_ucast_data)
|
QDF_STATUS (*txrx_deliver_tx_mgmt)
|
||||||
(struct cdp_vdev *vdev_txrx_handle);
|
(struct cdp_soc_t *cdp_soc, uint8_t pdev_id, qdf_nbuf_t nbuf);
|
||||||
bool (*txrx_monitor_get_filter_mcast_data)
|
|
||||||
(struct cdp_vdev *vdev_txrx_handle);
|
|
||||||
bool (*txrx_monitor_get_filter_non_data)
|
|
||||||
(struct cdp_vdev *vdev_txrx_handle);
|
|
||||||
QDF_STATUS (*txrx_reset_monitor_mode)(struct cdp_pdev *pdev);
|
|
||||||
|
|
||||||
/* HK advance monitor filter support */
|
/* HK advance monitor filter support */
|
||||||
QDF_STATUS (*txrx_set_advance_monitor_filter)
|
QDF_STATUS (*txrx_set_advance_monitor_filter)
|
||||||
(struct cdp_pdev *pdev, struct cdp_monitor_filter *filter_val);
|
(struct cdp_soc_t *soc_hdl, uint8_t pdev_id,
|
||||||
|
struct cdp_monitor_filter *filter_val);
|
||||||
void (*txrx_monitor_record_channel)
|
|
||||||
(struct cdp_pdev *pdev, int val);
|
|
||||||
|
|
||||||
void (*txrx_monitor_record_frequency)
|
|
||||||
(struct cdp_pdev *pdev, qdf_freq_t val);
|
|
||||||
|
|
||||||
void (*txrx_deliver_tx_mgmt)
|
|
||||||
(struct cdp_pdev *pdev, qdf_nbuf_t nbuf);
|
|
||||||
|
|
||||||
void (*txrx_set_bsscolor)
|
|
||||||
(struct cdp_pdev *pdev, uint8_t bsscolor);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#ifdef WLAN_FEATURE_PKT_CAPTURE
|
#ifdef WLAN_FEATURE_PKT_CAPTURE
|
||||||
@@ -983,9 +856,6 @@ struct cdp_host_stats_ops {
|
|||||||
(*txrx_get_ratekbps)(int preamb, int mcs,
|
(*txrx_get_ratekbps)(int preamb, int mcs,
|
||||||
int htflag, int gintval);
|
int htflag, int gintval);
|
||||||
|
|
||||||
QDF_STATUS
|
|
||||||
(*configure_rate_stats)(struct cdp_soc_t *soc, uint8_t val);
|
|
||||||
|
|
||||||
QDF_STATUS
|
QDF_STATUS
|
||||||
(*txrx_update_peer_stats)(struct cdp_soc_t *soc, uint8_t vdev_id,
|
(*txrx_update_peer_stats)(struct cdp_soc_t *soc, uint8_t vdev_id,
|
||||||
uint8_t *peer_mac, void *stats,
|
uint8_t *peer_mac, void *stats,
|
||||||
|
@@ -1012,6 +1012,13 @@ void dp_rx_tid_stats_cb(struct dp_soc *soc, void *cb_ctxt,
|
|||||||
union hal_reo_status *reo_status);
|
union hal_reo_status *reo_status);
|
||||||
void dp_rx_bar_stats_cb(struct dp_soc *soc, void *cb_ctxt,
|
void dp_rx_bar_stats_cb(struct dp_soc *soc, void *cb_ctxt,
|
||||||
union hal_reo_status *reo_status);
|
union hal_reo_status *reo_status);
|
||||||
|
uint16_t dp_tx_me_send_convert_ucast(struct cdp_soc_t *soc, uint8_t vdev_id,
|
||||||
|
qdf_nbuf_t nbuf,
|
||||||
|
uint8_t newmac[][QDF_MAC_ADDR_SIZE],
|
||||||
|
uint8_t new_mac_cnt);
|
||||||
|
void dp_tx_me_alloc_descriptor(struct cdp_soc_t *soc, uint8_t pdev_id);
|
||||||
|
|
||||||
|
void dp_tx_me_free_descriptor(struct cdp_soc_t *soc, uint8_t pdev_id);
|
||||||
QDF_STATUS dp_h2t_ext_stats_msg_send(struct dp_pdev *pdev,
|
QDF_STATUS dp_h2t_ext_stats_msg_send(struct dp_pdev *pdev,
|
||||||
uint32_t stats_type_upload_mask, uint32_t config_param_0,
|
uint32_t stats_type_upload_mask, uint32_t config_param_0,
|
||||||
uint32_t config_param_1, uint32_t config_param_2,
|
uint32_t config_param_1, uint32_t config_param_2,
|
||||||
|
File diff suppressed because it is too large
Load Diff
@@ -3427,39 +3427,6 @@ void dp_local_peer_id_free(struct dp_pdev *pdev, struct dp_peer *peer)
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
|
||||||
* dp_get_peer_mac_addr_frm_id(): get mac address of the peer
|
|
||||||
* @soc_handle: DP SOC handle
|
|
||||||
* @peer_id:peer_id of the peer
|
|
||||||
*
|
|
||||||
* return: vdev_id of the vap
|
|
||||||
*/
|
|
||||||
uint8_t dp_get_peer_mac_addr_frm_id(struct cdp_soc_t *soc_handle,
|
|
||||||
uint16_t peer_id, uint8_t *peer_mac)
|
|
||||||
{
|
|
||||||
struct dp_soc *soc = (struct dp_soc *)soc_handle;
|
|
||||||
struct dp_peer *peer;
|
|
||||||
uint8_t vdev_id;
|
|
||||||
|
|
||||||
peer = dp_peer_find_by_id(soc, peer_id);
|
|
||||||
|
|
||||||
QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_DEBUG,
|
|
||||||
"soc %pK peer_id %d", soc, peer_id);
|
|
||||||
|
|
||||||
if (!peer) {
|
|
||||||
QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_ERROR,
|
|
||||||
"peer not found ");
|
|
||||||
return CDP_INVALID_VDEV_ID;
|
|
||||||
}
|
|
||||||
|
|
||||||
qdf_mem_copy(peer_mac, peer->mac_addr.raw, 6);
|
|
||||||
vdev_id = peer->vdev->vdev_id;
|
|
||||||
|
|
||||||
dp_peer_unref_del_find_by_id(peer);
|
|
||||||
|
|
||||||
return vdev_id;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* dp_peer_rxtid_stats: Retried Rx TID (REO queue) stats from HW
|
* dp_peer_rxtid_stats: Retried Rx TID (REO queue) stats from HW
|
||||||
* @peer: DP peer handle
|
* @peer: DP peer handle
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2016-2019 The Linux Foundation. All rights reserved.
|
* Copyright (c) 2016-2020 The Linux Foundation. All rights reserved.
|
||||||
*
|
*
|
||||||
* Permission to use, copy, modify, and/or distribute this software for
|
* Permission to use, copy, modify, and/or distribute this software for
|
||||||
* any purpose with or without fee is hereby granted, provided that the
|
* any purpose with or without fee is hereby granted, provided that the
|
||||||
@@ -179,6 +179,7 @@ dp_peer_update_inactive_time(struct dp_pdev *pdev, uint32_t tag_type,
|
|||||||
/**
|
/**
|
||||||
* dp_peer_set_vlan_id: set vlan_id for this peer
|
* dp_peer_set_vlan_id: set vlan_id for this peer
|
||||||
* @cdp_soc: soc handle
|
* @cdp_soc: soc handle
|
||||||
|
* @vdev_id: id of vdev object
|
||||||
* @peer_mac: mac address
|
* @peer_mac: mac address
|
||||||
* @vlan_id: vlan id for peer
|
* @vlan_id: vlan id for peer
|
||||||
*
|
*
|
||||||
@@ -186,16 +187,16 @@ dp_peer_update_inactive_time(struct dp_pdev *pdev, uint32_t tag_type,
|
|||||||
*/
|
*/
|
||||||
static inline
|
static inline
|
||||||
void dp_peer_set_vlan_id(struct cdp_soc_t *cdp_soc,
|
void dp_peer_set_vlan_id(struct cdp_soc_t *cdp_soc,
|
||||||
struct cdp_vdev *vdev_handle, uint8_t *peer_mac,
|
uint8_t vdev_id, uint8_t *peer_mac,
|
||||||
uint16_t vlan_id)
|
uint16_t vlan_id)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* dp_set_vlan_groupkey: set vlan map for vdev
|
* dp_set_vlan_groupkey: set vlan map for vdev
|
||||||
* @cdp_soc: soc handle
|
* @soc: pointer to soc
|
||||||
* @vdev_id: vdev_id
|
* @vdev_id: id of vdev handle
|
||||||
* @vlan_id: vlan_id of peer
|
* @vlan_id: vlan_id
|
||||||
* @group_key: group key for vlan
|
* @group_key: group key for vlan
|
||||||
*
|
*
|
||||||
* return: set success/failure
|
* return: set success/failure
|
||||||
@@ -230,7 +231,7 @@ void dp_peer_multipass_list_remove(struct dp_peer *peer)
|
|||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
void dp_peer_set_vlan_id(struct cdp_soc_t *cdp_soc,
|
void dp_peer_set_vlan_id(struct cdp_soc_t *cdp_soc,
|
||||||
struct cdp_vdev *vdev_handle, uint8_t *peer_mac,
|
uint8_t vdev_id, uint8_t *peer_mac,
|
||||||
uint16_t vlan_id);
|
uint16_t vlan_id);
|
||||||
QDF_STATUS dp_set_vlan_groupkey(struct cdp_soc_t *soc, uint8_t vdev_id,
|
QDF_STATUS dp_set_vlan_groupkey(struct cdp_soc_t *soc, uint8_t vdev_id,
|
||||||
uint16_t vlan_id, uint16_t group_key);
|
uint16_t vlan_id, uint16_t group_key);
|
||||||
@@ -240,6 +241,8 @@ void dp_peer_multipass_list_remove(struct dp_peer *peer);
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* dp_peer_update_pkt_capture_params: Set Rx & Tx Capture flags for a peer
|
* dp_peer_update_pkt_capture_params: Set Rx & Tx Capture flags for a peer
|
||||||
|
* @soc: DP SOC handle
|
||||||
|
* @pdev_id: id of DP pdev handle
|
||||||
* @is_rx_pkt_cap_enable: enable/disable Rx packet capture in monitor mode
|
* @is_rx_pkt_cap_enable: enable/disable Rx packet capture in monitor mode
|
||||||
* @is_tx_pkt_cap_enable: enable/disable Tx packet capture in monitor mode
|
* @is_tx_pkt_cap_enable: enable/disable Tx packet capture in monitor mode
|
||||||
* @peer_mac: MAC address for which the above need to be enabled/disabled
|
* @peer_mac: MAC address for which the above need to be enabled/disabled
|
||||||
@@ -247,7 +250,8 @@ void dp_peer_multipass_list_remove(struct dp_peer *peer);
|
|||||||
* Return: Success if Rx & Tx capture is enabled for peer, false otherwise
|
* Return: Success if Rx & Tx capture is enabled for peer, false otherwise
|
||||||
*/
|
*/
|
||||||
QDF_STATUS
|
QDF_STATUS
|
||||||
dp_peer_update_pkt_capture_params(struct cdp_pdev *pdev,
|
dp_peer_update_pkt_capture_params(ol_txrx_soc_handle soc,
|
||||||
|
uint8_t pdev_id,
|
||||||
bool is_rx_pkt_cap_enable,
|
bool is_rx_pkt_cap_enable,
|
||||||
bool is_tx_pkt_cap_enable,
|
bool is_tx_pkt_cap_enable,
|
||||||
uint8_t *peer_mac);
|
uint8_t *peer_mac);
|
||||||
|
@@ -313,7 +313,7 @@ dp_rx_deliver_raw(struct dp_vdev *vdev, qdf_nbuf_t nbuf_list,
|
|||||||
}
|
}
|
||||||
|
|
||||||
vdev->osif_rsim_rx_decap(vdev->osif_vdev, &deliver_list_head,
|
vdev->osif_rsim_rx_decap(vdev->osif_vdev, &deliver_list_head,
|
||||||
&deliver_list_tail, (struct cdp_peer*) peer);
|
&deliver_list_tail, peer->mac_addr.raw);
|
||||||
|
|
||||||
vdev->osif_rx(vdev->osif_vdev, deliver_list_head);
|
vdev->osif_rx(vdev->osif_vdev, deliver_list_head);
|
||||||
}
|
}
|
||||||
@@ -1323,7 +1323,7 @@ static inline void dp_rx_deliver_to_stack(struct dp_vdev *vdev,
|
|||||||
if (qdf_unlikely(vdev->rx_decap_type == htt_cmn_pkt_type_raw) ||
|
if (qdf_unlikely(vdev->rx_decap_type == htt_cmn_pkt_type_raw) ||
|
||||||
(vdev->rx_decap_type == htt_cmn_pkt_type_native_wifi)) {
|
(vdev->rx_decap_type == htt_cmn_pkt_type_native_wifi)) {
|
||||||
vdev->osif_rsim_rx_decap(vdev->osif_vdev, &nbuf_head,
|
vdev->osif_rsim_rx_decap(vdev->osif_vdev, &nbuf_head,
|
||||||
&nbuf_tail, (struct cdp_peer *) peer);
|
&nbuf_tail, peer->mac_addr.raw);
|
||||||
}
|
}
|
||||||
|
|
||||||
vdev->osif_rx(vdev->osif_vdev, nbuf_head);
|
vdev->osif_rx(vdev->osif_vdev, nbuf_head);
|
||||||
|
@@ -1100,7 +1100,7 @@ bool dp_rx_multipass_process(struct dp_peer *peer, qdf_nbuf_t nbuf,
|
|||||||
|
|
||||||
#ifndef WLAN_RX_PKT_CAPTURE_ENH
|
#ifndef WLAN_RX_PKT_CAPTURE_ENH
|
||||||
static inline
|
static inline
|
||||||
void dp_peer_set_rx_capture_enabled(struct cdp_peer *peer_handle, bool value)
|
void dp_peer_set_rx_capture_enabled(struct dp_peer *peer_handle, bool value)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2016-2019 The Linux Foundation. All rights reserved.
|
* Copyright (c) 2016-2020 The Linux Foundation. All rights reserved.
|
||||||
*
|
*
|
||||||
* Permission to use, copy, modify, and/or distribute this software for
|
* Permission to use, copy, modify, and/or distribute this software for
|
||||||
* any purpose with or without fee is hereby granted, provided that the
|
* any purpose with or without fee is hereby granted, provided that the
|
||||||
@@ -45,7 +45,7 @@ QDF_STATUS dp_rx_pdev_mon_status_detach(struct dp_pdev *pdev, int mac_id);
|
|||||||
*
|
*
|
||||||
* Return: QDF_STATUS
|
* Return: QDF_STATUS
|
||||||
*/
|
*/
|
||||||
QDF_STATUS dp_reset_monitor_mode(struct cdp_pdev *pdev_handle);
|
QDF_STATUS dp_reset_monitor_mode(struct cdp_soc_t *soc_hdl, uint8_t pdev_id);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* dp_pdev_configure_monitor_rings() - configure monitor rings
|
* dp_pdev_configure_monitor_rings() - configure monitor rings
|
||||||
|
@@ -2049,30 +2049,6 @@ static bool dp_check_exc_metadata(struct cdp_tx_exception_metadata *tx_exc)
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* __dp_tx_send_exception: Wrapper API for dp_tx_send_exception.
|
|
||||||
* @soc: DP soc handle
|
|
||||||
* @vdev_id: id of DP vdev handle
|
|
||||||
* @tx_exc_metadata: Handle that holds exception path meta data
|
|
||||||
*
|
|
||||||
* Return: NULL on success,
|
|
||||||
* nbuf when it fails to send
|
|
||||||
*/
|
|
||||||
qdf_nbuf_t
|
|
||||||
__dp_tx_send_exception(ol_txrx_soc_handle soc, uint8_t vdev_id, qdf_nbuf_t nbuf,
|
|
||||||
struct cdp_tx_exception_metadata *tx_exc_metadata)
|
|
||||||
{
|
|
||||||
struct dp_vdev *vdev =
|
|
||||||
dp_get_vdev_from_soc_vdev_id_wifi3((struct dp_soc *)soc,
|
|
||||||
vdev_id);
|
|
||||||
|
|
||||||
if (!vdev)
|
|
||||||
return nbuf;
|
|
||||||
|
|
||||||
return dp_tx_send_exception((struct cdp_vdev *)vdev, nbuf,
|
|
||||||
tx_exc_metadata);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* dp_tx_send_exception() - Transmit a frame on a given VAP in exception path
|
* dp_tx_send_exception() - Transmit a frame on a given VAP in exception path
|
||||||
* @soc: DP soc handle
|
* @soc: DP soc handle
|
||||||
@@ -2091,10 +2067,10 @@ dp_tx_send_exception(struct cdp_soc_t *soc, uint8_t vdev_id, qdf_nbuf_t nbuf,
|
|||||||
struct cdp_tx_exception_metadata *tx_exc_metadata)
|
struct cdp_tx_exception_metadata *tx_exc_metadata)
|
||||||
{
|
{
|
||||||
qdf_ether_header_t *eh = NULL;
|
qdf_ether_header_t *eh = NULL;
|
||||||
|
struct dp_tx_msdu_info_s msdu_info;
|
||||||
struct dp_vdev *vdev =
|
struct dp_vdev *vdev =
|
||||||
dp_get_vdev_from_soc_vdev_id_wifi3((struct dp_soc *)soc,
|
dp_get_vdev_from_soc_vdev_id_wifi3((struct dp_soc *)soc,
|
||||||
vdev_id);
|
vdev_id);
|
||||||
struct dp_tx_msdu_info_s msdu_info;
|
|
||||||
|
|
||||||
if (qdf_unlikely(!vdev))
|
if (qdf_unlikely(!vdev))
|
||||||
goto fail;
|
goto fail;
|
||||||
|
@@ -187,11 +187,8 @@ QDF_STATUS dp_tx_pdev_attach(struct dp_pdev *pdev);
|
|||||||
|
|
||||||
qdf_nbuf_t dp_tx_send(struct cdp_soc_t *soc, uint8_t vdev_id, qdf_nbuf_t nbuf);
|
qdf_nbuf_t dp_tx_send(struct cdp_soc_t *soc, uint8_t vdev_id, qdf_nbuf_t nbuf);
|
||||||
|
|
||||||
qdf_nbuf_t
|
qdf_nbuf_t dp_tx_send_exception(struct cdp_soc_t *soc, uint8_t vdev_id,
|
||||||
__dp_tx_send_exception(ol_txrx_soc_handle soc, uint8_t vdev_id, qdf_nbuf_t nbuf,
|
qdf_nbuf_t nbuf,
|
||||||
struct cdp_tx_exception_metadata *tx_exc_metadata);
|
|
||||||
|
|
||||||
qdf_nbuf_t dp_tx_send_exception(struct cdp_vdev *data_vdev, qdf_nbuf_t nbuf,
|
|
||||||
struct cdp_tx_exception_metadata *tx_exc);
|
struct cdp_tx_exception_metadata *tx_exc);
|
||||||
qdf_nbuf_t dp_tx_send_mesh(struct cdp_soc_t *soc, uint8_t vdev_id,
|
qdf_nbuf_t dp_tx_send_mesh(struct cdp_soc_t *soc, uint8_t vdev_id,
|
||||||
qdf_nbuf_t nbuf);
|
qdf_nbuf_t nbuf);
|
||||||
@@ -360,7 +357,7 @@ static inline void dp_tx_comp_process_exception(struct dp_tx_desc_s *tx_desc)
|
|||||||
|
|
||||||
#ifndef WLAN_TX_PKT_CAPTURE_ENH
|
#ifndef WLAN_TX_PKT_CAPTURE_ENH
|
||||||
static inline
|
static inline
|
||||||
void dp_peer_set_tx_capture_enabled(struct cdp_peer *peer_handle, bool value)
|
void dp_peer_set_tx_capture_enabled(struct dp_peer *peer_handle, bool value)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
@@ -1915,7 +1915,7 @@ struct dp_vdev {
|
|||||||
struct dp_tx_desc_pool_s *pool;
|
struct dp_tx_desc_pool_s *pool;
|
||||||
#endif
|
#endif
|
||||||
/* AP BRIDGE enabled */
|
/* AP BRIDGE enabled */
|
||||||
uint32_t ap_bridge_enabled;
|
bool ap_bridge_enabled;
|
||||||
|
|
||||||
enum cdp_sec_type sec_type;
|
enum cdp_sec_type sec_type;
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user