qcacld-3.0: Add bus bandwidth API
Add bus bandwidth API to DP component Change-Id: I2957671a89d0d425007c373e52dd4db30193fc17 CRs-Fixed: 3165071
This commit is contained in:

committed by
Madan Koyyalamudi

parent
3649d6a5e5
commit
23c9db7762
@@ -198,6 +198,16 @@ union wlan_tp_data {
|
||||
* @dp_any_adapter_connected: Callback to check if any adapter is connected
|
||||
* @dp_send_svc_nlink_msg: Callback API to send svc nlink message
|
||||
* @osif_dp_send_tcp_param_update_event: OS IF callback to send TCP param
|
||||
* @dp_send_mscs_action_frame: Callback to send MSCS action frame
|
||||
* @dp_pm_qos_add_request: Callback to send add pm qos request
|
||||
* @dp_pm_qos_remove_request: Callback to send remove pm qos request
|
||||
* @dp_pm_qos_update_request: Callback to send update pm qos request
|
||||
* @dp_pld_remove_pm_qos: Callback to send remove pld pm qos request
|
||||
* @dp_pld_request_pm_qos: Callback to send pld pm qos request
|
||||
* @dp_pktlog_enable_disable:Callback to set packet log
|
||||
* @dp_is_roaming_in_progress:Callback to check if roaming is in progress
|
||||
* @dp_is_ap_active:Callback to check if AP is active
|
||||
* @dp_napi_apply_throughput_policy:Callback to apply NAPI throughput policy
|
||||
*/
|
||||
struct wlan_dp_psoc_callbacks {
|
||||
void (*os_if_dp_gro_rx)(struct sk_buff *skb, uint8_t napi_to_use,
|
||||
@@ -219,6 +229,25 @@ struct wlan_dp_psoc_callbacks {
|
||||
(*osif_dp_send_tcp_param_update_event)(struct wlan_objmgr_psoc *psoc,
|
||||
union wlan_tp_data *data,
|
||||
uint8_t dir);
|
||||
void (*dp_send_mscs_action_frame)(hdd_cb_handle context,
|
||||
uint8_t vdev_id);
|
||||
void (*dp_pm_qos_add_request)(hdd_cb_handle context);
|
||||
void (*dp_pm_qos_remove_request)(hdd_cb_handle context);
|
||||
void (*dp_pm_qos_update_request)(hdd_cb_handle context,
|
||||
cpumask_t *mask);
|
||||
void (*dp_pld_remove_pm_qos)(hdd_cb_handle context);
|
||||
void (*dp_pld_request_pm_qos)(hdd_cb_handle context);
|
||||
int (*dp_pktlog_enable_disable)(hdd_cb_handle context,
|
||||
bool enable_disable_flag,
|
||||
uint8_t user_triggered, int size);
|
||||
bool (*dp_is_roaming_in_progress)(hdd_cb_handle context);
|
||||
bool (*dp_is_ap_active)(hdd_cb_handle context, uint8_t vdev_id);
|
||||
void (*dp_display_periodic_stats)(hdd_cb_handle context, bool interval);
|
||||
void (*dp_disable_rx_ol_for_low_tput)(hdd_cb_handle context,
|
||||
bool disable);
|
||||
int (*dp_napi_apply_throughput_policy)(hdd_cb_handle context,
|
||||
uint64_t tx_packets,
|
||||
uint64_t rx_packets);
|
||||
};
|
||||
|
||||
/**
|
||||
|
@@ -30,6 +30,7 @@
|
||||
#include <wlan_objmgr_psoc_obj.h>
|
||||
#include <wlan_objmgr_pdev_obj.h>
|
||||
#include <wlan_objmgr_vdev_obj.h>
|
||||
#include "pld_common.h"
|
||||
#include <wlan_dp_public_struct.h>
|
||||
|
||||
/**
|
||||
@@ -214,6 +215,147 @@ void ucfg_dp_reg_ipa_rsp_ind(struct wlan_objmgr_pdev *pdev);
|
||||
*/
|
||||
void ucfg_dp_try_set_rps_cpu_mask(struct wlan_objmgr_psoc *psoc);
|
||||
|
||||
/**
|
||||
* ucfg_dp_add_latency_critical_client() - Add latency critical client
|
||||
* @vdev: vdev handle (Should not be NULL)
|
||||
* @phymode: the phymode of the connected adapter
|
||||
*
|
||||
* This function checks if the present connection is latency critical
|
||||
* and adds to the latency critical clients count and informs the
|
||||
* datapath about this connection being latency critical.
|
||||
*
|
||||
* Returns: None
|
||||
*/
|
||||
void ucfg_dp_add_latency_critical_client(struct wlan_objmgr_vdev *vdev,
|
||||
enum qca_wlan_802_11_mode phymode);
|
||||
|
||||
/**
|
||||
* ucfg_dp_del_latency_critical_client() - Remove latency critical client
|
||||
* @vdev: vdev handle (Should not be NULL)
|
||||
* @phymode: the phymode of the connected adapter
|
||||
*
|
||||
* This function checks if the present connection was latency critical
|
||||
* and removes from the latency critical clients count and informs the
|
||||
* datapath about the removed connection being latency critical.
|
||||
*
|
||||
* Returns: None
|
||||
*/
|
||||
void ucfg_dp_del_latency_critical_client(struct wlan_objmgr_vdev *vdev,
|
||||
enum qca_wlan_802_11_mode phymode);
|
||||
|
||||
/**
|
||||
* ucfg_dp_reset_tcp_delack() - Reset TCP delay ACK
|
||||
* level
|
||||
* @psoc: psoc handle
|
||||
*
|
||||
* Return: None
|
||||
*/
|
||||
void ucfg_dp_reset_tcp_delack(struct wlan_objmgr_psoc *psoc);
|
||||
|
||||
/**
|
||||
* ucfg_dp_set_current_throughput_level() - update the current vote
|
||||
* level
|
||||
* @psoc: psoc handle
|
||||
* @next_vote_level: pld_bus_width_type voting level
|
||||
*
|
||||
* This function updates the current vote level to the new level
|
||||
* provided
|
||||
*
|
||||
* Return: None
|
||||
*/
|
||||
void
|
||||
ucfg_dp_set_current_throughput_level(struct wlan_objmgr_psoc *psoc,
|
||||
enum pld_bus_width_type next_vote_level);
|
||||
|
||||
/**
|
||||
* ucfg_wlan_dp_display_tx_rx_histogram() - display tx rx histogram
|
||||
* @psoc: psoc handle
|
||||
*
|
||||
* Return: none
|
||||
*/
|
||||
void ucfg_wlan_dp_display_tx_rx_histogram(struct wlan_objmgr_psoc *psoc);
|
||||
|
||||
/**
|
||||
* ucfg_wlan_dp_clear_tx_rx_histogram() - clear tx rx histogram
|
||||
* @psoc: psoc handle
|
||||
*
|
||||
* Return: none
|
||||
*/
|
||||
void ucfg_wlan_dp_clear_tx_rx_histogram(struct wlan_objmgr_psoc *psoc);
|
||||
|
||||
/**
|
||||
* ucfg_dp_set_high_bus_bw_request() - Set high bandwidth request.
|
||||
* @psoc: psoc handle
|
||||
* @vdev_id: vdev_id
|
||||
* @high_bus_bw : High bus bandwidth requested
|
||||
*
|
||||
* Return: None.
|
||||
*/
|
||||
void
|
||||
ucfg_dp_set_high_bus_bw_request(struct wlan_objmgr_psoc *psoc,
|
||||
uint8_t vdev_id,
|
||||
bool high_bus_bw);
|
||||
|
||||
/**
|
||||
* ucfg_dp_bus_bw_compute_timer_start() - start the bandwidth timer
|
||||
* @psoc: psoc handle
|
||||
*
|
||||
* Return: None
|
||||
*/
|
||||
void ucfg_dp_bus_bw_compute_timer_start(struct wlan_objmgr_psoc *psoc);
|
||||
|
||||
/**
|
||||
* ucfg_dp_bus_bw_compute_timer_try_start() - try to start the bandwidth timer
|
||||
* @psoc: psoc handle
|
||||
*
|
||||
* This function ensures there is at least one intf in the associated state
|
||||
* before starting the bandwidth timer.
|
||||
*
|
||||
* Return: None
|
||||
*/
|
||||
void ucfg_dp_bus_bw_compute_timer_try_start(struct wlan_objmgr_psoc *psoc);
|
||||
|
||||
/**
|
||||
* ucfg_dp_bus_bw_compute_timer_stop() - stop the bandwidth timer
|
||||
* @psoc: psoc handle
|
||||
*
|
||||
* Return: None
|
||||
*/
|
||||
void ucfg_dp_bus_bw_compute_timer_stop(struct wlan_objmgr_psoc *psoc);
|
||||
|
||||
/**
|
||||
* ucfg_dp_bus_bw_compute_timer_try_stop() - try to stop the bandwidth timer
|
||||
* @psoc: psoc handle
|
||||
*
|
||||
* This function ensures there are no interface in the associated state before
|
||||
* stopping the bandwidth timer.
|
||||
*
|
||||
* Return: None
|
||||
*/
|
||||
void ucfg_dp_bus_bw_compute_timer_try_stop(struct wlan_objmgr_psoc *psoc);
|
||||
|
||||
/**
|
||||
* ucfg_dp_bus_bw_compute_prev_txrx_stats() - get tx and rx stats
|
||||
* @vdev: vdev handle
|
||||
*
|
||||
* This function get the collected tx and rx stats before starting
|
||||
* the bus bandwidth timer.
|
||||
*
|
||||
* Return: None
|
||||
*/
|
||||
void ucfg_dp_bus_bw_compute_prev_txrx_stats(struct wlan_objmgr_vdev *vdev);
|
||||
|
||||
/**
|
||||
* ucfg_dp_bus_bw_compute_reset_prev_txrx_stats() - reset previous txrx stats
|
||||
* @vdev: vdev handle
|
||||
*
|
||||
* This function resets the adapter previous tx rx stats.
|
||||
*
|
||||
* Return: None
|
||||
*/
|
||||
void
|
||||
ucfg_dp_bus_bw_compute_reset_prev_txrx_stats(struct wlan_objmgr_vdev *vdev);
|
||||
|
||||
/**
|
||||
* ucfg_dp_register_hdd_callbacks() - Resiter HDD callbacks with DP component
|
||||
* @psoc: psoc handle
|
||||
@@ -223,5 +365,4 @@ void ucfg_dp_try_set_rps_cpu_mask(struct wlan_objmgr_psoc *psoc);
|
||||
*/
|
||||
void ucfg_dp_register_hdd_callbacks(struct wlan_objmgr_psoc *psoc,
|
||||
struct wlan_dp_psoc_callbacks *cb_obj);
|
||||
|
||||
#endif /* _WLAN_DP_UCFG_API_H_ */
|
||||
|
Reference in New Issue
Block a user