qcacmn: add feature flags to featurize DP operations
Add feature flags DP_FLOW_CTL for DP flowctl ops, DP_PEER_SUPPORT_OPS to support peer handling in DP, DP_POWER_SAVE for power saving ops in DP, DP_CON_MON DP_MOB_DEFS DP_INVALID_PEER_ASSERT DP_PRINT_NO_CONSOLE and DP_INTR_POLL_BOTH. Change-Id: I01dafadf6578c0b5f36ab3ef56624912fb66b100 CRs-Fixed: 2467170
This commit is contained in:

committed by
nshrivas

parent
cd6f190963
commit
de31ff656d
@@ -170,7 +170,7 @@ cdp_vdev_attach(ol_txrx_soc_handle soc, struct cdp_pdev *pdev,
|
|||||||
vdev_mac_addr, vdev_id, op_mode);
|
vdev_mac_addr, vdev_id, op_mode);
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef CONFIG_MCL
|
#ifdef DP_FLOW_CTL
|
||||||
/**
|
/**
|
||||||
* cdp_flow_pool_map() - Create flow pool for vdev
|
* cdp_flow_pool_map() - Create flow pool for vdev
|
||||||
* @soc - data path soc handle
|
* @soc - data path soc handle
|
||||||
|
@@ -34,7 +34,7 @@
|
|||||||
#include "qdf_types.h"
|
#include "qdf_types.h"
|
||||||
#include "qdf_nbuf.h"
|
#include "qdf_nbuf.h"
|
||||||
#include "qdf_atomic.h"
|
#include "qdf_atomic.h"
|
||||||
#ifdef CONFIG_MCL
|
#ifdef DP_MOB_DEFS
|
||||||
#include <cdp_txrx_mob_def.h>
|
#include <cdp_txrx_mob_def.h>
|
||||||
#endif
|
#endif
|
||||||
#include <cdp_txrx_handle.h>
|
#include <cdp_txrx_handle.h>
|
||||||
|
@@ -920,10 +920,10 @@ struct ol_if_ops {
|
|||||||
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 CONFIG_MCL
|
#ifdef FEATURE_NAC_RSSI
|
||||||
uint8_t (*rx_invalid_peer)(uint8_t vdev_id, void *wh);
|
|
||||||
#else
|
|
||||||
uint8_t (*rx_invalid_peer)(void *ctrl_pdev, void *msg);
|
uint8_t (*rx_invalid_peer)(void *ctrl_pdev, void *msg);
|
||||||
|
#else
|
||||||
|
uint8_t (*rx_invalid_peer)(uint8_t vdev_id, void *wh);
|
||||||
#endif
|
#endif
|
||||||
int (*peer_map_event)(void *ol_soc_handle, uint16_t peer_id, uint16_t hw_peer_id,
|
int (*peer_map_event)(void *ol_soc_handle, 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,
|
||||||
@@ -973,8 +973,7 @@ struct ol_if_ops {
|
|||||||
/* TODO: Add any other control path calls required to OL_IF/WMA layer */
|
/* TODO: Add any other control path calls required to OL_IF/WMA layer */
|
||||||
};
|
};
|
||||||
|
|
||||||
#ifdef CONFIG_MCL
|
#ifdef DP_PEER_EXTENDED_API
|
||||||
/* From here MCL specific OPs */
|
|
||||||
/**
|
/**
|
||||||
* struct cdp_misc_ops - mcl ops not classified
|
* struct cdp_misc_ops - mcl ops not classified
|
||||||
* @set_ibss_vdev_heart_beat_timer:
|
* @set_ibss_vdev_heart_beat_timer:
|
||||||
@@ -1039,22 +1038,95 @@ struct cdp_misc_ops {
|
|||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* struct cdp_tx_delay_ops - mcl tx delay ops
|
* struct cdp_ocb_ops - mcl ocb ops
|
||||||
* @tx_delay:
|
* @set_ocb_chan_info:
|
||||||
* @tx_delay_hist:
|
* @get_ocb_chan_info:
|
||||||
* @tx_packet_count:
|
|
||||||
* @tx_set_compute_interval:
|
|
||||||
*/
|
*/
|
||||||
struct cdp_tx_delay_ops {
|
struct cdp_ocb_ops {
|
||||||
void (*tx_delay)(struct cdp_pdev *pdev, uint32_t *queue_delay_microsec,
|
void (*set_ocb_chan_info)(struct cdp_vdev *vdev,
|
||||||
uint32_t *tx_delay_microsec, int category);
|
struct ol_txrx_ocb_set_chan ocb_set_chan);
|
||||||
void (*tx_delay_hist)(struct cdp_pdev *pdev,
|
struct ol_txrx_ocb_chan_info *
|
||||||
uint16_t *bin_values, int category);
|
(*get_ocb_chan_info)(struct cdp_vdev *vdev);
|
||||||
void (*tx_packet_count)(struct cdp_pdev *pdev,
|
};
|
||||||
uint16_t *out_packet_count,
|
|
||||||
uint16_t *out_packet_loss_count, int category);
|
/**
|
||||||
void (*tx_set_compute_interval)(struct cdp_pdev *pdev,
|
* struct cdp_peer_ops - mcl peer related ops
|
||||||
uint32_t interval);
|
* @register_peer:
|
||||||
|
* @clear_peer:
|
||||||
|
* @cfg_attach:
|
||||||
|
* @find_peer_by_addr:
|
||||||
|
* @find_peer_by_addr_and_vdev:
|
||||||
|
* @local_peer_id:
|
||||||
|
* @peer_find_by_local_id:
|
||||||
|
* @peer_state_update:
|
||||||
|
* @get_vdevid:
|
||||||
|
* @get_vdev_by_sta_id:
|
||||||
|
* @register_ocb_peer:
|
||||||
|
* @peer_get_peer_mac_addr:
|
||||||
|
* @get_peer_state:
|
||||||
|
* @get_vdev_for_peer:
|
||||||
|
* @update_ibss_add_peer_num_of_vdev:
|
||||||
|
* @remove_peers_for_vdev:
|
||||||
|
* @remove_peers_for_vdev_no_lock:
|
||||||
|
* @copy_mac_addr_raw:
|
||||||
|
* @add_last_real_peer:
|
||||||
|
* @is_vdev_restore_last_peer:
|
||||||
|
* @update_last_real_peer:
|
||||||
|
*/
|
||||||
|
struct cdp_peer_ops {
|
||||||
|
QDF_STATUS (*register_peer)(struct cdp_pdev *pdev,
|
||||||
|
struct ol_txrx_desc_type *sta_desc);
|
||||||
|
QDF_STATUS (*clear_peer)(struct cdp_pdev *pdev, uint8_t sta_id);
|
||||||
|
QDF_STATUS (*change_peer_state)(uint8_t sta_id,
|
||||||
|
enum ol_txrx_peer_state sta_state,
|
||||||
|
bool roam_synch_in_progress);
|
||||||
|
void * (*peer_get_ref_by_addr)(struct cdp_pdev *pdev,
|
||||||
|
uint8_t *peer_addr, uint8_t *peer_id,
|
||||||
|
enum peer_debug_id_type debug_id);
|
||||||
|
void (*peer_release_ref)(void *peer, enum peer_debug_id_type debug_id);
|
||||||
|
void * (*find_peer_by_addr)(struct cdp_pdev *pdev,
|
||||||
|
uint8_t *peer_addr, uint8_t *peer_id);
|
||||||
|
void * (*find_peer_by_addr_and_vdev)(struct cdp_pdev *pdev,
|
||||||
|
struct cdp_vdev *vdev,
|
||||||
|
uint8_t *peer_addr, uint8_t *peer_id);
|
||||||
|
uint16_t (*local_peer_id)(void *peer);
|
||||||
|
void * (*peer_find_by_local_id)(struct cdp_pdev *pdev,
|
||||||
|
uint8_t local_peer_id);
|
||||||
|
QDF_STATUS (*peer_state_update)(struct cdp_pdev *pdev,
|
||||||
|
uint8_t *peer_addr,
|
||||||
|
enum ol_txrx_peer_state state);
|
||||||
|
QDF_STATUS (*get_vdevid)(void *peer, uint8_t *vdev_id);
|
||||||
|
struct cdp_vdev * (*get_vdev_by_sta_id)(struct cdp_pdev *pdev,
|
||||||
|
uint8_t sta_id);
|
||||||
|
QDF_STATUS (*register_ocb_peer)(uint8_t *mac_addr, uint8_t *peer_id);
|
||||||
|
uint8_t * (*peer_get_peer_mac_addr)(void *peer);
|
||||||
|
int (*get_peer_state)(void *peer);
|
||||||
|
struct cdp_vdev * (*get_vdev_for_peer)(void *peer);
|
||||||
|
int16_t (*update_ibss_add_peer_num_of_vdev)(struct cdp_vdev *vdev,
|
||||||
|
int16_t peer_num_delta);
|
||||||
|
void (*remove_peers_for_vdev)(struct cdp_vdev *vdev,
|
||||||
|
ol_txrx_vdev_peer_remove_cb callback,
|
||||||
|
void *callback_context, bool remove_last_peer);
|
||||||
|
void (*remove_peers_for_vdev_no_lock)(struct cdp_vdev *vdev,
|
||||||
|
ol_txrx_vdev_peer_remove_cb callback,
|
||||||
|
void *callback_context);
|
||||||
|
void (*copy_mac_addr_raw)(struct cdp_vdev *vdev, uint8_t *bss_addr);
|
||||||
|
void (*add_last_real_peer)(struct cdp_pdev *pdev,
|
||||||
|
struct cdp_vdev *vdev, uint8_t *peer_id);
|
||||||
|
bool (*is_vdev_restore_last_peer)(void *peer);
|
||||||
|
void (*update_last_real_peer)(struct cdp_pdev *pdev, void *vdev,
|
||||||
|
uint8_t *peer_id, bool restore_last_peer);
|
||||||
|
void (*peer_detach_force_delete)(void *peer);
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* struct cdp_ocb_ops - mcl ocb ops
|
||||||
|
* @clear_stats:
|
||||||
|
* @stats:
|
||||||
|
*/
|
||||||
|
struct cdp_mob_stats_ops {
|
||||||
|
void (*clear_stats)(uint16_t bitmap);
|
||||||
|
int (*stats)(uint8_t vdev_id, char *buffer, unsigned buf_len);
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -1065,7 +1137,10 @@ struct cdp_pmf_ops {
|
|||||||
void (*get_pn_info)(void *peer, uint8_t **last_pn_valid,
|
void (*get_pn_info)(void *peer, uint8_t **last_pn_valid,
|
||||||
uint64_t **last_pn, uint32_t **rmf_pn_replays);
|
uint64_t **last_pn, uint32_t **rmf_pn_replays);
|
||||||
};
|
};
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef DP_FLOW_CTL
|
||||||
/**
|
/**
|
||||||
* struct cdp_cfg_ops - mcl configuration ops
|
* struct cdp_cfg_ops - mcl configuration ops
|
||||||
* @set_cfg_rx_fwd_disabled: set rx_fwd_disabled flag
|
* @set_cfg_rx_fwd_disabled: set rx_fwd_disabled flag
|
||||||
@@ -1168,6 +1243,18 @@ struct cdp_lflowctl_ops {
|
|||||||
void (*vdev_unpause)(struct cdp_vdev *vdev, uint32_t reason);
|
void (*vdev_unpause)(struct cdp_vdev *vdev, uint32_t reason);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* struct cdp_ocb_ops - mcl ocb ops
|
||||||
|
* @throttle_init_period:
|
||||||
|
* @throttle_set_level:
|
||||||
|
*/
|
||||||
|
struct cdp_throttle_ops {
|
||||||
|
void (*throttle_init_period)(struct cdp_pdev *pdev, int period,
|
||||||
|
uint8_t *dutycycle_level);
|
||||||
|
void (*throttle_set_level)(struct cdp_pdev *pdev, int level);
|
||||||
|
};
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef IPA_OFFLOAD
|
#ifdef IPA_OFFLOAD
|
||||||
/**
|
/**
|
||||||
* struct cdp_ipa_ops - mcl ipa data path ops
|
* struct cdp_ipa_ops - mcl ipa data path ops
|
||||||
@@ -1229,6 +1316,26 @@ struct cdp_ipa_ops {
|
|||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef DP_POWER_SAVE
|
||||||
|
/**
|
||||||
|
* struct cdp_tx_delay_ops - mcl tx delay ops
|
||||||
|
* @tx_delay:
|
||||||
|
* @tx_delay_hist:
|
||||||
|
* @tx_packet_count:
|
||||||
|
* @tx_set_compute_interval:
|
||||||
|
*/
|
||||||
|
struct cdp_tx_delay_ops {
|
||||||
|
void (*tx_delay)(struct cdp_pdev *pdev, uint32_t *queue_delay_microsec,
|
||||||
|
uint32_t *tx_delay_microsec, int category);
|
||||||
|
void (*tx_delay_hist)(struct cdp_pdev *pdev,
|
||||||
|
uint16_t *bin_values, int category);
|
||||||
|
void (*tx_packet_count)(struct cdp_pdev *pdev,
|
||||||
|
uint16_t *out_packet_count,
|
||||||
|
uint16_t *out_packet_loss_count, int category);
|
||||||
|
void (*tx_set_compute_interval)(struct cdp_pdev *pdev,
|
||||||
|
uint32_t interval);
|
||||||
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* struct cdp_bus_ops - mcl bus suspend/resume ops
|
* struct cdp_bus_ops - mcl bus suspend/resume ops
|
||||||
* @bus_suspend:
|
* @bus_suspend:
|
||||||
@@ -1238,110 +1345,7 @@ struct cdp_bus_ops {
|
|||||||
QDF_STATUS (*bus_suspend)(struct cdp_pdev *opaque_pdev);
|
QDF_STATUS (*bus_suspend)(struct cdp_pdev *opaque_pdev);
|
||||||
QDF_STATUS (*bus_resume)(struct cdp_pdev *opaque_pdev);
|
QDF_STATUS (*bus_resume)(struct cdp_pdev *opaque_pdev);
|
||||||
};
|
};
|
||||||
|
#endif
|
||||||
/**
|
|
||||||
* struct cdp_ocb_ops - mcl ocb ops
|
|
||||||
* @set_ocb_chan_info:
|
|
||||||
* @get_ocb_chan_info:
|
|
||||||
*/
|
|
||||||
struct cdp_ocb_ops {
|
|
||||||
void (*set_ocb_chan_info)(struct cdp_vdev *vdev,
|
|
||||||
struct ol_txrx_ocb_set_chan ocb_set_chan);
|
|
||||||
struct ol_txrx_ocb_chan_info *
|
|
||||||
(*get_ocb_chan_info)(struct cdp_vdev *vdev);
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* struct cdp_peer_ops - mcl peer related ops
|
|
||||||
* @register_peer:
|
|
||||||
* @clear_peer:
|
|
||||||
* @cfg_attach:
|
|
||||||
* @find_peer_by_addr:
|
|
||||||
* @find_peer_by_addr_and_vdev:
|
|
||||||
* @local_peer_id:
|
|
||||||
* @peer_find_by_local_id:
|
|
||||||
* @peer_state_update:
|
|
||||||
* @get_vdevid:
|
|
||||||
* @get_vdev_by_sta_id:
|
|
||||||
* @register_ocb_peer:
|
|
||||||
* @peer_get_peer_mac_addr:
|
|
||||||
* @get_peer_state:
|
|
||||||
* @get_vdev_for_peer:
|
|
||||||
* @update_ibss_add_peer_num_of_vdev:
|
|
||||||
* @remove_peers_for_vdev:
|
|
||||||
* @remove_peers_for_vdev_no_lock:
|
|
||||||
* @copy_mac_addr_raw:
|
|
||||||
* @add_last_real_peer:
|
|
||||||
* @is_vdev_restore_last_peer:
|
|
||||||
* @update_last_real_peer:
|
|
||||||
*/
|
|
||||||
struct cdp_peer_ops {
|
|
||||||
QDF_STATUS (*register_peer)(struct cdp_pdev *pdev,
|
|
||||||
struct ol_txrx_desc_type *sta_desc);
|
|
||||||
QDF_STATUS (*clear_peer)(struct cdp_pdev *pdev, uint8_t sta_id);
|
|
||||||
QDF_STATUS (*change_peer_state)(uint8_t sta_id,
|
|
||||||
enum ol_txrx_peer_state sta_state,
|
|
||||||
bool roam_synch_in_progress);
|
|
||||||
void * (*peer_get_ref_by_addr)(struct cdp_pdev *pdev,
|
|
||||||
uint8_t *peer_addr, uint8_t *peer_id,
|
|
||||||
enum peer_debug_id_type debug_id);
|
|
||||||
void (*peer_release_ref)(void *peer, enum peer_debug_id_type debug_id);
|
|
||||||
void * (*find_peer_by_addr)(struct cdp_pdev *pdev,
|
|
||||||
uint8_t *peer_addr, uint8_t *peer_id);
|
|
||||||
void * (*find_peer_by_addr_and_vdev)(struct cdp_pdev *pdev,
|
|
||||||
struct cdp_vdev *vdev,
|
|
||||||
uint8_t *peer_addr, uint8_t *peer_id);
|
|
||||||
uint16_t (*local_peer_id)(void *peer);
|
|
||||||
void * (*peer_find_by_local_id)(struct cdp_pdev *pdev,
|
|
||||||
uint8_t local_peer_id);
|
|
||||||
QDF_STATUS (*peer_state_update)(struct cdp_pdev *pdev,
|
|
||||||
uint8_t *peer_addr,
|
|
||||||
enum ol_txrx_peer_state state);
|
|
||||||
QDF_STATUS (*get_vdevid)(void *peer, uint8_t *vdev_id);
|
|
||||||
struct cdp_vdev * (*get_vdev_by_sta_id)(struct cdp_pdev *pdev,
|
|
||||||
uint8_t sta_id);
|
|
||||||
QDF_STATUS (*register_ocb_peer)(uint8_t *mac_addr, uint8_t *peer_id);
|
|
||||||
uint8_t * (*peer_get_peer_mac_addr)(void *peer);
|
|
||||||
int (*get_peer_state)(void *peer);
|
|
||||||
struct cdp_vdev * (*get_vdev_for_peer)(void *peer);
|
|
||||||
int16_t (*update_ibss_add_peer_num_of_vdev)(struct cdp_vdev *vdev,
|
|
||||||
int16_t peer_num_delta);
|
|
||||||
void (*remove_peers_for_vdev)(struct cdp_vdev *vdev,
|
|
||||||
ol_txrx_vdev_peer_remove_cb callback,
|
|
||||||
void *callback_context, bool remove_last_peer);
|
|
||||||
void (*remove_peers_for_vdev_no_lock)(struct cdp_vdev *vdev,
|
|
||||||
ol_txrx_vdev_peer_remove_cb callback,
|
|
||||||
void *callback_context);
|
|
||||||
void (*copy_mac_addr_raw)(struct cdp_vdev *vdev, uint8_t *bss_addr);
|
|
||||||
void (*add_last_real_peer)(struct cdp_pdev *pdev,
|
|
||||||
struct cdp_vdev *vdev, uint8_t *peer_id);
|
|
||||||
bool (*is_vdev_restore_last_peer)(void *peer);
|
|
||||||
void (*update_last_real_peer)(struct cdp_pdev *pdev, void *vdev,
|
|
||||||
uint8_t *peer_id, bool restore_last_peer);
|
|
||||||
void (*peer_detach_force_delete)(void *peer);
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* struct cdp_ocb_ops - mcl ocb ops
|
|
||||||
* @throttle_init_period:
|
|
||||||
* @throttle_set_level:
|
|
||||||
*/
|
|
||||||
struct cdp_throttle_ops {
|
|
||||||
void (*throttle_init_period)(struct cdp_pdev *pdev, int period,
|
|
||||||
uint8_t *dutycycle_level);
|
|
||||||
void (*throttle_set_level)(struct cdp_pdev *pdev, int level);
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* struct cdp_ocb_ops - mcl ocb ops
|
|
||||||
* @clear_stats:
|
|
||||||
* @stats:
|
|
||||||
*/
|
|
||||||
struct cdp_mob_stats_ops {
|
|
||||||
void (*clear_stats)(uint16_t bitmap);
|
|
||||||
int (*stats)(uint8_t vdev_id, char *buffer, unsigned buf_len);
|
|
||||||
};
|
|
||||||
#endif /* CONFIG_MCL */
|
|
||||||
|
|
||||||
#ifdef RECEIVE_OFFLOAD
|
#ifdef RECEIVE_OFFLOAD
|
||||||
/**
|
/**
|
||||||
@@ -1364,24 +1368,28 @@ struct cdp_ops {
|
|||||||
struct cdp_wds_ops *wds_ops;
|
struct cdp_wds_ops *wds_ops;
|
||||||
struct cdp_raw_ops *raw_ops;
|
struct cdp_raw_ops *raw_ops;
|
||||||
struct cdp_pflow_ops *pflow_ops;
|
struct cdp_pflow_ops *pflow_ops;
|
||||||
#ifdef CONFIG_MCL
|
#ifdef DP_PEER_EXTENDED_API
|
||||||
struct cdp_misc_ops *misc_ops;
|
struct cdp_misc_ops *misc_ops;
|
||||||
|
struct cdp_peer_ops *peer_ops;
|
||||||
|
struct cdp_ocb_ops *ocb_ops;
|
||||||
|
struct cdp_mob_stats_ops *mob_stats_ops;
|
||||||
|
struct cdp_pmf_ops *pmf_ops;
|
||||||
|
#endif
|
||||||
|
#ifdef DP_FLOW_CTL
|
||||||
struct cdp_cfg_ops *cfg_ops;
|
struct cdp_cfg_ops *cfg_ops;
|
||||||
struct cdp_flowctl_ops *flowctl_ops;
|
struct cdp_flowctl_ops *flowctl_ops;
|
||||||
struct cdp_lflowctl_ops *l_flowctl_ops;
|
struct cdp_lflowctl_ops *l_flowctl_ops;
|
||||||
|
struct cdp_throttle_ops *throttle_ops;
|
||||||
|
#endif
|
||||||
|
#ifdef DP_POWER_SAVE
|
||||||
|
struct cdp_bus_ops *bus_ops;
|
||||||
|
struct cdp_tx_delay_ops *delay_ops;
|
||||||
|
#endif
|
||||||
#ifdef IPA_OFFLOAD
|
#ifdef IPA_OFFLOAD
|
||||||
struct cdp_ipa_ops *ipa_ops;
|
struct cdp_ipa_ops *ipa_ops;
|
||||||
#endif
|
#endif
|
||||||
#ifdef RECEIVE_OFFLOAD
|
#ifdef RECEIVE_OFFLOAD
|
||||||
struct cdp_rx_offld_ops *rx_offld_ops;
|
struct cdp_rx_offld_ops *rx_offld_ops;
|
||||||
#endif
|
|
||||||
struct cdp_bus_ops *bus_ops;
|
|
||||||
struct cdp_ocb_ops *ocb_ops;
|
|
||||||
struct cdp_peer_ops *peer_ops;
|
|
||||||
struct cdp_throttle_ops *throttle_ops;
|
|
||||||
struct cdp_mob_stats_ops *mob_stats_ops;
|
|
||||||
struct cdp_tx_delay_ops *delay_ops;
|
|
||||||
struct cdp_pmf_ops *pmf_ops;
|
|
||||||
#endif
|
#endif
|
||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
|
@@ -132,7 +132,7 @@ while (0)
|
|||||||
QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_##LVL, \
|
QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_##LVL, \
|
||||||
fmt, ## args)
|
fmt, ## args)
|
||||||
|
|
||||||
#ifdef CONFIG_MCL
|
#ifdef DP_PRINT_NO_CONSOLE
|
||||||
/* Stat prints should not go to console or kernel logs.*/
|
/* Stat prints should not go to console or kernel logs.*/
|
||||||
#define DP_PRINT_STATS(fmt, args ...)\
|
#define DP_PRINT_STATS(fmt, args ...)\
|
||||||
QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_INFO_HIGH, \
|
QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_INFO_HIGH, \
|
||||||
@@ -751,7 +751,7 @@ extern void *dp_find_peer_by_addr(struct cdp_pdev *dev,
|
|||||||
extern struct dp_peer *dp_peer_find_hash_find(struct dp_soc *soc,
|
extern struct dp_peer *dp_peer_find_hash_find(struct dp_soc *soc,
|
||||||
uint8_t *peer_mac_addr, int mac_addr_is_aligned, uint8_t vdev_id);
|
uint8_t *peer_mac_addr, int mac_addr_is_aligned, uint8_t vdev_id);
|
||||||
|
|
||||||
#ifndef CONFIG_WIN
|
#ifdef DP_PEER_EXTENDED_API
|
||||||
QDF_STATUS dp_register_peer(struct cdp_pdev *pdev_handle,
|
QDF_STATUS dp_register_peer(struct cdp_pdev *pdev_handle,
|
||||||
struct ol_txrx_desc_type *sta_desc);
|
struct ol_txrx_desc_type *sta_desc);
|
||||||
QDF_STATUS dp_clear_peer(struct cdp_pdev *pdev_handle, uint8_t local_id);
|
QDF_STATUS dp_clear_peer(struct cdp_pdev *pdev_handle, uint8_t local_id);
|
||||||
|
@@ -66,7 +66,7 @@ cdp_dump_flow_pool_info(struct cdp_soc_t *soc)
|
|||||||
#ifdef ATH_SUPPORT_IQUE
|
#ifdef ATH_SUPPORT_IQUE
|
||||||
#include "dp_txrx_me.h"
|
#include "dp_txrx_me.h"
|
||||||
#endif
|
#endif
|
||||||
#ifdef CONFIG_MCL
|
#if defined(DP_CON_MON)
|
||||||
extern int con_mode_monitor;
|
extern int con_mode_monitor;
|
||||||
#ifndef REMOVE_PKT_LOG
|
#ifndef REMOVE_PKT_LOG
|
||||||
#include <pktlog_ac_api.h>
|
#include <pktlog_ac_api.h>
|
||||||
@@ -306,7 +306,7 @@ const int dp_stats_mapping_table[][STATS_TYPE_MAX] = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
/* MCL specific functions */
|
/* MCL specific functions */
|
||||||
#ifdef CONFIG_MCL
|
#if defined(DP_CON_MON)
|
||||||
/**
|
/**
|
||||||
* dp_soc_get_mon_mask_for_interrupt_mode() - get mon mode mask for intr mode
|
* dp_soc_get_mon_mask_for_interrupt_mode() - get mon mode mask for intr mode
|
||||||
* @soc: pointer to dp_soc handle
|
* @soc: pointer to dp_soc handle
|
||||||
@@ -1707,7 +1707,7 @@ static QDF_STATUS dp_soc_attach_poll(void *txrx_soc)
|
|||||||
}
|
}
|
||||||
|
|
||||||
static QDF_STATUS dp_soc_interrupt_attach(void *txrx_soc);
|
static QDF_STATUS dp_soc_interrupt_attach(void *txrx_soc);
|
||||||
#if defined(CONFIG_MCL)
|
#if defined(DP_INTR_POLL_BOTH)
|
||||||
/*
|
/*
|
||||||
* dp_soc_interrupt_attach_wrapper() - Register handlers for DP interrupts
|
* dp_soc_interrupt_attach_wrapper() - Register handlers for DP interrupts
|
||||||
* @txrx_soc: DP SOC handle
|
* @txrx_soc: DP SOC handle
|
||||||
@@ -9162,7 +9162,7 @@ static uint32_t dp_tx_get_success_ack_stats(struct cdp_pdev *pdev,
|
|||||||
return tx_success;
|
return tx_success;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifndef CONFIG_WIN
|
#ifdef DP_PEER_EXTENDED_API
|
||||||
static struct cdp_misc_ops dp_ops_misc = {
|
static struct cdp_misc_ops dp_ops_misc = {
|
||||||
#ifdef FEATURE_WLAN_TDLS
|
#ifdef FEATURE_WLAN_TDLS
|
||||||
.tx_non_std = dp_tx_non_std,
|
.tx_non_std = dp_tx_non_std,
|
||||||
@@ -9177,7 +9177,9 @@ static struct cdp_misc_ops dp_ops_misc = {
|
|||||||
.get_num_rx_contexts = dp_get_num_rx_contexts,
|
.get_num_rx_contexts = dp_get_num_rx_contexts,
|
||||||
.get_tx_ack_stats = dp_tx_get_success_ack_stats,
|
.get_tx_ack_stats = dp_tx_get_success_ack_stats,
|
||||||
};
|
};
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef DP_FLOW_CTL
|
||||||
static struct cdp_flowctl_ops dp_ops_flowctl = {
|
static struct cdp_flowctl_ops dp_ops_flowctl = {
|
||||||
/* WIFI 3.0 DP implement as required. */
|
/* WIFI 3.0 DP implement as required. */
|
||||||
#ifdef QCA_LL_TX_FLOW_CONTROL_V2
|
#ifdef QCA_LL_TX_FLOW_CONTROL_V2
|
||||||
@@ -9192,6 +9194,7 @@ static struct cdp_flowctl_ops dp_ops_flowctl = {
|
|||||||
static struct cdp_lflowctl_ops dp_ops_l_flowctl = {
|
static struct cdp_lflowctl_ops dp_ops_l_flowctl = {
|
||||||
/* WIFI 3.0 DP NOT IMPLEMENTED YET */
|
/* WIFI 3.0 DP NOT IMPLEMENTED YET */
|
||||||
};
|
};
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef IPA_OFFLOAD
|
#ifdef IPA_OFFLOAD
|
||||||
static struct cdp_ipa_ops dp_ops_ipa = {
|
static struct cdp_ipa_ops dp_ops_ipa = {
|
||||||
@@ -9214,6 +9217,7 @@ static struct cdp_ipa_ops dp_ops_ipa = {
|
|||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef DP_POWER_SAVE
|
||||||
static QDF_STATUS dp_bus_suspend(struct cdp_pdev *opaque_pdev)
|
static QDF_STATUS dp_bus_suspend(struct cdp_pdev *opaque_pdev)
|
||||||
{
|
{
|
||||||
struct dp_pdev *pdev = (struct dp_pdev *)opaque_pdev;
|
struct dp_pdev *pdev = (struct dp_pdev *)opaque_pdev;
|
||||||
@@ -9252,21 +9256,24 @@ static struct cdp_bus_ops dp_ops_bus = {
|
|||||||
.bus_suspend = dp_bus_suspend,
|
.bus_suspend = dp_bus_suspend,
|
||||||
.bus_resume = dp_bus_resume
|
.bus_resume = dp_bus_resume
|
||||||
};
|
};
|
||||||
|
#endif
|
||||||
|
|
||||||
static struct cdp_ocb_ops dp_ops_ocb = {
|
#ifdef DP_FLOW_CTL
|
||||||
/* WIFI 3.0 DP NOT IMPLEMENTED YET */
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
static struct cdp_throttle_ops dp_ops_throttle = {
|
static struct cdp_throttle_ops dp_ops_throttle = {
|
||||||
/* WIFI 3.0 DP NOT IMPLEMENTED YET */
|
/* WIFI 3.0 DP NOT IMPLEMENTED YET */
|
||||||
};
|
};
|
||||||
|
|
||||||
static struct cdp_mob_stats_ops dp_ops_mob_stats = {
|
static struct cdp_cfg_ops dp_ops_cfg = {
|
||||||
|
/* WIFI 3.0 DP NOT IMPLEMENTED YET */
|
||||||
|
};
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef DP_PEER_EXTENDED_API
|
||||||
|
static struct cdp_ocb_ops dp_ops_ocb = {
|
||||||
/* WIFI 3.0 DP NOT IMPLEMENTED YET */
|
/* WIFI 3.0 DP NOT IMPLEMENTED YET */
|
||||||
};
|
};
|
||||||
|
|
||||||
static struct cdp_cfg_ops dp_ops_cfg = {
|
static struct cdp_mob_stats_ops dp_ops_mob_stats = {
|
||||||
/* WIFI 3.0 DP NOT IMPLEMENTED YET */
|
/* WIFI 3.0 DP NOT IMPLEMENTED YET */
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -9340,19 +9347,23 @@ static struct cdp_ops dp_txrx_ops = {
|
|||||||
#ifdef PEER_FLOW_CONTROL
|
#ifdef PEER_FLOW_CONTROL
|
||||||
.pflow_ops = &dp_ops_pflow,
|
.pflow_ops = &dp_ops_pflow,
|
||||||
#endif /* PEER_FLOW_CONTROL */
|
#endif /* PEER_FLOW_CONTROL */
|
||||||
#ifndef CONFIG_WIN
|
#ifdef DP_PEER_EXTENDED_API
|
||||||
.misc_ops = &dp_ops_misc,
|
.misc_ops = &dp_ops_misc,
|
||||||
|
.ocb_ops = &dp_ops_ocb,
|
||||||
|
.peer_ops = &dp_ops_peer,
|
||||||
|
.mob_stats_ops = &dp_ops_mob_stats,
|
||||||
|
#endif
|
||||||
|
#ifdef DP_FLOW_CTL
|
||||||
.cfg_ops = &dp_ops_cfg,
|
.cfg_ops = &dp_ops_cfg,
|
||||||
.flowctl_ops = &dp_ops_flowctl,
|
.flowctl_ops = &dp_ops_flowctl,
|
||||||
.l_flowctl_ops = &dp_ops_l_flowctl,
|
.l_flowctl_ops = &dp_ops_l_flowctl,
|
||||||
|
.throttle_ops = &dp_ops_throttle,
|
||||||
|
#endif
|
||||||
#ifdef IPA_OFFLOAD
|
#ifdef IPA_OFFLOAD
|
||||||
.ipa_ops = &dp_ops_ipa,
|
.ipa_ops = &dp_ops_ipa,
|
||||||
#endif
|
#endif
|
||||||
|
#ifdef DP_POWER_SAVE
|
||||||
.bus_ops = &dp_ops_bus,
|
.bus_ops = &dp_ops_bus,
|
||||||
.ocb_ops = &dp_ops_ocb,
|
|
||||||
.peer_ops = &dp_ops_peer,
|
|
||||||
.throttle_ops = &dp_ops_throttle,
|
|
||||||
.mob_stats_ops = &dp_ops_mob_stats,
|
|
||||||
#endif
|
#endif
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@@ -2818,7 +2818,7 @@ dp_rx_sec_ind_handler(void *soc_handle, uint16_t peer_id,
|
|||||||
dp_peer_unref_del_find_by_id(peer);
|
dp_peer_unref_del_find_by_id(peer);
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef CONFIG_MCL
|
#ifdef DP_PEER_EXTENDED_API
|
||||||
/**
|
/**
|
||||||
* dp_register_peer() - Register peer into physical device
|
* dp_register_peer() - Register peer into physical device
|
||||||
* @pdev - data path device instance
|
* @pdev - data path device instance
|
||||||
|
@@ -401,7 +401,7 @@ dp_rx_2k_jump_handle(struct dp_soc *soc, void *ring_desc,
|
|||||||
mac_id, quota);
|
mac_id, quota);
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef CONFIG_MCL
|
#ifdef DP_INVALID_PEER_ASSERT
|
||||||
#define DP_PDEV_INVALID_PEER_MSDU_CHECK(head, tail) \
|
#define DP_PDEV_INVALID_PEER_MSDU_CHECK(head, tail) \
|
||||||
do { \
|
do { \
|
||||||
qdf_assert_always(!(head)); \
|
qdf_assert_always(!(head)); \
|
||||||
|
Reference in New Issue
Block a user