qcacmn: removal of cp handles and changes for ol_if_ops
Remove pdev and vdev control path handles from data path. Instead send pdev_id and vdev_id along with opaque soc handle in ol_if_ops. Change-Id: I6ee083f07e464f283da0d70ada70a4e10e18e1b2
This commit is contained in:

committed by
nshrivas

orang tua
7c7089627e
melakukan
4c7b81b540
@@ -274,8 +274,8 @@ cdp_pdev_attach_target(ol_txrx_soc_handle soc, struct cdp_pdev *pdev)
|
|||||||
}
|
}
|
||||||
|
|
||||||
static inline struct cdp_pdev *cdp_pdev_attach
|
static inline struct cdp_pdev *cdp_pdev_attach
|
||||||
(ol_txrx_soc_handle soc, struct cdp_ctrl_objmgr_pdev *ctrl_pdev,
|
(ol_txrx_soc_handle soc, HTC_HANDLE htc_pdev, qdf_device_t osdev,
|
||||||
HTC_HANDLE htc_pdev, qdf_device_t osdev, uint8_t pdev_id)
|
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,
|
||||||
@@ -288,8 +288,8 @@ static inline struct cdp_pdev *cdp_pdev_attach
|
|||||||
!soc->ops->cmn_drv_ops->txrx_pdev_attach)
|
!soc->ops->cmn_drv_ops->txrx_pdev_attach)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
return soc->ops->cmn_drv_ops->txrx_pdev_attach(soc, ctrl_pdev,
|
return soc->ops->cmn_drv_ops->txrx_pdev_attach(soc, htc_pdev, osdev,
|
||||||
htc_pdev, osdev, pdev_id);
|
pdev_id);
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline int cdp_pdev_post_attach(ol_txrx_soc_handle soc,
|
static inline int cdp_pdev_post_attach(ol_txrx_soc_handle soc,
|
||||||
@@ -814,7 +814,7 @@ cdp_set_monitor_filter(ol_txrx_soc_handle soc, struct cdp_pdev *pdev,
|
|||||||
*****************************************************************************/
|
*****************************************************************************/
|
||||||
static inline void
|
static inline void
|
||||||
cdp_vdev_register(ol_txrx_soc_handle soc, struct cdp_vdev *vdev,
|
cdp_vdev_register(ol_txrx_soc_handle soc, struct cdp_vdev *vdev,
|
||||||
void *osif_vdev, struct cdp_ctrl_objmgr_vdev *ctrl_vdev,
|
void *osif_vdev,
|
||||||
struct ol_txrx_ops *txrx_ops)
|
struct ol_txrx_ops *txrx_ops)
|
||||||
{
|
{
|
||||||
if (!soc || !soc->ops) {
|
if (!soc || !soc->ops) {
|
||||||
@@ -829,7 +829,7 @@ cdp_vdev_register(ol_txrx_soc_handle soc, struct cdp_vdev *vdev,
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
soc->ops->cmn_drv_ops->txrx_vdev_register(vdev,
|
soc->ops->cmn_drv_ops->txrx_vdev_register(vdev,
|
||||||
osif_vdev, ctrl_vdev, txrx_ops);
|
osif_vdev, txrx_ops);
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline int
|
static inline int
|
||||||
@@ -2308,25 +2308,6 @@ cdp_peer_map_attach(ol_txrx_soc_handle soc, uint32_t max_peers,
|
|||||||
return QDF_STATUS_SUCCESS;
|
return QDF_STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
|
|
||||||
* cdp_pdev_set_ctrl_pdev() - set UMAC ctrl pdev to dp pdev
|
|
||||||
* @soc: opaque soc handle
|
|
||||||
* @pdev: opaque dp pdev handle
|
|
||||||
* @ctrl_pdev: opaque ctrl pdev handle
|
|
||||||
*
|
|
||||||
* Return: void
|
|
||||||
*/
|
|
||||||
static inline void
|
|
||||||
cdp_pdev_set_ctrl_pdev(ol_txrx_soc_handle soc, struct cdp_pdev *dp_pdev,
|
|
||||||
struct cdp_ctrl_objmgr_pdev *ctrl_pdev)
|
|
||||||
{
|
|
||||||
if (soc && soc->ops && soc->ops->cmn_drv_ops &&
|
|
||||||
soc->ops->cmn_drv_ops->txrx_pdev_set_ctrl_pdev)
|
|
||||||
soc->ops->cmn_drv_ops->txrx_pdev_set_ctrl_pdev(dp_pdev,
|
|
||||||
ctrl_pdev);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* cdp_txrx_classify_and_update() - To classify the packet and update stats
|
/* cdp_txrx_classify_and_update() - To classify the packet and update stats
|
||||||
* @soc: opaque soc handle
|
* @soc: opaque soc handle
|
||||||
* @vdev: opaque dp vdev handle
|
* @vdev: opaque dp vdev handle
|
||||||
|
@@ -1910,13 +1910,14 @@ enum cdp_dp_cfg {
|
|||||||
/**
|
/**
|
||||||
* struct cdp_peer_cookie - cookie used when creating peer
|
* struct cdp_peer_cookie - cookie used when creating peer
|
||||||
* @peer_id: peer id
|
* @peer_id: peer id
|
||||||
|
* @pdev_id: pdev_id
|
||||||
* @mac_addr: MAC address of peer
|
* @mac_addr: MAC address of peer
|
||||||
* @cookie: cookie to be used by consumer
|
* @cookie: cookie to be used by consumer
|
||||||
* @ctx: context passed to be used by consumer
|
* @ctx: context passed to be used by consumer
|
||||||
*/
|
*/
|
||||||
struct cdp_peer_cookie {
|
struct cdp_peer_cookie {
|
||||||
uint8_t peer_id;
|
|
||||||
uint8_t mac_addr[QDF_MAC_ADDR_SIZE];
|
uint8_t mac_addr[QDF_MAC_ADDR_SIZE];
|
||||||
|
uint8_t peer_id;
|
||||||
uint8_t cookie;
|
uint8_t cookie;
|
||||||
struct cdp_stats_cookie *ctx;
|
struct cdp_stats_cookie *ctx;
|
||||||
};
|
};
|
||||||
|
@@ -638,7 +638,8 @@ static inline void cdp_deregister_packetdump_cb(ol_txrx_soc_handle soc,
|
|||||||
return soc->ops->misc_ops->unregister_pktdump_cb(soc, pdev_id);
|
return soc->ops->misc_ops->unregister_pktdump_cb(soc, pdev_id);
|
||||||
}
|
}
|
||||||
|
|
||||||
typedef void (*rx_mic_error_callback)(void *scn_handle,
|
typedef void (*rx_mic_error_callback)(struct cdp_ctrl_objmgr_psoc *psoc,
|
||||||
|
uint8_t pdev_id,
|
||||||
struct cdp_rx_mic_err_info *info);
|
struct cdp_rx_mic_err_info *info);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@@ -77,8 +77,8 @@ struct cdp_cmn_ops {
|
|||||||
void *cb_context);
|
void *cb_context);
|
||||||
|
|
||||||
struct cdp_pdev *(*txrx_pdev_attach)
|
struct cdp_pdev *(*txrx_pdev_attach)
|
||||||
(ol_txrx_soc_handle soc, struct cdp_ctrl_objmgr_pdev *ctrl_pdev,
|
(ol_txrx_soc_handle soc, HTC_HANDLE htc_pdev,
|
||||||
HTC_HANDLE htc_pdev, qdf_device_t osdev, uint8_t pdev_id);
|
qdf_device_t osdev, uint8_t pdev_id);
|
||||||
|
|
||||||
int (*txrx_pdev_post_attach)(struct cdp_pdev *pdev);
|
int (*txrx_pdev_post_attach)(struct cdp_pdev *pdev);
|
||||||
|
|
||||||
@@ -204,7 +204,7 @@ struct cdp_cmn_ops {
|
|||||||
********************************************************************/
|
********************************************************************/
|
||||||
|
|
||||||
void (*txrx_vdev_register)(struct cdp_vdev *vdev,
|
void (*txrx_vdev_register)(struct cdp_vdev *vdev,
|
||||||
void *osif_vdev, struct cdp_ctrl_objmgr_vdev *ctrl_vdev,
|
void *osif_vdev,
|
||||||
struct ol_txrx_ops *txrx_ops);
|
struct ol_txrx_ops *txrx_ops);
|
||||||
|
|
||||||
int (*txrx_mgmt_send)(struct cdp_vdev *vdev,
|
int (*txrx_mgmt_send)(struct cdp_vdev *vdev,
|
||||||
@@ -433,9 +433,6 @@ struct cdp_cmn_ops {
|
|||||||
uint32_t max_ast_index,
|
uint32_t max_ast_index,
|
||||||
bool peer_map_unmap_v2);
|
bool peer_map_unmap_v2);
|
||||||
|
|
||||||
void (*txrx_pdev_set_ctrl_pdev)(struct cdp_pdev *pdev_hdl,
|
|
||||||
struct cdp_ctrl_objmgr_pdev *ctrl_pdev);
|
|
||||||
|
|
||||||
ol_txrx_tx_fp tx_send;
|
ol_txrx_tx_fp tx_send;
|
||||||
/**
|
/**
|
||||||
* txrx_get_os_rx_handles_from_vdev() - Return function, osif vdev
|
* txrx_get_os_rx_handles_from_vdev() - Return function, osif vdev
|
||||||
@@ -479,6 +476,7 @@ struct cdp_ctrl_ops {
|
|||||||
|
|
||||||
int
|
int
|
||||||
(*txrx_mempools_attach)(void *ctrl_pdev);
|
(*txrx_mempools_attach)(void *ctrl_pdev);
|
||||||
|
|
||||||
int
|
int
|
||||||
(*txrx_set_filter_neighbour_peers)(
|
(*txrx_set_filter_neighbour_peers)(
|
||||||
struct cdp_pdev *pdev,
|
struct cdp_pdev *pdev,
|
||||||
@@ -919,75 +917,95 @@ struct cdp_lro_hash_config {
|
|||||||
|
|
||||||
struct ol_if_ops {
|
struct ol_if_ops {
|
||||||
void
|
void
|
||||||
(*peer_set_default_routing)(struct cdp_ctrl_objmgr_pdev *ctrl_pdev,
|
(*peer_set_default_routing)(struct cdp_ctrl_objmgr_psoc *ctrl_psoc,
|
||||||
uint8_t *peer_macaddr, uint8_t vdev_id,
|
uint8_t pdev_id, uint8_t *peer_macaddr,
|
||||||
|
uint8_t vdev_id,
|
||||||
bool hash_based, uint8_t ring_num);
|
bool hash_based, uint8_t ring_num);
|
||||||
QDF_STATUS
|
QDF_STATUS
|
||||||
(*peer_rx_reorder_queue_setup)(struct cdp_ctrl_objmgr_pdev *ctrl_pdev,
|
(*peer_rx_reorder_queue_setup)(struct cdp_ctrl_objmgr_psoc *ctrl_psoc,
|
||||||
|
uint8_t pdev_id,
|
||||||
uint8_t vdev_id, uint8_t *peer_mac,
|
uint8_t vdev_id, uint8_t *peer_mac,
|
||||||
qdf_dma_addr_t hw_qdesc, int tid,
|
qdf_dma_addr_t hw_qdesc, int tid,
|
||||||
uint16_t queue_num,
|
uint16_t queue_num,
|
||||||
uint8_t ba_window_size_valid,
|
uint8_t ba_window_size_valid,
|
||||||
uint16_t ba_window_size);
|
uint16_t ba_window_size);
|
||||||
QDF_STATUS
|
QDF_STATUS
|
||||||
(*peer_rx_reorder_queue_remove)(struct cdp_ctrl_objmgr_pdev *ctrl_pdev,
|
(*peer_rx_reorder_queue_remove)(struct cdp_ctrl_objmgr_psoc *ctrl_psoc,
|
||||||
|
uint8_t pdev_id,
|
||||||
uint8_t vdev_id, uint8_t *peer_macaddr,
|
uint8_t vdev_id, uint8_t *peer_macaddr,
|
||||||
uint32_t tid_mask);
|
uint32_t tid_mask);
|
||||||
int (*peer_unref_delete)(void *scn_handle, uint8_t *peer_mac,
|
int (*peer_unref_delete)(struct cdp_ctrl_objmgr_psoc *psoc,
|
||||||
|
uint8_t pdev_id,
|
||||||
|
uint8_t *peer_mac,
|
||||||
uint8_t *vdev_mac, enum wlan_op_mode opmode);
|
uint8_t *vdev_mac, enum wlan_op_mode opmode);
|
||||||
bool (*is_hw_dbs_2x2_capable)(struct wlan_objmgr_psoc *psoc);
|
bool (*is_hw_dbs_2x2_capable)(struct wlan_objmgr_psoc *psoc);
|
||||||
int (*peer_add_wds_entry)(void *vdev_handle,
|
int (*peer_add_wds_entry)(struct cdp_ctrl_objmgr_psoc *soc,
|
||||||
struct cdp_peer *peer_handle,
|
uint8_t vdev_id,
|
||||||
|
uint8_t *peer_macaddr,
|
||||||
const uint8_t *dest_macaddr,
|
const uint8_t *dest_macaddr,
|
||||||
uint8_t *next_node_mac,
|
uint8_t *next_node_mac,
|
||||||
uint32_t flags);
|
uint32_t flags);
|
||||||
int (*peer_update_wds_entry)(void *ol_soc_handle,
|
int (*peer_update_wds_entry)(struct cdp_ctrl_objmgr_psoc *soc,
|
||||||
uint8_t *dest_macaddr, uint8_t *peer_macaddr,
|
uint8_t vdev_id,
|
||||||
uint32_t flags);
|
uint8_t *dest_macaddr,
|
||||||
void (*peer_del_wds_entry)(void *ol_soc_handle,
|
uint8_t *peer_macaddr,
|
||||||
|
uint32_t flags);
|
||||||
|
void (*peer_del_wds_entry)(struct cdp_ctrl_objmgr_psoc *soc,
|
||||||
|
uint8_t vdev_id,
|
||||||
uint8_t *wds_macaddr,
|
uint8_t *wds_macaddr,
|
||||||
uint8_t type);
|
uint8_t type);
|
||||||
QDF_STATUS
|
QDF_STATUS
|
||||||
(*lro_hash_config)(struct cdp_ctrl_objmgr_pdev *ctrl_pdev,
|
(*lro_hash_config)(struct cdp_ctrl_objmgr_psoc *psoc, uint8_t pdev_id,
|
||||||
struct cdp_lro_hash_config *rx_offld_hash);
|
struct cdp_lro_hash_config *rx_offld_hash);
|
||||||
|
|
||||||
void (*update_dp_stats)(void *soc, void *stats, uint16_t id,
|
void (*update_dp_stats)(void *soc, void *stats, uint16_t id,
|
||||||
uint8_t type);
|
uint8_t type);
|
||||||
#ifdef FEATURE_NAC_RSSI
|
#ifdef FEATURE_NAC_RSSI
|
||||||
uint8_t (*rx_invalid_peer)(void *ctrl_pdev, void *msg);
|
uint8_t (*rx_invalid_peer)(struct cdp_ctrl_objmgr_psoc *soc,
|
||||||
|
uint8_t pdev_id, void *msg);
|
||||||
#else
|
#else
|
||||||
uint8_t (*rx_invalid_peer)(uint8_t vdev_id, void *wh);
|
uint8_t (*rx_invalid_peer)(uint8_t vdev_id, void *wh);
|
||||||
#endif
|
#endif
|
||||||
int (*peer_map_event)(struct cdp_ctrl_objmgr_psoc *ol_soc_handle,
|
|
||||||
|
int (*peer_map_event)(struct cdp_ctrl_objmgr_psoc *psoc,
|
||||||
uint16_t peer_id, uint16_t hw_peer_id,
|
uint16_t peer_id, uint16_t hw_peer_id,
|
||||||
uint8_t vdev_id, uint8_t *peer_mac_addr,
|
uint8_t vdev_id, uint8_t *peer_mac_addr,
|
||||||
enum cdp_txrx_ast_entry_type peer_type,
|
enum cdp_txrx_ast_entry_type peer_type,
|
||||||
uint32_t tx_ast_hashidx);
|
uint32_t tx_ast_hashidx);
|
||||||
int (*peer_unmap_event)(struct cdp_ctrl_objmgr_psoc *ol_soc_handle,
|
int (*peer_unmap_event)(struct cdp_ctrl_objmgr_psoc *psoc,
|
||||||
uint16_t peer_id,
|
uint16_t peer_id,
|
||||||
uint8_t vdev_id);
|
uint8_t vdev_id);
|
||||||
|
|
||||||
int (*get_dp_cfg_param)(struct cdp_ctrl_objmgr_psoc *ol_soc_handle,
|
int (*get_dp_cfg_param)(struct cdp_ctrl_objmgr_psoc *psoc,
|
||||||
enum cdp_cfg_param_type param_num);
|
enum cdp_cfg_param_type param_num);
|
||||||
|
|
||||||
void (*rx_mic_error)(void *ol_soc_handle,
|
void (*rx_mic_error)(struct cdp_ctrl_objmgr_psoc *psoc,
|
||||||
|
uint8_t pdev_id,
|
||||||
struct cdp_rx_mic_err_info *info);
|
struct cdp_rx_mic_err_info *info);
|
||||||
bool (*rx_frag_tkip_demic)(struct wlan_objmgr_peer *ctrl_peer,
|
|
||||||
|
bool (*rx_frag_tkip_demic)(struct cdp_ctrl_objmgr_psoc *psoc,
|
||||||
|
uint8_t vdev_id, uint8_t *peer_mac_addr,
|
||||||
qdf_nbuf_t nbuf,
|
qdf_nbuf_t nbuf,
|
||||||
uint16_t hdr_space);
|
uint16_t hdr_space);
|
||||||
uint8_t (*freq_to_channel)(void *ol_soc_handle, uint16_t vdev_id);
|
|
||||||
|
|
||||||
void (*record_act_change)(struct wlan_objmgr_pdev *pdev,
|
uint8_t (*freq_to_channel)(struct cdp_ctrl_objmgr_psoc *psoc,
|
||||||
u_int8_t *dstmac, bool active);
|
uint8_t vdev_id, uint16_t freq);
|
||||||
|
|
||||||
#ifdef ATH_SUPPORT_NAC_RSSI
|
#ifdef ATH_SUPPORT_NAC_RSSI
|
||||||
int (*config_fw_for_nac_rssi)(struct wlan_objmgr_pdev *pdev,
|
int (*config_fw_for_nac_rssi)(struct cdp_ctrl_objmgr_psoc *psoc,
|
||||||
u_int8_t vdev_id, enum cdp_nac_param_cmd cmd, char *bssid,
|
uint8_t pdev_id,
|
||||||
char *client_macaddr, uint8_t chan_num);
|
u_int8_t vdev_id,
|
||||||
int (*config_bssid_in_fw_for_nac_rssi)(struct wlan_objmgr_pdev *pdev,
|
enum cdp_nac_param_cmd cmd, char *bssid,
|
||||||
u_int8_t vdev_id,
|
char *client_macaddr, uint8_t chan_num);
|
||||||
enum cdp_nac_param_cmd cmd,
|
|
||||||
char *bssid, char *client_mac);
|
int
|
||||||
|
(*config_bssid_in_fw_for_nac_rssi)(struct cdp_ctrl_objmgr_psoc *psoc,
|
||||||
|
uint8_t pdev_id, u_int8_t vdev_id,
|
||||||
|
enum cdp_nac_param_cmd cmd,
|
||||||
|
char *bssid, char *client_mac);
|
||||||
#endif
|
#endif
|
||||||
int (*peer_sta_kickout)(void *ctrl_pdev, uint8_t *peer_macaddr);
|
int (*peer_sta_kickout)(struct cdp_ctrl_objmgr_psoc *psoc,
|
||||||
|
uint16_t pdev_id, uint8_t *peer_macaddr);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* send_delba() - Send delba to peer
|
* send_delba() - Send delba to peer
|
||||||
@@ -998,13 +1016,16 @@ struct ol_if_ops {
|
|||||||
*
|
*
|
||||||
* Return: 0 for success, non-zero for failure
|
* Return: 0 for success, non-zero for failure
|
||||||
*/
|
*/
|
||||||
int (*send_delba)(struct wlan_objmgr_psoc *psoc, uint8_t vdev_id,
|
int (*send_delba)(struct cdp_ctrl_objmgr_psoc *psoc, uint8_t vdev_id,
|
||||||
uint8_t *peer_macaddr, uint8_t tid,
|
uint8_t *peer_macaddr, uint8_t tid,
|
||||||
uint8_t reason_code);
|
uint8_t reason_code);
|
||||||
int (*peer_delete_multiple_wds_entries)(void *vdev_handle,
|
|
||||||
uint8_t *dest_macaddr,
|
int
|
||||||
uint8_t *peer_macaddr,
|
(*peer_delete_multiple_wds_entries)(struct cdp_ctrl_objmgr_psoc *psoc,
|
||||||
uint32_t flags);
|
uint8_t vdev_id,
|
||||||
|
uint8_t *dest_macaddr,
|
||||||
|
uint8_t *peer_macaddr,
|
||||||
|
uint32_t flags);
|
||||||
|
|
||||||
bool (*is_roam_inprogress)(uint32_t vdev_id);
|
bool (*is_roam_inprogress)(uint32_t vdev_id);
|
||||||
enum QDF_GLOBAL_MODE (*get_con_mode)(void);
|
enum QDF_GLOBAL_MODE (*get_con_mode)(void);
|
||||||
|
@@ -24,9 +24,7 @@
|
|||||||
#ifndef _CDP_TXRX_STATS_STRUCT_H_
|
#ifndef _CDP_TXRX_STATS_STRUCT_H_
|
||||||
#define _CDP_TXRX_STATS_STRUCT_H_
|
#define _CDP_TXRX_STATS_STRUCT_H_
|
||||||
|
|
||||||
#ifdef FEATURE_TSO_STATS
|
|
||||||
#include <qdf_types.h>
|
#include <qdf_types.h>
|
||||||
#endif /* FEATURE_TSO_STATS */
|
|
||||||
|
|
||||||
#define TXRX_STATS_LEVEL_OFF 0
|
#define TXRX_STATS_LEVEL_OFF 0
|
||||||
#define TXRX_STATS_LEVEL_BASIC 1
|
#define TXRX_STATS_LEVEL_BASIC 1
|
||||||
|
@@ -2077,7 +2077,8 @@ static void dp_process_ppdu_stats_common_tlv(struct dp_pdev *pdev,
|
|||||||
ppdu_desc->channel = freq;
|
ppdu_desc->channel = freq;
|
||||||
if (soc && soc->cdp_soc.ol_ops->freq_to_channel)
|
if (soc && soc->cdp_soc.ol_ops->freq_to_channel)
|
||||||
pdev->operating_channel =
|
pdev->operating_channel =
|
||||||
soc->cdp_soc.ol_ops->freq_to_channel(pdev->ctrl_pdev, freq);
|
soc->cdp_soc.ol_ops->freq_to_channel(soc->ctrl_psoc,
|
||||||
|
pdev->pdev_id, freq);
|
||||||
}
|
}
|
||||||
|
|
||||||
ppdu_desc->phy_mode = HTT_PPDU_STATS_COMMON_TLV_PHY_MODE_GET(*tag_buf);
|
ppdu_desc->phy_mode = HTT_PPDU_STATS_COMMON_TLV_PHY_MODE_GET(*tag_buf);
|
||||||
|
@@ -3098,7 +3098,8 @@ static QDF_STATUS dp_lro_hash_setup(struct dp_soc *soc, struct dp_pdev *pdev)
|
|||||||
return QDF_STATUS_E_FAILURE;
|
return QDF_STATUS_E_FAILURE;
|
||||||
}
|
}
|
||||||
|
|
||||||
status = soc->cdp_soc.ol_ops->lro_hash_config(pdev->ctrl_pdev,
|
status = soc->cdp_soc.ol_ops->lro_hash_config(soc->ctrl_psoc,
|
||||||
|
pdev->pdev_id,
|
||||||
&lro_hash);
|
&lro_hash);
|
||||||
if (!QDF_IS_STATUS_SUCCESS(status)) {
|
if (!QDF_IS_STATUS_SUCCESS(status)) {
|
||||||
dp_err("failed to send lro_hash_config to FW %u", status);
|
dp_err("failed to send lro_hash_config to FW %u", status);
|
||||||
@@ -3409,7 +3410,6 @@ static QDF_STATUS dp_htt_ppdu_stats_attach(struct dp_pdev *pdev)
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
* dp_pdev_attach_wifi3() - attach txrx pdev
|
* dp_pdev_attach_wifi3() - attach txrx pdev
|
||||||
* @ctrl_pdev: Opaque PDEV object
|
|
||||||
* @txrx_soc: Datapath SOC handle
|
* @txrx_soc: Datapath SOC handle
|
||||||
* @htc_handle: HTC handle for host-target interface
|
* @htc_handle: HTC handle for host-target interface
|
||||||
* @qdf_osdev: QDF OS device
|
* @qdf_osdev: QDF OS device
|
||||||
@@ -3418,7 +3418,6 @@ static QDF_STATUS dp_htt_ppdu_stats_attach(struct dp_pdev *pdev)
|
|||||||
* Return: DP PDEV handle on success, NULL on failure
|
* Return: DP PDEV handle on success, NULL on failure
|
||||||
*/
|
*/
|
||||||
static struct cdp_pdev *dp_pdev_attach_wifi3(struct cdp_soc_t *txrx_soc,
|
static struct cdp_pdev *dp_pdev_attach_wifi3(struct cdp_soc_t *txrx_soc,
|
||||||
struct cdp_ctrl_objmgr_pdev *ctrl_pdev,
|
|
||||||
HTC_HANDLE htc_handle, qdf_device_t qdf_osdev, uint8_t pdev_id)
|
HTC_HANDLE htc_handle, qdf_device_t qdf_osdev, uint8_t pdev_id)
|
||||||
{
|
{
|
||||||
int ring_size;
|
int ring_size;
|
||||||
@@ -3476,7 +3475,6 @@ static struct cdp_pdev *dp_pdev_attach_wifi3(struct cdp_soc_t *txrx_soc,
|
|||||||
(nss_cfg & (1 << pdev_id)));
|
(nss_cfg & (1 << pdev_id)));
|
||||||
|
|
||||||
pdev->soc = soc;
|
pdev->soc = soc;
|
||||||
pdev->ctrl_pdev = ctrl_pdev;
|
|
||||||
pdev->pdev_id = pdev_id;
|
pdev->pdev_id = pdev_id;
|
||||||
soc->pdev_list[pdev_id] = pdev;
|
soc->pdev_list[pdev_id] = pdev;
|
||||||
|
|
||||||
@@ -4868,12 +4866,10 @@ fail0:
|
|||||||
* Return: DP VDEV handle on success, NULL on failure
|
* Return: DP VDEV handle on success, NULL on failure
|
||||||
*/
|
*/
|
||||||
static void dp_vdev_register_wifi3(struct cdp_vdev *vdev_handle,
|
static void dp_vdev_register_wifi3(struct cdp_vdev *vdev_handle,
|
||||||
void *osif_vdev, struct cdp_ctrl_objmgr_vdev *ctrl_vdev,
|
void *osif_vdev, struct ol_txrx_ops *txrx_ops)
|
||||||
struct ol_txrx_ops *txrx_ops)
|
|
||||||
{
|
{
|
||||||
struct dp_vdev *vdev = (struct dp_vdev *)vdev_handle;
|
struct dp_vdev *vdev = (struct dp_vdev *)vdev_handle;
|
||||||
vdev->osif_vdev = osif_vdev;
|
vdev->osif_vdev = osif_vdev;
|
||||||
vdev->ctrl_vdev = ctrl_vdev;
|
|
||||||
vdev->osif_rx = txrx_ops->rx.rx;
|
vdev->osif_rx = txrx_ops->rx.rx;
|
||||||
vdev->osif_rx_stack = txrx_ops->rx.rx_stack;
|
vdev->osif_rx_stack = txrx_ops->rx.rx_stack;
|
||||||
vdev->osif_rx_flush = txrx_ops->rx.rx_flush;
|
vdev->osif_rx_flush = txrx_ops->rx.rx_flush;
|
||||||
@@ -5258,7 +5254,9 @@ static void *dp_peer_create_wifi3(struct cdp_vdev *vdev_handle,
|
|||||||
* increment the count back.
|
* increment the count back.
|
||||||
*/
|
*/
|
||||||
if (soc->cdp_soc.ol_ops->peer_unref_delete) {
|
if (soc->cdp_soc.ol_ops->peer_unref_delete) {
|
||||||
soc->cdp_soc.ol_ops->peer_unref_delete(pdev->ctrl_pdev,
|
soc->cdp_soc.ol_ops->peer_unref_delete(
|
||||||
|
soc->ctrl_psoc,
|
||||||
|
pdev->pdev_id,
|
||||||
peer->mac_addr.raw, vdev->mac_addr.raw,
|
peer->mac_addr.raw, vdev->mac_addr.raw,
|
||||||
vdev->opmode);
|
vdev->opmode);
|
||||||
}
|
}
|
||||||
@@ -5548,7 +5546,9 @@ static void dp_peer_setup_wifi3(struct cdp_vdev *vdev_hdl, void *peer_hdl)
|
|||||||
if (soc->cdp_soc.ol_ops->peer_set_default_routing) {
|
if (soc->cdp_soc.ol_ops->peer_set_default_routing) {
|
||||||
/* TODO: Check the destination ring number to be passed to FW */
|
/* TODO: Check the destination ring number to be passed to FW */
|
||||||
soc->cdp_soc.ol_ops->peer_set_default_routing(
|
soc->cdp_soc.ol_ops->peer_set_default_routing(
|
||||||
pdev->ctrl_pdev, peer->mac_addr.raw,
|
soc->ctrl_psoc,
|
||||||
|
peer->vdev->pdev->pdev_id,
|
||||||
|
peer->mac_addr.raw,
|
||||||
peer->vdev->vdev_id, hash_based, reo_dest);
|
peer->vdev->vdev_id, hash_based, reo_dest);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -8787,7 +8787,7 @@ static QDF_STATUS dp_config_for_nac_rssi(struct cdp_vdev *vdev_handle,
|
|||||||
|
|
||||||
if (soc->cdp_soc.ol_ops->config_bssid_in_fw_for_nac_rssi)
|
if (soc->cdp_soc.ol_ops->config_bssid_in_fw_for_nac_rssi)
|
||||||
soc->cdp_soc.ol_ops->config_bssid_in_fw_for_nac_rssi
|
soc->cdp_soc.ol_ops->config_bssid_in_fw_for_nac_rssi
|
||||||
((void *)vdev->pdev->ctrl_pdev,
|
(soc->ctrl_psoc, pdev->pdev_id,
|
||||||
vdev->vdev_id, cmd, bssid, client_macaddr);
|
vdev->vdev_id, cmd, bssid, client_macaddr);
|
||||||
|
|
||||||
return QDF_STATUS_SUCCESS;
|
return QDF_STATUS_SUCCESS;
|
||||||
@@ -8916,21 +8916,6 @@ static QDF_STATUS dp_peer_map_attach_wifi3(struct cdp_soc_t *soc_hdl,
|
|||||||
return QDF_STATUS_SUCCESS;
|
return QDF_STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* dp_pdev_set_ctrl_pdev() - set ctrl pdev handle in dp pdev
|
|
||||||
* @dp_pdev: dp pdev handle
|
|
||||||
* @ctrl_pdev: UMAC ctrl pdev handle
|
|
||||||
*
|
|
||||||
* Return: void
|
|
||||||
*/
|
|
||||||
static void dp_pdev_set_ctrl_pdev(struct cdp_pdev *dp_pdev,
|
|
||||||
struct cdp_ctrl_objmgr_pdev *ctrl_pdev)
|
|
||||||
{
|
|
||||||
struct dp_pdev *pdev = (struct dp_pdev *)dp_pdev;
|
|
||||||
|
|
||||||
pdev->ctrl_pdev = ctrl_pdev;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void dp_set_rate_stats_cap(struct cdp_soc_t *soc_hdl,
|
static void dp_set_rate_stats_cap(struct cdp_soc_t *soc_hdl,
|
||||||
uint8_t val)
|
uint8_t val)
|
||||||
{
|
{
|
||||||
@@ -9295,7 +9280,6 @@ static struct cdp_cmn_ops dp_ops_cmn = {
|
|||||||
.txrx_peer_reset_ast_table = dp_wds_reset_ast_table_wifi3,
|
.txrx_peer_reset_ast_table = dp_wds_reset_ast_table_wifi3,
|
||||||
.txrx_peer_flush_ast_table = dp_wds_flush_ast_table_wifi3,
|
.txrx_peer_flush_ast_table = dp_wds_flush_ast_table_wifi3,
|
||||||
.txrx_peer_map_attach = dp_peer_map_attach_wifi3,
|
.txrx_peer_map_attach = dp_peer_map_attach_wifi3,
|
||||||
.txrx_pdev_set_ctrl_pdev = dp_pdev_set_ctrl_pdev,
|
|
||||||
.txrx_get_os_rx_handles_from_vdev =
|
.txrx_get_os_rx_handles_from_vdev =
|
||||||
dp_get_os_rx_handles_from_vdev_wifi3,
|
dp_get_os_rx_handles_from_vdev_wifi3,
|
||||||
.delba_tx_completion = dp_delba_tx_completion_wifi3,
|
.delba_tx_completion = dp_delba_tx_completion_wifi3,
|
||||||
|
@@ -821,8 +821,9 @@ add_ast_entry:
|
|||||||
(ast_entry->type != CDP_TXRX_AST_TYPE_WDS_HM_SEC)) {
|
(ast_entry->type != CDP_TXRX_AST_TYPE_WDS_HM_SEC)) {
|
||||||
if (QDF_STATUS_SUCCESS ==
|
if (QDF_STATUS_SUCCESS ==
|
||||||
soc->cdp_soc.ol_ops->peer_add_wds_entry(
|
soc->cdp_soc.ol_ops->peer_add_wds_entry(
|
||||||
peer->vdev->osif_vdev,
|
soc->ctrl_psoc,
|
||||||
(struct cdp_peer *)peer,
|
peer->vdev->vdev_id,
|
||||||
|
peer->mac_addr.raw,
|
||||||
mac_addr,
|
mac_addr,
|
||||||
next_node_mac,
|
next_node_mac,
|
||||||
flags)) {
|
flags)) {
|
||||||
@@ -954,7 +955,8 @@ int dp_peer_update_ast(struct dp_soc *soc, struct dp_peer *peer,
|
|||||||
TAILQ_INSERT_TAIL(&peer->ast_entry_list, ast_entry, ase_list_elem);
|
TAILQ_INSERT_TAIL(&peer->ast_entry_list, ast_entry, ase_list_elem);
|
||||||
|
|
||||||
ret = soc->cdp_soc.ol_ops->peer_update_wds_entry(
|
ret = soc->cdp_soc.ol_ops->peer_update_wds_entry(
|
||||||
peer->vdev->osif_vdev,
|
soc->ctrl_psoc,
|
||||||
|
peer->vdev->vdev_id,
|
||||||
ast_entry->mac_addr.raw,
|
ast_entry->mac_addr.raw,
|
||||||
peer->mac_addr.raw,
|
peer->mac_addr.raw,
|
||||||
flags);
|
flags);
|
||||||
@@ -1097,7 +1099,8 @@ void dp_peer_ast_send_wds_del(struct dp_soc *soc,
|
|||||||
ast_entry->next_hop, ast_entry->peer->mac_addr.raw);
|
ast_entry->next_hop, ast_entry->peer->mac_addr.raw);
|
||||||
|
|
||||||
if (ast_entry->next_hop) {
|
if (ast_entry->next_hop) {
|
||||||
cdp_soc->ol_ops->peer_del_wds_entry(peer->vdev->osif_vdev,
|
cdp_soc->ol_ops->peer_del_wds_entry(soc->ctrl_psoc,
|
||||||
|
peer->vdev->vdev_id,
|
||||||
ast_entry->mac_addr.raw,
|
ast_entry->mac_addr.raw,
|
||||||
ast_entry->type);
|
ast_entry->type);
|
||||||
}
|
}
|
||||||
@@ -1766,7 +1769,7 @@ static QDF_STATUS dp_rx_tid_update_wifi3(struct dp_peer *peer, int tid, uint32_t
|
|||||||
|
|
||||||
if (soc->cdp_soc.ol_ops->peer_rx_reorder_queue_setup)
|
if (soc->cdp_soc.ol_ops->peer_rx_reorder_queue_setup)
|
||||||
soc->cdp_soc.ol_ops->peer_rx_reorder_queue_setup(
|
soc->cdp_soc.ol_ops->peer_rx_reorder_queue_setup(
|
||||||
peer->vdev->pdev->ctrl_pdev,
|
soc->ctrl_psoc, peer->vdev->pdev->pdev_id,
|
||||||
peer->vdev->vdev_id, peer->mac_addr.raw,
|
peer->vdev->vdev_id, peer->mac_addr.raw,
|
||||||
rx_tid->hw_qdesc_paddr, tid, tid, 1, ba_window_size);
|
rx_tid->hw_qdesc_paddr, tid, tid, 1, ba_window_size);
|
||||||
|
|
||||||
@@ -1981,7 +1984,9 @@ try_desc_alloc:
|
|||||||
|
|
||||||
if (soc->cdp_soc.ol_ops->peer_rx_reorder_queue_setup) {
|
if (soc->cdp_soc.ol_ops->peer_rx_reorder_queue_setup) {
|
||||||
if (soc->cdp_soc.ol_ops->peer_rx_reorder_queue_setup(
|
if (soc->cdp_soc.ol_ops->peer_rx_reorder_queue_setup(
|
||||||
vdev->pdev->ctrl_pdev, peer->vdev->vdev_id,
|
soc->ctrl_psoc,
|
||||||
|
peer->vdev->pdev->pdev_id,
|
||||||
|
peer->vdev->vdev_id,
|
||||||
peer->mac_addr.raw, rx_tid->hw_qdesc_paddr, tid, tid,
|
peer->mac_addr.raw, rx_tid->hw_qdesc_paddr, tid, tid,
|
||||||
1, ba_window_size)) {
|
1, ba_window_size)) {
|
||||||
QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_ERROR,
|
QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_ERROR,
|
||||||
@@ -2415,7 +2420,8 @@ void dp_peer_rx_cleanup(struct dp_vdev *vdev, struct dp_peer *peer, bool reuse)
|
|||||||
}
|
}
|
||||||
#ifdef notyet /* See if FW can remove queues as part of peer cleanup */
|
#ifdef notyet /* See if FW can remove queues as part of peer cleanup */
|
||||||
if (soc->ol_ops->peer_rx_reorder_queue_remove) {
|
if (soc->ol_ops->peer_rx_reorder_queue_remove) {
|
||||||
soc->ol_ops->peer_rx_reorder_queue_remove(vdev->pdev->ctrl_pdev,
|
soc->ol_ops->peer_rx_reorder_queue_remove(soc->ctrl_psoc,
|
||||||
|
peer->vdev->pdev->pdev_id,
|
||||||
peer->vdev->vdev_id, peer->mac_addr.raw,
|
peer->vdev->vdev_id, peer->mac_addr.raw,
|
||||||
tid_delete_mask);
|
tid_delete_mask);
|
||||||
}
|
}
|
||||||
|
@@ -803,8 +803,9 @@ out:
|
|||||||
msg.nbuf = mpdu;
|
msg.nbuf = mpdu;
|
||||||
msg.vdev_id = vdev->vdev_id;
|
msg.vdev_id = vdev->vdev_id;
|
||||||
if (pdev->soc->cdp_soc.ol_ops->rx_invalid_peer)
|
if (pdev->soc->cdp_soc.ol_ops->rx_invalid_peer)
|
||||||
pdev->soc->cdp_soc.ol_ops->rx_invalid_peer(pdev->ctrl_pdev,
|
pdev->soc->cdp_soc.ol_ops->rx_invalid_peer(
|
||||||
&msg);
|
(struct cdp_ctrl_objmgr_psoc *)soc->ctrl_psoc,
|
||||||
|
pdev->pdev_id, &msg);
|
||||||
|
|
||||||
free:
|
free:
|
||||||
/* Drop and free packet */
|
/* Drop and free packet */
|
||||||
|
@@ -891,7 +891,8 @@ static void dp_rx_defrag_err(struct dp_vdev *vdev, qdf_nbuf_t nbuf)
|
|||||||
|
|
||||||
tops = pdev->soc->cdp_soc.ol_ops;
|
tops = pdev->soc->cdp_soc.ol_ops;
|
||||||
if (tops->rx_mic_error)
|
if (tops->rx_mic_error)
|
||||||
tops->rx_mic_error(pdev->ctrl_pdev, &mic_failure_info);
|
tops->rx_mic_error(pdev->soc->ctrl_psoc, pdev->pdev_id,
|
||||||
|
&mic_failure_info);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@@ -1115,7 +1115,8 @@ void dp_rx_process_mic_error(struct dp_soc *soc, qdf_nbuf_t nbuf,
|
|||||||
|
|
||||||
tops = pdev->soc->cdp_soc.ol_ops;
|
tops = pdev->soc->cdp_soc.ol_ops;
|
||||||
if (tops->rx_mic_error)
|
if (tops->rx_mic_error)
|
||||||
tops->rx_mic_error(pdev->ctrl_pdev, &mic_failure_info);
|
tops->rx_mic_error(soc->ctrl_psoc, pdev->pdev_id,
|
||||||
|
&mic_failure_info);
|
||||||
|
|
||||||
fail:
|
fail:
|
||||||
qdf_nbuf_free(nbuf);
|
qdf_nbuf_free(nbuf);
|
||||||
|
@@ -1381,8 +1381,6 @@ struct dp_pdev {
|
|||||||
/**
|
/**
|
||||||
* Re-use Memory Section Starts
|
* Re-use Memory Section Starts
|
||||||
*/
|
*/
|
||||||
/* PDEV handle from OSIF layer TBD: see if we really need osif_pdev */
|
|
||||||
struct cdp_ctrl_objmgr_pdev *ctrl_pdev;
|
|
||||||
|
|
||||||
/* PDEV Id */
|
/* PDEV Id */
|
||||||
int pdev_id;
|
int pdev_id;
|
||||||
@@ -1760,8 +1758,6 @@ struct dp_vdev {
|
|||||||
/* Handle to the OS shim SW's virtual device */
|
/* Handle to the OS shim SW's virtual device */
|
||||||
ol_osif_vdev_handle osif_vdev;
|
ol_osif_vdev_handle osif_vdev;
|
||||||
|
|
||||||
/* Handle to the UMAC handle */
|
|
||||||
struct cdp_ctrl_objmgr_vdev *ctrl_vdev;
|
|
||||||
/* vdev_id - ID used to specify a particular vdev to the target */
|
/* vdev_id - ID used to specify a particular vdev to the target */
|
||||||
uint8_t vdev_id;
|
uint8_t vdev_id;
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user