qcacmn: Data path converged internal APIs (Set 1)
Initial check-in of the data path converged APIs that are currently only implemented by MCL. Change-Id: I8132aeef4631a8e2fb5e132126a0fc5292c96d12 CRs-Fixed: 993414
This commit is contained in:

committed by
Vishwajith Upendra

parent
d90a4473ec
commit
9c222b15b0
115
dp/inc/cdp_txrx_flow_ctrl_legacy.h
Normal file
115
dp/inc/cdp_txrx_flow_ctrl_legacy.h
Normal file
@@ -0,0 +1,115 @@
|
||||
/*
|
||||
* Copyright (c) 2016 The Linux Foundation. All rights reserved.
|
||||
*
|
||||
* Previously licensed under the ISC license by Qualcomm Atheros, Inc.
|
||||
*
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for
|
||||
* any purpose with or without fee is hereby granted, provided that the
|
||||
* above copyright notice and this permission notice appear in all
|
||||
* copies.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
|
||||
* WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
|
||||
* WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
|
||||
* AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
|
||||
* DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
|
||||
* PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
|
||||
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/*
|
||||
* This file was originally distributed by Qualcomm Atheros, Inc.
|
||||
* under proprietary terms before Copyright ownership was assigned
|
||||
* to the Linux Foundation.
|
||||
*/
|
||||
/**
|
||||
* @file cdp_txrx_flow_ctrl_legacy.h
|
||||
* @brief Define the host data path legacy flow control API
|
||||
* functions
|
||||
*/
|
||||
#ifndef _CDP_TXRX_FC_LEG_H_
|
||||
#define _CDP_TXRX_FC_LEG_H_
|
||||
|
||||
/**
|
||||
* enum netif_action_type - Type of actions on netif queues
|
||||
* @WLAN_STOP_ALL_NETIF_QUEUE: stop all netif queues
|
||||
* @WLAN_START_ALL_NETIF_QUEUE: start all netif queues
|
||||
* @WLAN_WAKE_ALL_NETIF_QUEUE: wake all netif queues
|
||||
* @WLAN_STOP_ALL_NETIF_QUEUE_N_CARRIER: stop all queues and off carrier
|
||||
* @WLAN_START_ALL_NETIF_QUEUE_N_CARRIER: start all queues and on carrier
|
||||
* @WLAN_NETIF_TX_DISABLE: disable tx
|
||||
* @WLAN_NETIF_TX_DISABLE_N_CARRIER: disable tx and off carrier
|
||||
* @WLAN_NETIF_CARRIER_ON: on carrier
|
||||
* @WLAN_NETIF_CARRIER_OFF: off carrier
|
||||
*/
|
||||
enum netif_action_type {
|
||||
WLAN_STOP_ALL_NETIF_QUEUE,
|
||||
WLAN_START_ALL_NETIF_QUEUE,
|
||||
WLAN_WAKE_ALL_NETIF_QUEUE,
|
||||
WLAN_STOP_ALL_NETIF_QUEUE_N_CARRIER,
|
||||
WLAN_START_ALL_NETIF_QUEUE_N_CARRIER,
|
||||
WLAN_NETIF_TX_DISABLE,
|
||||
WLAN_NETIF_TX_DISABLE_N_CARRIER,
|
||||
WLAN_NETIF_CARRIER_ON,
|
||||
WLAN_NETIF_CARRIER_OFF,
|
||||
WLAN_NETIF_ACTION_TYPE_MAX,
|
||||
};
|
||||
|
||||
/**
|
||||
* enum netif_reason_type - reason for netif queue action
|
||||
* @WLAN_CONTROL_PATH: action from control path
|
||||
* @WLAN_DATA_FLOW_CONTROL: because of flow control
|
||||
* @WLAN_FW_PAUSE: because of firmware pause
|
||||
* @WLAN_TX_ABORT: because of tx abort
|
||||
* @WLAN_VDEV_STOP: because of vdev stop
|
||||
* @WLAN_PEER_UNAUTHORISED: because of peer is unauthorised
|
||||
* @WLAN_THERMAL_MITIGATION: because of thermal mitigation
|
||||
*/
|
||||
enum netif_reason_type {
|
||||
WLAN_CONTROL_PATH,
|
||||
WLAN_DATA_FLOW_CONTROL,
|
||||
WLAN_FW_PAUSE,
|
||||
WLAN_TX_ABORT,
|
||||
WLAN_VDEV_STOP,
|
||||
WLAN_PEER_UNAUTHORISED,
|
||||
WLAN_THERMAL_MITIGATION,
|
||||
WLAN_REASON_TYPE_MAX,
|
||||
};
|
||||
|
||||
#ifdef QCA_LL_LEGACY_TX_FLOW_CONTROL
|
||||
/**
|
||||
* ol_txrx_tx_flow_control_fp - tx flow control notification
|
||||
* function from txrx to OS shim
|
||||
* @osif_dev - the virtual device's OS shim object
|
||||
* @tx_resume - tx os q should be resumed or not
|
||||
*/
|
||||
typedef void (*ol_txrx_tx_flow_control_fp)(void *osif_dev,
|
||||
bool tx_resume);
|
||||
|
||||
int ol_txrx_register_tx_flow_control(uint8_t vdev_id,
|
||||
ol_txrx_tx_flow_control_fp flowControl,
|
||||
void *osif_fc_ctx);
|
||||
|
||||
int ol_txrx_deregister_tx_flow_control_cb(uint8_t vdev_id);
|
||||
|
||||
void ol_txrx_flow_control_cb(ol_txrx_vdev_handle vdev,
|
||||
bool tx_resume);
|
||||
bool
|
||||
ol_txrx_get_tx_resource(uint8_t sta_id,
|
||||
unsigned int low_watermark,
|
||||
unsigned int high_watermark_offset);
|
||||
|
||||
int
|
||||
ol_txrx_ll_set_tx_pause_q_depth(uint8_t vdev_id, int pause_q_depth);
|
||||
|
||||
#endif /* QCA_LL_LEGACY_TX_FLOW_CONTROL */
|
||||
|
||||
void ol_txrx_vdev_flush(ol_txrx_vdev_handle data_vdev);
|
||||
|
||||
void ol_txrx_vdev_pause(ol_txrx_vdev_handle vdev, uint32_t reason);
|
||||
|
||||
void ol_txrx_vdev_unpause(ol_txrx_vdev_handle data_vdev, uint32_t reason);
|
||||
|
||||
#endif /* _CDP_TXRX_FC_LEG_H_ */
|
Reference in New Issue
Block a user