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);
|
||||
}
|
||||
|
||||
#ifdef CONFIG_MCL
|
||||
#ifdef DP_FLOW_CTL
|
||||
/**
|
||||
* cdp_flow_pool_map() - Create flow pool for vdev
|
||||
* @soc - data path soc handle
|
||||
|
@@ -34,7 +34,7 @@
|
||||
#include "qdf_types.h"
|
||||
#include "qdf_nbuf.h"
|
||||
#include "qdf_atomic.h"
|
||||
#ifdef CONFIG_MCL
|
||||
#ifdef DP_MOB_DEFS
|
||||
#include <cdp_txrx_mob_def.h>
|
||||
#endif
|
||||
#include <cdp_txrx_handle.h>
|
||||
|
@@ -920,10 +920,10 @@ struct ol_if_ops {
|
||||
struct cdp_lro_hash_config *rx_offld_hash);
|
||||
void (*update_dp_stats)(void *soc, void *stats, uint16_t id,
|
||||
uint8_t type);
|
||||
#ifdef CONFIG_MCL
|
||||
uint8_t (*rx_invalid_peer)(uint8_t vdev_id, void *wh);
|
||||
#else
|
||||
#ifdef FEATURE_NAC_RSSI
|
||||
uint8_t (*rx_invalid_peer)(void *ctrl_pdev, void *msg);
|
||||
#else
|
||||
uint8_t (*rx_invalid_peer)(uint8_t vdev_id, void *wh);
|
||||
#endif
|
||||
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,
|
||||
@@ -973,8 +973,7 @@ struct ol_if_ops {
|
||||
/* TODO: Add any other control path calls required to OL_IF/WMA layer */
|
||||
};
|
||||
|
||||
#ifdef CONFIG_MCL
|
||||
/* From here MCL specific OPs */
|
||||
#ifdef DP_PEER_EXTENDED_API
|
||||
/**
|
||||
* struct cdp_misc_ops - mcl ops not classified
|
||||
* @set_ibss_vdev_heart_beat_timer:
|
||||
@@ -1039,22 +1038,95 @@ struct cdp_misc_ops {
|
||||
};
|
||||
|
||||
/**
|
||||
* struct cdp_tx_delay_ops - mcl tx delay ops
|
||||
* @tx_delay:
|
||||
* @tx_delay_hist:
|
||||
* @tx_packet_count:
|
||||
* @tx_set_compute_interval:
|
||||
* struct cdp_ocb_ops - mcl ocb ops
|
||||
* @set_ocb_chan_info:
|
||||
* @get_ocb_chan_info:
|
||||
*/
|
||||
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_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
|
||||
* @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,
|
||||
uint64_t **last_pn, uint32_t **rmf_pn_replays);
|
||||
};
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef DP_FLOW_CTL
|
||||
/**
|
||||
* struct cdp_cfg_ops - mcl configuration ops
|
||||
* @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);
|
||||
};
|
||||
|
||||
/**
|
||||
* 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
|
||||
/**
|
||||
* struct cdp_ipa_ops - mcl ipa data path ops
|
||||
@@ -1229,6 +1316,26 @@ struct cdp_ipa_ops {
|
||||
};
|
||||
#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
|
||||
* @bus_suspend:
|
||||
@@ -1238,110 +1345,7 @@ struct cdp_bus_ops {
|
||||
QDF_STATUS (*bus_suspend)(struct cdp_pdev *opaque_pdev);
|
||||
QDF_STATUS (*bus_resume)(struct cdp_pdev *opaque_pdev);
|
||||
};
|
||||
|
||||
/**
|
||||
* 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 */
|
||||
#endif
|
||||
|
||||
#ifdef RECEIVE_OFFLOAD
|
||||
/**
|
||||
@@ -1364,24 +1368,28 @@ struct cdp_ops {
|
||||
struct cdp_wds_ops *wds_ops;
|
||||
struct cdp_raw_ops *raw_ops;
|
||||
struct cdp_pflow_ops *pflow_ops;
|
||||
#ifdef CONFIG_MCL
|
||||
#ifdef DP_PEER_EXTENDED_API
|
||||
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_flowctl_ops *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
|
||||
struct cdp_ipa_ops *ipa_ops;
|
||||
#endif
|
||||
#ifdef RECEIVE_OFFLOAD
|
||||
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
|
||||
|
@@ -132,7 +132,7 @@ while (0)
|
||||
QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_##LVL, \
|
||||
fmt, ## args)
|
||||
|
||||
#ifdef CONFIG_MCL
|
||||
#ifdef DP_PRINT_NO_CONSOLE
|
||||
/* Stat prints should not go to console or kernel logs.*/
|
||||
#define DP_PRINT_STATS(fmt, args ...)\
|
||||
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,
|
||||
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,
|
||||
struct ol_txrx_desc_type *sta_desc);
|
||||
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
|
||||
#include "dp_txrx_me.h"
|
||||
#endif
|
||||
#ifdef CONFIG_MCL
|
||||
#if defined(DP_CON_MON)
|
||||
extern int con_mode_monitor;
|
||||
#ifndef REMOVE_PKT_LOG
|
||||
#include <pktlog_ac_api.h>
|
||||
@@ -306,7 +306,7 @@ const int dp_stats_mapping_table[][STATS_TYPE_MAX] = {
|
||||
};
|
||||
|
||||
/* 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
|
||||
* @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);
|
||||
#if defined(CONFIG_MCL)
|
||||
#if defined(DP_INTR_POLL_BOTH)
|
||||
/*
|
||||
* dp_soc_interrupt_attach_wrapper() - Register handlers for DP interrupts
|
||||
* @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;
|
||||
}
|
||||
|
||||
#ifndef CONFIG_WIN
|
||||
#ifdef DP_PEER_EXTENDED_API
|
||||
static struct cdp_misc_ops dp_ops_misc = {
|
||||
#ifdef FEATURE_WLAN_TDLS
|
||||
.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_tx_ack_stats = dp_tx_get_success_ack_stats,
|
||||
};
|
||||
#endif
|
||||
|
||||
#ifdef DP_FLOW_CTL
|
||||
static struct cdp_flowctl_ops dp_ops_flowctl = {
|
||||
/* WIFI 3.0 DP implement as required. */
|
||||
#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 = {
|
||||
/* WIFI 3.0 DP NOT IMPLEMENTED YET */
|
||||
};
|
||||
#endif
|
||||
|
||||
#ifdef IPA_OFFLOAD
|
||||
static struct cdp_ipa_ops dp_ops_ipa = {
|
||||
@@ -9214,6 +9217,7 @@ static struct cdp_ipa_ops dp_ops_ipa = {
|
||||
};
|
||||
#endif
|
||||
|
||||
#ifdef DP_POWER_SAVE
|
||||
static QDF_STATUS dp_bus_suspend(struct cdp_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_resume = dp_bus_resume
|
||||
};
|
||||
#endif
|
||||
|
||||
static struct cdp_ocb_ops dp_ops_ocb = {
|
||||
/* WIFI 3.0 DP NOT IMPLEMENTED YET */
|
||||
};
|
||||
|
||||
|
||||
#ifdef DP_FLOW_CTL
|
||||
static struct cdp_throttle_ops dp_ops_throttle = {
|
||||
/* 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 */
|
||||
};
|
||||
|
||||
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 */
|
||||
};
|
||||
|
||||
@@ -9340,19 +9347,23 @@ static struct cdp_ops dp_txrx_ops = {
|
||||
#ifdef PEER_FLOW_CONTROL
|
||||
.pflow_ops = &dp_ops_pflow,
|
||||
#endif /* PEER_FLOW_CONTROL */
|
||||
#ifndef CONFIG_WIN
|
||||
#ifdef DP_PEER_EXTENDED_API
|
||||
.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,
|
||||
.flowctl_ops = &dp_ops_flowctl,
|
||||
.l_flowctl_ops = &dp_ops_l_flowctl,
|
||||
.throttle_ops = &dp_ops_throttle,
|
||||
#endif
|
||||
#ifdef IPA_OFFLOAD
|
||||
.ipa_ops = &dp_ops_ipa,
|
||||
#endif
|
||||
#ifdef DP_POWER_SAVE
|
||||
.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
|
||||
};
|
||||
|
||||
|
@@ -2818,7 +2818,7 @@ dp_rx_sec_ind_handler(void *soc_handle, uint16_t peer_id,
|
||||
dp_peer_unref_del_find_by_id(peer);
|
||||
}
|
||||
|
||||
#ifdef CONFIG_MCL
|
||||
#ifdef DP_PEER_EXTENDED_API
|
||||
/**
|
||||
* dp_register_peer() - Register peer into physical device
|
||||
* @pdev - data path device instance
|
||||
|
@@ -401,7 +401,7 @@ dp_rx_2k_jump_handle(struct dp_soc *soc, void *ring_desc,
|
||||
mac_id, quota);
|
||||
}
|
||||
|
||||
#ifdef CONFIG_MCL
|
||||
#ifdef DP_INVALID_PEER_ASSERT
|
||||
#define DP_PDEV_INVALID_PEER_MSDU_CHECK(head, tail) \
|
||||
do { \
|
||||
qdf_assert_always(!(head)); \
|
||||
|
Reference in New Issue
Block a user