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:
Vevek Venkatesan
2019-06-11 12:50:49 +05:30
committed by nshrivas
parent cd6f190963
commit de31ff656d
7 changed files with 174 additions and 155 deletions

View File

@@ -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

View File

@@ -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>

View File

@@ -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

View File

@@ -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);

View File

@@ -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
}; };

View File

@@ -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

View File

@@ -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)); \