mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-15 09:14:18 -04:00
qcacld-3.0: Handle void pointer declarations for pdev and vdev
Replace void pointer handles for pdev and vdev with abstract structure handles Change-Id: Idd9a2521249e30faf1143f671c4d2d924fe231e8 CRs-Fixed: 1109835
This commit is contained in:
parent
ab679fb31b
commit
0d44d455fa
44 changed files with 789 additions and 647 deletions
|
|
@ -204,11 +204,11 @@ typedef struct _cds_context_type {
|
|||
*/
|
||||
qdf_device_t qdf_ctx;
|
||||
|
||||
void *pdev_txrx_ctx;
|
||||
struct cdp_pdev *pdev_txrx_ctx;
|
||||
void *dp_soc;
|
||||
|
||||
/* Configuration handle used to get system configuration */
|
||||
void *cfg_ctx;
|
||||
struct cdp_cfg *cfg_ctx;
|
||||
|
||||
/* radio index per driver */
|
||||
int radio_index;
|
||||
|
|
|
|||
|
|
@ -63,6 +63,8 @@
|
|||
#include <cdp_txrx_cfg.h>
|
||||
#include <cdp_txrx_misc.h>
|
||||
#include <dispatcher_init_deinit.h>
|
||||
#include <cdp_txrx_handle.h>
|
||||
|
||||
/* Preprocessor Definitions and Constants */
|
||||
|
||||
/* Data definitions */
|
||||
|
|
@ -197,11 +199,11 @@ static void cds_cdp_cfg_attach(struct cds_config_info *cds_cfg)
|
|||
}
|
||||
|
||||
/* Configure Receive flow steering */
|
||||
cdp_cfg_set_flow_steering(soc, &gp_cds_context->cfg_ctx,
|
||||
cdp_cfg_set_flow_steering(soc, gp_cds_context->cfg_ctx,
|
||||
cds_cfg->flow_steering_enabled);
|
||||
|
||||
cdp_cfg_set_flow_control_parameters(soc, &gp_cds_context->cfg_ctx,
|
||||
(void *)cds_cfg);
|
||||
cdp_cfg_set_flow_control_parameters(soc, gp_cds_context->cfg_ctx,
|
||||
(void *)&cdp_cfg);
|
||||
|
||||
/* adjust the cfg_ctx default value based on setting */
|
||||
cdp_cfg_set_rx_fwd_disabled(soc, gp_cds_context->cfg_ctx,
|
||||
|
|
@ -573,7 +575,8 @@ QDF_STATUS cds_pre_enable(v_CONTEXT_t cds_context)
|
|||
if (QDF_GLOBAL_FTM_MODE != cds_get_conparam() &&
|
||||
QDF_GLOBAL_EPPING_MODE != cds_get_conparam())
|
||||
cdp_pkt_log_con_service(soc,
|
||||
gp_cds_context->pdev_txrx_ctx, scn);
|
||||
gp_cds_context->pdev_txrx_ctx,
|
||||
scn);
|
||||
|
||||
/* Reset wma wait event */
|
||||
qdf_event_reset(&gp_cds_context->wmaCompleteEvent);
|
||||
|
|
@ -725,7 +728,7 @@ QDF_STATUS cds_enable(struct wlan_objmgr_psoc *psoc, v_CONTEXT_t cds_context)
|
|||
}
|
||||
|
||||
if (cdp_pdev_attach_target(cds_get_context(QDF_MODULE_ID_SOC),
|
||||
cds_get_context(QDF_MODULE_ID_TXRX))) {
|
||||
(struct cdp_pdev *)cds_get_context(QDF_MODULE_ID_TXRX))) {
|
||||
QDF_TRACE(QDF_MODULE_ID_QDF, QDF_TRACE_LEVEL_FATAL,
|
||||
"%s: Failed to attach pdev target", __func__);
|
||||
goto err_soc_target_detach;
|
||||
|
|
@ -919,7 +922,8 @@ QDF_STATUS cds_close(struct wlan_objmgr_psoc *psoc, v_CONTEXT_t cds_context)
|
|||
|
||||
ctx = cds_get_context(QDF_MODULE_ID_TXRX);
|
||||
cds_set_context(QDF_MODULE_ID_TXRX, NULL);
|
||||
cdp_pdev_detach(cds_get_context(QDF_MODULE_ID_SOC), ctx, 1);
|
||||
cdp_pdev_detach(cds_get_context(QDF_MODULE_ID_SOC),
|
||||
(struct cdp_pdev *)ctx, 1);
|
||||
|
||||
qdf_status = sme_close(((p_cds_contextType) cds_context)->pMACContext);
|
||||
if (!QDF_IS_STATUS_SUCCESS(qdf_status)) {
|
||||
|
|
@ -1068,7 +1072,7 @@ void *cds_get_context(QDF_MODULE_ID moduleId)
|
|||
|
||||
case QDF_MODULE_ID_TXRX:
|
||||
{
|
||||
pModContext = gp_cds_context->pdev_txrx_ctx;
|
||||
pModContext = (void *)gp_cds_context->pdev_txrx_ctx;
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
@ -1359,7 +1363,7 @@ QDF_STATUS cds_free_context(void *p_cds_context, QDF_MODULE_ID moduleID,
|
|||
|
||||
case QDF_MODULE_ID_TXRX:
|
||||
{
|
||||
pGpModContext = &(gp_cds_context->pdev_txrx_ctx);
|
||||
pGpModContext = (void **)&(gp_cds_context->pdev_txrx_ctx);
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright (c) 2011, 2014-2016 The Linux Foundation. All rights reserved.
|
||||
* Copyright (c) 2011, 2014-2017 The Linux Foundation. All rights reserved.
|
||||
*
|
||||
* Previously licensed under the ISC license by Qualcomm Atheros, Inc.
|
||||
*
|
||||
|
|
@ -46,6 +46,7 @@
|
|||
#include <ol_htt_tx_api.h>
|
||||
#include <cds_api.h>
|
||||
#include "hif.h"
|
||||
#include <cdp_txrx_handle.h>
|
||||
|
||||
#define HTT_HTC_PKT_POOL_INIT_SIZE 100 /* enough for a large A-MPDU */
|
||||
|
||||
|
|
@ -276,7 +277,7 @@ void htt_clear_bundle_stats(htt_pdev_handle pdev)
|
|||
*/
|
||||
htt_pdev_handle
|
||||
htt_pdev_alloc(ol_txrx_pdev_handle txrx_pdev,
|
||||
ol_pdev_handle ctrl_pdev,
|
||||
struct cdp_cfg *ctrl_pdev,
|
||||
HTC_HANDLE htc_pdev, qdf_device_t osdev)
|
||||
{
|
||||
struct htt_pdev_t *pdev;
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright (c) 2011-2016 The Linux Foundation. All rights reserved.
|
||||
* Copyright (c) 2011-2017 The Linux Foundation. All rights reserved.
|
||||
*
|
||||
* Previously licensed under the ISC license by Qualcomm Atheros, Inc.
|
||||
*
|
||||
|
|
@ -51,7 +51,7 @@
|
|||
#include <ol_txrx_peer_find.h>
|
||||
#include <cdp_txrx_ipa.h>
|
||||
#include "pktlog_ac.h"
|
||||
|
||||
#include <cdp_txrx_handle.h>
|
||||
/*--- target->host HTT message dispatch function ----------------------------*/
|
||||
|
||||
#ifndef DEBUG_CREDIT
|
||||
|
|
@ -449,7 +449,8 @@ static void htt_t2h_lp_msg_handler(void *context, qdf_nbuf_t htt_t2h_msg,
|
|||
sizeof(struct htt_wdi_ipa_op_response_t) +
|
||||
len);
|
||||
cdp_ipa_op_response(cds_get_context(QDF_MODULE_ID_SOC),
|
||||
pdev->txrx_pdev, op_msg_buffer);
|
||||
(struct cdp_pdev *)pdev->txrx_pdev,
|
||||
op_msg_buffer);
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright (c) 2011, 2014-2016 The Linux Foundation. All rights reserved.
|
||||
* Copyright (c) 2011, 2014-2017 The Linux Foundation. All rights reserved.
|
||||
*
|
||||
* Previously licensed under the ISC license by Qualcomm Atheros, Inc.
|
||||
*
|
||||
|
|
@ -36,7 +36,7 @@
|
|||
#include <qdf_nbuf.h> /* qdf_nbuf_t */
|
||||
#include <htc_api.h> /* HTC_PACKET */
|
||||
#include <ol_htt_api.h>
|
||||
|
||||
#include <cdp_txrx_handle.h>
|
||||
#define DEBUG_DMA_DONE
|
||||
|
||||
#define HTT_TX_MUTEX_TYPE qdf_spinlock_t
|
||||
|
|
@ -229,7 +229,7 @@ struct mon_channel {
|
|||
};
|
||||
|
||||
struct htt_pdev_t {
|
||||
ol_pdev_handle ctrl_pdev;
|
||||
struct cdp_cfg *ctrl_pdev;
|
||||
ol_txrx_pdev_handle txrx_pdev;
|
||||
HTC_HANDLE htc_pdev;
|
||||
qdf_device_t osdev;
|
||||
|
|
|
|||
|
|
@ -38,7 +38,7 @@
|
|||
#include "wlan_tgt_def_config.h"
|
||||
#endif
|
||||
#include "ol_txrx_ctrl_api.h" /* txrx_pdev_cfg_param_t */
|
||||
|
||||
#include <cdp_txrx_handle.h>
|
||||
/**
|
||||
* @brief format of data frames delivered to/from the WLAN driver by/to the OS
|
||||
*/
|
||||
|
|
@ -104,11 +104,11 @@ struct txrx_pdev_cfg_t {
|
|||
* Return: none
|
||||
*/
|
||||
#ifdef QCA_LL_TX_FLOW_CONTROL_V2
|
||||
void ol_tx_set_flow_control_parameters(struct txrx_pdev_cfg_t *cfg_ctx,
|
||||
void ol_tx_set_flow_control_parameters(struct cdp_cfg *cfg_ctx,
|
||||
struct txrx_pdev_cfg_param_t *cfg_param);
|
||||
#else
|
||||
static inline
|
||||
void ol_tx_set_flow_control_parameters(struct txrx_pdev_cfg_t *cfg_ctx,
|
||||
void ol_tx_set_flow_control_parameters(struct cdp_cfg *cfg_ctx,
|
||||
struct txrx_pdev_cfg_param_t *cfg_param)
|
||||
{
|
||||
}
|
||||
|
|
@ -123,7 +123,7 @@ void ol_tx_set_flow_control_parameters(struct txrx_pdev_cfg_t *cfg_ctx,
|
|||
*
|
||||
* Return: the control device object
|
||||
*/
|
||||
void *ol_pdev_cfg_attach(qdf_device_t osdev, void *pcfg_param);
|
||||
struct cdp_cfg *ol_pdev_cfg_attach(qdf_device_t osdev, void *pcfg_param);
|
||||
|
||||
/**
|
||||
* @brief Specify whether the system is high-latency or low-latency.
|
||||
|
|
@ -138,7 +138,7 @@ void *ol_pdev_cfg_attach(qdf_device_t osdev, void *pcfg_param);
|
|||
* @param pdev - handle to the physical device
|
||||
* @return 1 -> high-latency -OR- 0 -> low-latency
|
||||
*/
|
||||
int ol_cfg_is_high_latency(ol_pdev_handle pdev);
|
||||
int ol_cfg_is_high_latency(struct cdp_cfg *cfg_pdev);
|
||||
|
||||
/**
|
||||
* @brief Specify the range of peer IDs.
|
||||
|
|
@ -151,7 +151,7 @@ int ol_cfg_is_high_latency(ol_pdev_handle pdev);
|
|||
* @param pdev - handle to the physical device
|
||||
* @return maximum peer ID
|
||||
*/
|
||||
int ol_cfg_max_peer_id(ol_pdev_handle pdev);
|
||||
int ol_cfg_max_peer_id(struct cdp_cfg *cfg_pdev);
|
||||
|
||||
/**
|
||||
* @brief Specify the max number of virtual devices within a physical device.
|
||||
|
|
@ -161,7 +161,7 @@ int ol_cfg_max_peer_id(ol_pdev_handle pdev);
|
|||
* @param pdev - handle to the physical device
|
||||
* @return maximum number of virtual devices
|
||||
*/
|
||||
int ol_cfg_max_vdevs(ol_pdev_handle pdev);
|
||||
int ol_cfg_max_vdevs(struct cdp_cfg *cfg_pdev);
|
||||
|
||||
/**
|
||||
* @brief Check whether host-side rx PN check is enabled or disabled.
|
||||
|
|
@ -175,7 +175,7 @@ int ol_cfg_max_vdevs(ol_pdev_handle pdev);
|
|||
* @param pdev - handle to the physical device
|
||||
* @return 1 -> host performs rx PN check -OR- 0 -> no host-side rx PN check
|
||||
*/
|
||||
int ol_cfg_rx_pn_check(ol_pdev_handle pdev);
|
||||
int ol_cfg_rx_pn_check(struct cdp_cfg *cfg_pdev);
|
||||
|
||||
/**
|
||||
* @brief Check whether host-side rx forwarding is enabled or disabled.
|
||||
|
|
@ -191,7 +191,7 @@ int ol_cfg_rx_pn_check(ol_pdev_handle pdev);
|
|||
* @param pdev - handle to the physical device
|
||||
* @return 1 -> host does rx->tx forward -OR- 0 -> no host-side rx->tx forward
|
||||
*/
|
||||
int ol_cfg_rx_fwd_check(ol_pdev_handle pdev);
|
||||
int ol_cfg_rx_fwd_check(struct cdp_cfg *cfg_pdev);
|
||||
|
||||
/**
|
||||
* ol_set_cfg_rx_fwd_disabled - set rx fwd disable/enable
|
||||
|
|
@ -204,7 +204,7 @@ int ol_cfg_rx_fwd_check(ol_pdev_handle pdev);
|
|||
* Currently only intra-bss fwd is supported.
|
||||
*
|
||||
*/
|
||||
void ol_set_cfg_rx_fwd_disabled(void *ppdev, uint8_t disable_rx_fwd);
|
||||
void ol_set_cfg_rx_fwd_disabled(struct cdp_cfg *ppdev, uint8_t disable_rx_fwd);
|
||||
|
||||
/**
|
||||
* ol_set_cfg_packet_log_enabled - Set packet log config in HTT
|
||||
|
|
@ -213,7 +213,7 @@ void ol_set_cfg_rx_fwd_disabled(void *ppdev, uint8_t disable_rx_fwd);
|
|||
* @pdev - handle to the physical device
|
||||
* @val - 0 - disable, 1 - enable
|
||||
*/
|
||||
void ol_set_cfg_packet_log_enabled(void *ppdev, uint8_t val);
|
||||
void ol_set_cfg_packet_log_enabled(struct cdp_cfg *ppdev, uint8_t val);
|
||||
|
||||
/**
|
||||
* @brief Check whether rx forwarding is enabled or disabled.
|
||||
|
|
@ -224,7 +224,7 @@ void ol_set_cfg_packet_log_enabled(void *ppdev, uint8_t val);
|
|||
* @param pdev - handle to the physical device
|
||||
* @return 1 -> no rx->tx forward -OR- 0 -> rx->tx forward (in host or target)
|
||||
*/
|
||||
int ol_cfg_rx_fwd_disabled(ol_pdev_handle pdev);
|
||||
int ol_cfg_rx_fwd_disabled(struct cdp_cfg *cfg_pdev);
|
||||
|
||||
/**
|
||||
* @brief Check whether to perform inter-BSS or intra-BSS rx->tx forwarding.
|
||||
|
|
@ -240,7 +240,7 @@ int ol_cfg_rx_fwd_disabled(ol_pdev_handle pdev);
|
|||
* -OR-
|
||||
* 0 -> forward only within a vdev
|
||||
*/
|
||||
int ol_cfg_rx_fwd_inter_bss(ol_pdev_handle pdev);
|
||||
int ol_cfg_rx_fwd_inter_bss(struct cdp_cfg *cfg_pdev);
|
||||
|
||||
/**
|
||||
* @brief Specify data frame format used by the OS.
|
||||
|
|
@ -251,7 +251,7 @@ int ol_cfg_rx_fwd_inter_bss(ol_pdev_handle pdev);
|
|||
* @param pdev - handle to the physical device
|
||||
* @return enumerated data frame format
|
||||
*/
|
||||
enum wlan_frm_fmt ol_cfg_frame_type(ol_pdev_handle pdev);
|
||||
enum wlan_frm_fmt ol_cfg_frame_type(struct cdp_cfg *cfg_pdev);
|
||||
|
||||
/**
|
||||
* @brief Specify the peak throughput.
|
||||
|
|
@ -266,7 +266,7 @@ enum wlan_frm_fmt ol_cfg_frame_type(ol_pdev_handle pdev);
|
|||
* @param pdev - handle to the physical device
|
||||
* @return maximum supported throughput in Mbps (not MBps)
|
||||
*/
|
||||
int ol_cfg_max_thruput_mbps(ol_pdev_handle pdev);
|
||||
int ol_cfg_max_thruput_mbps(struct cdp_cfg *cfg_pdev);
|
||||
|
||||
/**
|
||||
* @brief Specify the maximum number of fragments per tx network buffer.
|
||||
|
|
@ -284,7 +284,7 @@ int ol_cfg_max_thruput_mbps(ol_pdev_handle pdev);
|
|||
* @param pdev - handle to the physical device
|
||||
* @return maximum number of fragments that can occur in a regular tx frame
|
||||
*/
|
||||
int ol_cfg_netbuf_frags_max(ol_pdev_handle pdev);
|
||||
int ol_cfg_netbuf_frags_max(struct cdp_cfg *cfg_pdev);
|
||||
|
||||
/**
|
||||
* @brief For HL systems, specify when to free tx frames.
|
||||
|
|
@ -311,8 +311,8 @@ int ol_cfg_netbuf_frags_max(ol_pdev_handle pdev);
|
|||
* -OR-
|
||||
* 1 -> free the tx frame as soon as the download completes
|
||||
*/
|
||||
int ol_cfg_tx_free_at_download(ol_pdev_handle pdev);
|
||||
void ol_cfg_set_tx_free_at_download(ol_pdev_handle pdev);
|
||||
int ol_cfg_tx_free_at_download(struct cdp_cfg *cfg_pdev);
|
||||
void ol_cfg_set_tx_free_at_download(struct cdp_cfg *cfg_pdev);
|
||||
|
||||
/**
|
||||
* @brief Low water mark for target tx credit.
|
||||
|
|
@ -340,7 +340,7 @@ void ol_cfg_set_tx_free_at_download(ol_pdev_handle pdev);
|
|||
* @param pdev - handle to the physical device
|
||||
* @return the number of tx buffers available in a HL target
|
||||
*/
|
||||
uint16_t ol_cfg_target_tx_credit(ol_pdev_handle pdev);
|
||||
uint16_t ol_cfg_target_tx_credit(struct cdp_cfg *cfg_pdev);
|
||||
|
||||
/**
|
||||
* @brief Specify the LL tx MSDU header download size.
|
||||
|
|
@ -361,7 +361,7 @@ uint16_t ol_cfg_target_tx_credit(ol_pdev_handle pdev);
|
|||
* @return the number of bytes beyond the 802.3 or native WiFi header to
|
||||
* download to the target for tx classification
|
||||
*/
|
||||
int ol_cfg_tx_download_size(ol_pdev_handle pdev);
|
||||
int ol_cfg_tx_download_size(struct cdp_cfg *cfg_pdev);
|
||||
|
||||
/**
|
||||
* brief Specify where defrag timeout and duplicate detection is handled
|
||||
|
|
@ -379,7 +379,7 @@ int ol_cfg_tx_download_size(ol_pdev_handle pdev);
|
|||
* 1 -> host is responsible non-aggregate duplicate detection and
|
||||
* timing out stale fragments.
|
||||
*/
|
||||
int ol_cfg_rx_host_defrag_timeout_duplicate_check(ol_pdev_handle pdev);
|
||||
int ol_cfg_rx_host_defrag_timeout_duplicate_check(struct cdp_cfg *cfg_pdev);
|
||||
|
||||
/**
|
||||
* brief Query for the period in ms used for throttling for
|
||||
|
|
@ -395,7 +395,7 @@ int ol_cfg_rx_host_defrag_timeout_duplicate_check(ol_pdev_handle pdev);
|
|||
* @param pdev - handle to the physical device
|
||||
* @return the total throttle period in ms
|
||||
*/
|
||||
int ol_cfg_throttle_period_ms(ol_pdev_handle pdev);
|
||||
int ol_cfg_throttle_period_ms(struct cdp_cfg *cfg_pdev);
|
||||
|
||||
/**
|
||||
* brief Query for the duty cycle in percentage used for throttling for
|
||||
|
|
@ -405,7 +405,7 @@ int ol_cfg_throttle_period_ms(ol_pdev_handle pdev);
|
|||
* @param level - duty cycle level
|
||||
* @return the duty cycle level in percentage
|
||||
*/
|
||||
int ol_cfg_throttle_duty_cycle_level(ol_pdev_handle pdev, int level);
|
||||
int ol_cfg_throttle_duty_cycle_level(struct cdp_cfg *cfg_pdev, int level);
|
||||
|
||||
/**
|
||||
* brief Check whether full reorder offload is
|
||||
|
|
@ -418,9 +418,9 @@ int ol_cfg_throttle_duty_cycle_level(ol_pdev_handle pdev, int level);
|
|||
* @param pdev - handle to the physical device
|
||||
* @return 1 - enable, 0 - disable
|
||||
*/
|
||||
int ol_cfg_is_full_reorder_offload(ol_pdev_handle pdev);
|
||||
int ol_cfg_is_full_reorder_offload(struct cdp_cfg *cfg_pdev);
|
||||
|
||||
int ol_cfg_is_rx_thread_enabled(ol_pdev_handle pdev);
|
||||
int ol_cfg_is_rx_thread_enabled(struct cdp_cfg *cfg_pdev);
|
||||
|
||||
/**
|
||||
* ol_cfg_is_ip_tcp_udp_checksum_offload_enabled() - return
|
||||
|
|
@ -430,20 +430,20 @@ int ol_cfg_is_rx_thread_enabled(ol_pdev_handle pdev);
|
|||
* Return: 1 - enable, 0 - disable
|
||||
*/
|
||||
static inline
|
||||
int ol_cfg_is_ip_tcp_udp_checksum_offload_enabled(ol_pdev_handle pdev)
|
||||
int ol_cfg_is_ip_tcp_udp_checksum_offload_enabled(struct cdp_cfg *cfg_pdev)
|
||||
{
|
||||
struct txrx_pdev_cfg_t *cfg = (struct txrx_pdev_cfg_t *)pdev;
|
||||
struct txrx_pdev_cfg_t *cfg = (struct txrx_pdev_cfg_t *)cfg_pdev;
|
||||
return cfg->ip_tcp_udp_checksum_offload;
|
||||
}
|
||||
|
||||
|
||||
#ifdef QCA_LL_TX_FLOW_CONTROL_V2
|
||||
int ol_cfg_get_tx_flow_stop_queue_th(ol_pdev_handle pdev);
|
||||
int ol_cfg_get_tx_flow_stop_queue_th(struct cdp_cfg *cfg_pdev);
|
||||
|
||||
int ol_cfg_get_tx_flow_start_queue_offset(ol_pdev_handle pdev);
|
||||
int ol_cfg_get_tx_flow_start_queue_offset(struct cdp_cfg *cfg_pdev);
|
||||
#endif
|
||||
|
||||
bool ol_cfg_is_ce_classify_enabled(ol_pdev_handle pdev);
|
||||
bool ol_cfg_is_ce_classify_enabled(struct cdp_cfg *cfg_pdev);
|
||||
|
||||
enum wlan_target_fmt_translation_caps {
|
||||
wlan_frm_tran_cap_raw = 0x01,
|
||||
|
|
@ -461,7 +461,7 @@ enum wlan_target_fmt_translation_caps {
|
|||
*
|
||||
* @param pdev - handle to the physical device
|
||||
*/
|
||||
static inline int ol_cfg_sw_encap_hdr_max_size(ol_pdev_handle pdev)
|
||||
static inline int ol_cfg_sw_encap_hdr_max_size(struct cdp_cfg *cfg_pdev)
|
||||
{
|
||||
/*
|
||||
* 24 byte basic 802.11 header
|
||||
|
|
@ -473,13 +473,13 @@ static inline int ol_cfg_sw_encap_hdr_max_size(ol_pdev_handle pdev)
|
|||
return sizeof(struct ieee80211_qosframe_htc_addr4) + LLC_SNAP_HDR_LEN;
|
||||
}
|
||||
|
||||
static inline uint8_t ol_cfg_tx_encap(ol_pdev_handle pdev)
|
||||
static inline uint8_t ol_cfg_tx_encap(struct cdp_cfg *cfg_pdev)
|
||||
{
|
||||
/* tx encap done in HW */
|
||||
return 0;
|
||||
}
|
||||
|
||||
static inline int ol_cfg_host_addba(ol_pdev_handle pdev)
|
||||
static inline int ol_cfg_host_addba(struct cdp_cfg *cfg_pdev)
|
||||
{
|
||||
/*
|
||||
* ADDBA negotiation is handled by the target FW for Peregrine + Rome.
|
||||
|
|
@ -492,7 +492,7 @@ static inline int ol_cfg_host_addba(ol_pdev_handle pdev)
|
|||
*
|
||||
* @param pdev - handle to the physical device
|
||||
*/
|
||||
static inline int ol_cfg_addba_retry(ol_pdev_handle pdev)
|
||||
static inline int ol_cfg_addba_retry(struct cdp_cfg *cfg_pdev)
|
||||
{
|
||||
return 0; /* disabled for now */
|
||||
}
|
||||
|
|
@ -500,7 +500,7 @@ static inline int ol_cfg_addba_retry(ol_pdev_handle pdev)
|
|||
/**
|
||||
* @brief How many frames to hold in a paused vdev's tx queue in LL systems
|
||||
*/
|
||||
static inline int ol_tx_cfg_max_tx_queue_depth_ll(ol_pdev_handle pdev)
|
||||
static inline int ol_tx_cfg_max_tx_queue_depth_ll(struct cdp_cfg *cfg_pdev)
|
||||
{
|
||||
/*
|
||||
* Store up to 1500 frames for a paused vdev.
|
||||
|
|
@ -521,7 +521,7 @@ static inline int ol_tx_cfg_max_tx_queue_depth_ll(ol_pdev_handle pdev)
|
|||
/**
|
||||
* @brief Get packet log config from HTT config
|
||||
*/
|
||||
uint8_t ol_cfg_is_packet_log_enabled(ol_pdev_handle pdev);
|
||||
uint8_t ol_cfg_is_packet_log_enabled(struct cdp_cfg *cfg_pdev);
|
||||
|
||||
#ifdef IPA_OFFLOAD
|
||||
/**
|
||||
|
|
@ -532,7 +532,7 @@ uint8_t ol_cfg_is_packet_log_enabled(ol_pdev_handle pdev);
|
|||
*
|
||||
* @param pdev - handle to the physical device
|
||||
*/
|
||||
unsigned int ol_cfg_ipa_uc_offload_enabled(ol_pdev_handle pdev);
|
||||
unsigned int ol_cfg_ipa_uc_offload_enabled(struct cdp_cfg *cfg_pdev);
|
||||
/**
|
||||
* @brief IPA micro controller data path TX buffer size
|
||||
* @detail
|
||||
|
|
@ -542,7 +542,7 @@ unsigned int ol_cfg_ipa_uc_offload_enabled(ol_pdev_handle pdev);
|
|||
*
|
||||
* @param pdev - handle to the physical device
|
||||
*/
|
||||
unsigned int ol_cfg_ipa_uc_tx_buf_size(ol_pdev_handle pdev);
|
||||
unsigned int ol_cfg_ipa_uc_tx_buf_size(struct cdp_cfg *cfg_pdev);
|
||||
/**
|
||||
* @brief IPA micro controller data path TX buffer size
|
||||
* @detail
|
||||
|
|
@ -551,7 +551,7 @@ unsigned int ol_cfg_ipa_uc_tx_buf_size(ol_pdev_handle pdev);
|
|||
*
|
||||
* @param pdev - handle to the physical device
|
||||
*/
|
||||
unsigned int ol_cfg_ipa_uc_tx_max_buf_cnt(ol_pdev_handle pdev);
|
||||
unsigned int ol_cfg_ipa_uc_tx_max_buf_cnt(struct cdp_cfg *cfg_pdev);
|
||||
/**
|
||||
* @brief IPA micro controller data path TX buffer size
|
||||
* @detail
|
||||
|
|
@ -561,46 +561,47 @@ unsigned int ol_cfg_ipa_uc_tx_max_buf_cnt(ol_pdev_handle pdev);
|
|||
*
|
||||
* @param pdev - handle to the physical device
|
||||
*/
|
||||
unsigned int ol_cfg_ipa_uc_rx_ind_ring_size(ol_pdev_handle pdev);
|
||||
unsigned int ol_cfg_ipa_uc_rx_ind_ring_size(struct cdp_cfg *cfg_pdev);
|
||||
/**
|
||||
* @brief IPA micro controller data path TX buffer size
|
||||
* @param pdev - handle to the physical device
|
||||
*/
|
||||
unsigned int ol_cfg_ipa_uc_tx_partition_base(ol_pdev_handle pdev);
|
||||
void ol_cfg_set_ipa_uc_tx_partition_base(void *pdev, uint32_t value);
|
||||
unsigned int ol_cfg_ipa_uc_tx_partition_base(struct cdp_cfg *cfg_pdev);
|
||||
void ol_cfg_set_ipa_uc_tx_partition_base(struct cdp_cfg *cfg_pdev,
|
||||
uint32_t value);
|
||||
#else
|
||||
static inline unsigned int ol_cfg_ipa_uc_offload_enabled(
|
||||
ol_pdev_handle pdev)
|
||||
struct cdp_cfg *cfg_pdev)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
static inline unsigned int ol_cfg_ipa_uc_tx_buf_size(
|
||||
ol_pdev_handle pdev)
|
||||
struct cdp_cfg *cfg_pdev)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
static inline unsigned int ol_cfg_ipa_uc_tx_max_buf_cnt(
|
||||
ol_pdev_handle pdev)
|
||||
struct cdp_cfg *cfg_pdev)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
static inline unsigned int ol_cfg_ipa_uc_rx_ind_ring_size(
|
||||
ol_pdev_handle pdev)
|
||||
struct cdp_cfg *cfg_pdev)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
static inline unsigned int ol_cfg_ipa_uc_tx_partition_base(
|
||||
ol_pdev_handle pdev)
|
||||
struct cdp_cfg *cfg_pdev)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
static inline void ol_cfg_set_ipa_uc_tx_partition_base(
|
||||
void *pdev, uint32_t value)
|
||||
struct cdp_cfg *cfg_pdev, uint32_t value)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
|
@ -615,10 +616,10 @@ static inline void ol_cfg_set_ipa_uc_tx_partition_base(
|
|||
*
|
||||
* Return: None
|
||||
*/
|
||||
static inline void ol_set_cfg_flow_steering(void *ppdev, uint8_t val)
|
||||
static inline void ol_set_cfg_flow_steering(struct cdp_cfg *cfg_pdev,
|
||||
uint8_t val)
|
||||
{
|
||||
ol_pdev_handle pdev = ppdev;
|
||||
struct txrx_pdev_cfg_t *cfg = (struct txrx_pdev_cfg_t *)pdev;
|
||||
struct txrx_pdev_cfg_t *cfg = (struct txrx_pdev_cfg_t *)cfg_pdev;
|
||||
|
||||
cfg->flow_steering_enabled = val;
|
||||
}
|
||||
|
|
@ -630,9 +631,9 @@ static inline void ol_set_cfg_flow_steering(void *ppdev, uint8_t val)
|
|||
*
|
||||
* Return: value of configured flow steering value.
|
||||
*/
|
||||
static inline uint8_t ol_cfg_is_flow_steering_enabled(ol_pdev_handle pdev)
|
||||
static inline uint8_t ol_cfg_is_flow_steering_enabled(struct cdp_cfg *cfg_pdev)
|
||||
{
|
||||
struct txrx_pdev_cfg_t *cfg = (struct txrx_pdev_cfg_t *)pdev;
|
||||
struct txrx_pdev_cfg_t *cfg = (struct txrx_pdev_cfg_t *)cfg_pdev;
|
||||
|
||||
return cfg->flow_steering_enabled;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright (c) 2011, 2014-2016 The Linux Foundation. All rights reserved.
|
||||
* Copyright (c) 2011, 2014-2017 The Linux Foundation. All rights reserved.
|
||||
*
|
||||
* Previously licensed under the ISC license by Qualcomm Atheros, Inc.
|
||||
*
|
||||
|
|
@ -42,7 +42,7 @@
|
|||
#include "htt.h" /* htt_dbg_stats_type, etc. */
|
||||
#include <cdp_txrx_cmn.h> /* ol_pdev_handle */
|
||||
#include <ol_defines.h>
|
||||
|
||||
#include <cdp_txrx_handle.h>
|
||||
/* TID */
|
||||
#define OL_HTT_TID_NON_QOS_UNICAST 16
|
||||
#define OL_HTT_TID_NON_QOS_MCAST_BCAST 18
|
||||
|
|
@ -52,7 +52,7 @@ typedef struct htt_pdev_t *htt_pdev_handle;
|
|||
|
||||
htt_pdev_handle
|
||||
htt_pdev_alloc(ol_txrx_pdev_handle txrx_pdev,
|
||||
ol_pdev_handle ctrl_pdev,
|
||||
struct cdp_cfg *ctrl_pdev,
|
||||
HTC_HANDLE htc_pdev, qdf_device_t osdev);
|
||||
|
||||
/**
|
||||
|
|
@ -365,7 +365,7 @@ static inline void htt_ipa_uc_detach(struct htt_pdev_t *pdev)
|
|||
|
||||
void htt_rx_mon_note_capture_channel(htt_pdev_handle pdev, int mon_ch);
|
||||
|
||||
void ol_htt_mon_note_chan(ol_txrx_pdev_handle pdev, int mon_ch);
|
||||
void ol_htt_mon_note_chan(struct cdp_pdev *ppdev, int mon_ch);
|
||||
|
||||
#if defined(DEBUG_HL_LOGGING) && defined(CONFIG_HL_SUPPORT)
|
||||
|
||||
|
|
|
|||
|
|
@ -42,7 +42,7 @@
|
|||
#include <cdp_txrx_cmn.h> /* ol_pdev_handle, ol_vdev_handle, etc */
|
||||
#include <cdp_txrx_cfg.h>
|
||||
#include <ol_defines.h>
|
||||
|
||||
#include <cdp_txrx_handle.h>
|
||||
#define OL_ATH_TX_DRAIN_WAIT_DELAY 50
|
||||
|
||||
/**
|
||||
|
|
@ -67,7 +67,7 @@
|
|||
* @return 0 for success or error code
|
||||
*/
|
||||
int
|
||||
ol_txrx_pdev_post_attach(void *pdev);
|
||||
ol_txrx_pdev_post_attach(struct cdp_pdev *pdev);
|
||||
|
||||
/**
|
||||
* @brief Parameter type to be input to ol_txrx_peer_update
|
||||
|
|
@ -308,7 +308,7 @@ typedef void
|
|||
* @param ctxt - the context argument provided to the callback function
|
||||
*/
|
||||
void
|
||||
ol_txrx_data_tx_cb_set(void *data_vdev,
|
||||
ol_txrx_data_tx_cb_set(struct cdp_vdev *data_vdev,
|
||||
ol_txrx_data_tx_cb callback, void *ctxt);
|
||||
|
||||
/**
|
||||
|
|
@ -460,7 +460,7 @@ int16_t ol_txrx_peer_rssi(ol_txrx_peer_handle peer);
|
|||
*/
|
||||
void
|
||||
ol_txrx_bad_peer_txctl_set_setting(
|
||||
void *pdev,
|
||||
struct cdp_pdev *pdev,
|
||||
int enable,
|
||||
int period,
|
||||
int txq_limit);
|
||||
|
|
@ -473,7 +473,7 @@ ol_txrx_bad_peer_txctl_set_setting(
|
|||
*/
|
||||
void
|
||||
ol_txrx_bad_peer_txctl_update_threshold(
|
||||
void *pdev,
|
||||
struct cdp_pdev *pdev,
|
||||
int level,
|
||||
int tput_thresh,
|
||||
int tx_limit);
|
||||
|
|
@ -482,7 +482,7 @@ ol_txrx_bad_peer_txctl_update_threshold(
|
|||
|
||||
static inline void
|
||||
ol_txrx_bad_peer_txctl_set_setting(
|
||||
void *pdev,
|
||||
struct cdp_pdev *pdev,
|
||||
int enable,
|
||||
int period,
|
||||
int txq_limit)
|
||||
|
|
@ -492,7 +492,7 @@ ol_txrx_bad_peer_txctl_set_setting(
|
|||
|
||||
static inline void
|
||||
ol_txrx_bad_peer_txctl_update_threshold(
|
||||
void *pdev,
|
||||
struct cdp_pdev *pdev,
|
||||
int level,
|
||||
int tput_thresh,
|
||||
int tx_limit)
|
||||
|
|
|
|||
|
|
@ -28,7 +28,7 @@
|
|||
#include <ol_cfg.h>
|
||||
#include <ol_if_athvar.h>
|
||||
#include <cdp_txrx_cfg.h>
|
||||
|
||||
#include <cdp_txrx_handle.h>
|
||||
unsigned int vow_config = 0;
|
||||
|
||||
#ifdef QCA_LL_TX_FLOW_CONTROL_V2
|
||||
|
|
@ -39,9 +39,10 @@ unsigned int vow_config = 0;
|
|||
*
|
||||
* Return: none
|
||||
*/
|
||||
void ol_tx_set_flow_control_parameters(struct txrx_pdev_cfg_t *cfg_ctx,
|
||||
void ol_tx_set_flow_control_parameters(struct cdp_cfg *cfg_pdev,
|
||||
struct txrx_pdev_cfg_param_t *cfg_param)
|
||||
{
|
||||
struct txrx_pdev_cfg_t *cfg_ctx = (struct txrx_pdev_cfg_t *)cfg_pdev;
|
||||
cfg_ctx->tx_flow_start_queue_offset =
|
||||
cfg_param->tx_flow_start_queue_offset;
|
||||
cfg_ctx->tx_flow_stop_queue_th =
|
||||
|
|
@ -98,7 +99,7 @@ uint8_t ol_defrag_timeout_check(void)
|
|||
* Many of these should actually be determined dynamically instead.
|
||||
*/
|
||||
|
||||
void *ol_pdev_cfg_attach(qdf_device_t osdev, void *pcfg_param)
|
||||
struct cdp_cfg *ol_pdev_cfg_attach(qdf_device_t osdev, void *pcfg_param)
|
||||
{
|
||||
struct txrx_pdev_cfg_param_t *cfg_param = pcfg_param;
|
||||
struct txrx_pdev_cfg_t *cfg_ctx;
|
||||
|
|
@ -142,19 +143,19 @@ void *ol_pdev_cfg_attach(qdf_device_t osdev, void *pcfg_param)
|
|||
cfg_param->ip_tcp_udp_checksum_offload;
|
||||
cfg_ctx->ce_classify_enabled = cfg_param->ce_classify_enabled;
|
||||
|
||||
ol_tx_set_flow_control_parameters(cfg_ctx, cfg_param);
|
||||
return (void *)cfg_ctx;
|
||||
ol_tx_set_flow_control_parameters((struct cdp_cfg *)cfg_ctx, cfg_param);
|
||||
return (struct cdp_cfg *)cfg_ctx;
|
||||
}
|
||||
|
||||
int ol_cfg_is_high_latency(ol_pdev_handle pdev)
|
||||
int ol_cfg_is_high_latency(struct cdp_cfg *cfg_pdev)
|
||||
{
|
||||
struct txrx_pdev_cfg_t *cfg = (struct txrx_pdev_cfg_t *)pdev;
|
||||
struct txrx_pdev_cfg_t *cfg = (struct txrx_pdev_cfg_t *)cfg_pdev;
|
||||
return cfg->is_high_latency;
|
||||
}
|
||||
|
||||
int ol_cfg_max_peer_id(ol_pdev_handle pdev)
|
||||
int ol_cfg_max_peer_id(struct cdp_cfg *cfg_pdev)
|
||||
{
|
||||
struct txrx_pdev_cfg_t *cfg = (struct txrx_pdev_cfg_t *)pdev;
|
||||
struct txrx_pdev_cfg_t *cfg = (struct txrx_pdev_cfg_t *)cfg_pdev;
|
||||
/*
|
||||
* TBDXXX - this value must match the peer table
|
||||
* size allocated in FW
|
||||
|
|
@ -162,103 +163,102 @@ int ol_cfg_max_peer_id(ol_pdev_handle pdev)
|
|||
return cfg->max_peer_id;
|
||||
}
|
||||
|
||||
int ol_cfg_max_vdevs(ol_pdev_handle pdev)
|
||||
int ol_cfg_max_vdevs(struct cdp_cfg *cfg_pdev)
|
||||
{
|
||||
struct txrx_pdev_cfg_t *cfg = (struct txrx_pdev_cfg_t *)pdev;
|
||||
struct txrx_pdev_cfg_t *cfg = (struct txrx_pdev_cfg_t *)cfg_pdev;
|
||||
return cfg->max_vdev;
|
||||
}
|
||||
|
||||
int ol_cfg_rx_pn_check(ol_pdev_handle pdev)
|
||||
int ol_cfg_rx_pn_check(struct cdp_cfg *cfg_pdev)
|
||||
{
|
||||
struct txrx_pdev_cfg_t *cfg = (struct txrx_pdev_cfg_t *)pdev;
|
||||
struct txrx_pdev_cfg_t *cfg = (struct txrx_pdev_cfg_t *)cfg_pdev;
|
||||
return cfg->rx_pn_check;
|
||||
}
|
||||
|
||||
int ol_cfg_rx_fwd_check(ol_pdev_handle pdev)
|
||||
int ol_cfg_rx_fwd_check(struct cdp_cfg *cfg_pdev)
|
||||
{
|
||||
struct txrx_pdev_cfg_t *cfg = (struct txrx_pdev_cfg_t *)pdev;
|
||||
struct txrx_pdev_cfg_t *cfg = (struct txrx_pdev_cfg_t *)cfg_pdev;
|
||||
return cfg->pn_rx_fwd_check;
|
||||
}
|
||||
|
||||
void ol_set_cfg_rx_fwd_disabled(void *ppdev, uint8_t disable_rx_fwd)
|
||||
void ol_set_cfg_rx_fwd_disabled(struct cdp_cfg *cfg_pdev,
|
||||
uint8_t disable_rx_fwd)
|
||||
{
|
||||
ol_pdev_handle pdev = ppdev;
|
||||
struct txrx_pdev_cfg_t *cfg = (struct txrx_pdev_cfg_t *)pdev;
|
||||
struct txrx_pdev_cfg_t *cfg = (struct txrx_pdev_cfg_t *)cfg_pdev;
|
||||
cfg->rx_fwd_disabled = disable_rx_fwd;
|
||||
}
|
||||
|
||||
void ol_set_cfg_packet_log_enabled(void *ppdev, uint8_t val)
|
||||
void ol_set_cfg_packet_log_enabled(struct cdp_cfg *cfg_pdev, uint8_t val)
|
||||
{
|
||||
ol_pdev_handle pdev = ppdev;
|
||||
struct txrx_pdev_cfg_t *cfg = (struct txrx_pdev_cfg_t *)pdev;
|
||||
struct txrx_pdev_cfg_t *cfg = (struct txrx_pdev_cfg_t *)cfg_pdev;
|
||||
cfg->is_packet_log_enabled = val;
|
||||
}
|
||||
|
||||
uint8_t ol_cfg_is_packet_log_enabled(ol_pdev_handle pdev)
|
||||
uint8_t ol_cfg_is_packet_log_enabled(struct cdp_cfg *cfg_pdev)
|
||||
{
|
||||
struct txrx_pdev_cfg_t *cfg = (struct txrx_pdev_cfg_t *)pdev;
|
||||
struct txrx_pdev_cfg_t *cfg = (struct txrx_pdev_cfg_t *)cfg_pdev;
|
||||
return cfg->is_packet_log_enabled;
|
||||
}
|
||||
|
||||
int ol_cfg_rx_fwd_disabled(ol_pdev_handle pdev)
|
||||
int ol_cfg_rx_fwd_disabled(struct cdp_cfg *cfg_pdev)
|
||||
{
|
||||
#if defined(ATHR_WIN_NWF)
|
||||
/* for Windows, let the OS handle the forwarding */
|
||||
return 1;
|
||||
#else
|
||||
struct txrx_pdev_cfg_t *cfg = (struct txrx_pdev_cfg_t *)pdev;
|
||||
struct txrx_pdev_cfg_t *cfg = (struct txrx_pdev_cfg_t *)cfg_pdev;
|
||||
return cfg->rx_fwd_disabled;
|
||||
#endif
|
||||
}
|
||||
|
||||
int ol_cfg_rx_fwd_inter_bss(ol_pdev_handle pdev)
|
||||
int ol_cfg_rx_fwd_inter_bss(struct cdp_cfg *cfg_pdev)
|
||||
{
|
||||
struct txrx_pdev_cfg_t *cfg = (struct txrx_pdev_cfg_t *)pdev;
|
||||
struct txrx_pdev_cfg_t *cfg = (struct txrx_pdev_cfg_t *)cfg_pdev;
|
||||
return cfg->rx_fwd_inter_bss;
|
||||
}
|
||||
|
||||
enum wlan_frm_fmt ol_cfg_frame_type(ol_pdev_handle pdev)
|
||||
enum wlan_frm_fmt ol_cfg_frame_type(struct cdp_cfg *cfg_pdev)
|
||||
{
|
||||
struct txrx_pdev_cfg_t *cfg = (struct txrx_pdev_cfg_t *)pdev;
|
||||
struct txrx_pdev_cfg_t *cfg = (struct txrx_pdev_cfg_t *)cfg_pdev;
|
||||
return cfg->frame_type;
|
||||
}
|
||||
|
||||
int ol_cfg_max_thruput_mbps(ol_pdev_handle pdev)
|
||||
int ol_cfg_max_thruput_mbps(struct cdp_cfg *cfg_pdev)
|
||||
{
|
||||
struct txrx_pdev_cfg_t *cfg = (struct txrx_pdev_cfg_t *)pdev;
|
||||
struct txrx_pdev_cfg_t *cfg = (struct txrx_pdev_cfg_t *)cfg_pdev;
|
||||
return cfg->max_thruput_mbps;
|
||||
}
|
||||
|
||||
int ol_cfg_netbuf_frags_max(ol_pdev_handle pdev)
|
||||
int ol_cfg_netbuf_frags_max(struct cdp_cfg *cfg_pdev)
|
||||
{
|
||||
struct txrx_pdev_cfg_t *cfg = (struct txrx_pdev_cfg_t *)pdev;
|
||||
struct txrx_pdev_cfg_t *cfg = (struct txrx_pdev_cfg_t *)cfg_pdev;
|
||||
return cfg->max_nbuf_frags;
|
||||
}
|
||||
|
||||
int ol_cfg_tx_free_at_download(ol_pdev_handle pdev)
|
||||
int ol_cfg_tx_free_at_download(struct cdp_cfg *cfg_pdev)
|
||||
{
|
||||
struct txrx_pdev_cfg_t *cfg = (struct txrx_pdev_cfg_t *)pdev;
|
||||
struct txrx_pdev_cfg_t *cfg = (struct txrx_pdev_cfg_t *)cfg_pdev;
|
||||
return cfg->tx_free_at_download;
|
||||
}
|
||||
|
||||
void ol_cfg_set_tx_free_at_download(ol_pdev_handle pdev)
|
||||
void ol_cfg_set_tx_free_at_download(struct cdp_cfg *cfg_pdev)
|
||||
{
|
||||
struct txrx_pdev_cfg_t *cfg = (struct txrx_pdev_cfg_t *)pdev;
|
||||
struct txrx_pdev_cfg_t *cfg = (struct txrx_pdev_cfg_t *)cfg_pdev;
|
||||
cfg->tx_free_at_download = 1;
|
||||
}
|
||||
|
||||
|
||||
#ifdef CONFIG_HL_SUPPORT
|
||||
uint16_t ol_cfg_target_tx_credit(ol_pdev_handle pdev)
|
||||
uint16_t ol_cfg_target_tx_credit(struct cdp_cfg *cfg_pdev)
|
||||
{
|
||||
struct txrx_pdev_cfg_t *cfg = (struct txrx_pdev_cfg_t *)pdev;
|
||||
struct txrx_pdev_cfg_t *cfg = (struct txrx_pdev_cfg_t *)cfg_pdev;
|
||||
return cfg->target_tx_credit;
|
||||
}
|
||||
#else
|
||||
|
||||
uint16_t ol_cfg_target_tx_credit(ol_pdev_handle pdev)
|
||||
uint16_t ol_cfg_target_tx_credit(struct cdp_cfg *cfg_pdev)
|
||||
{
|
||||
struct txrx_pdev_cfg_t *cfg = (struct txrx_pdev_cfg_t *)pdev;
|
||||
struct txrx_pdev_cfg_t *cfg = (struct txrx_pdev_cfg_t *)cfg_pdev;
|
||||
uint16_t rc;
|
||||
uint16_t vow_max_sta = (cfg->vow_config & 0xffff0000) >> 16;
|
||||
uint16_t vow_max_desc_persta = cfg->vow_config & 0x0000ffff;
|
||||
|
|
@ -269,33 +269,33 @@ uint16_t ol_cfg_target_tx_credit(ol_pdev_handle pdev)
|
|||
}
|
||||
#endif
|
||||
|
||||
int ol_cfg_tx_download_size(ol_pdev_handle pdev)
|
||||
int ol_cfg_tx_download_size(struct cdp_cfg *cfg_pdev)
|
||||
{
|
||||
struct txrx_pdev_cfg_t *cfg = (struct txrx_pdev_cfg_t *)pdev;
|
||||
struct txrx_pdev_cfg_t *cfg = (struct txrx_pdev_cfg_t *)cfg_pdev;
|
||||
return cfg->tx_download_size;
|
||||
}
|
||||
|
||||
int ol_cfg_rx_host_defrag_timeout_duplicate_check(ol_pdev_handle pdev)
|
||||
int ol_cfg_rx_host_defrag_timeout_duplicate_check(struct cdp_cfg *cfg_pdev)
|
||||
{
|
||||
struct txrx_pdev_cfg_t *cfg = (struct txrx_pdev_cfg_t *)pdev;
|
||||
struct txrx_pdev_cfg_t *cfg = (struct txrx_pdev_cfg_t *)cfg_pdev;
|
||||
return cfg->defrag_timeout_check;
|
||||
}
|
||||
|
||||
int ol_cfg_throttle_period_ms(ol_pdev_handle pdev)
|
||||
int ol_cfg_throttle_period_ms(struct cdp_cfg *cfg_pdev)
|
||||
{
|
||||
struct txrx_pdev_cfg_t *cfg = (struct txrx_pdev_cfg_t *)pdev;
|
||||
struct txrx_pdev_cfg_t *cfg = (struct txrx_pdev_cfg_t *)cfg_pdev;
|
||||
return cfg->throttle_period_ms;
|
||||
}
|
||||
|
||||
int ol_cfg_throttle_duty_cycle_level(ol_pdev_handle pdev, int level)
|
||||
int ol_cfg_throttle_duty_cycle_level(struct cdp_cfg *cfg_pdev, int level)
|
||||
{
|
||||
struct txrx_pdev_cfg_t *cfg = (struct txrx_pdev_cfg_t *)pdev;
|
||||
struct txrx_pdev_cfg_t *cfg = (struct txrx_pdev_cfg_t *)cfg_pdev;
|
||||
return cfg->dutycycle_level[level];
|
||||
}
|
||||
|
||||
int ol_cfg_is_full_reorder_offload(ol_pdev_handle pdev)
|
||||
int ol_cfg_is_full_reorder_offload(struct cdp_cfg *cfg_pdev)
|
||||
{
|
||||
struct txrx_pdev_cfg_t *cfg = (struct txrx_pdev_cfg_t *)pdev;
|
||||
struct txrx_pdev_cfg_t *cfg = (struct txrx_pdev_cfg_t *)cfg_pdev;
|
||||
return cfg->is_full_reorder_offload;
|
||||
}
|
||||
|
||||
|
|
@ -305,9 +305,9 @@ int ol_cfg_is_full_reorder_offload(ol_pdev_handle pdev)
|
|||
*
|
||||
* Return: 1 - enable, 0 - disable
|
||||
*/
|
||||
int ol_cfg_is_rx_thread_enabled(ol_pdev_handle pdev)
|
||||
int ol_cfg_is_rx_thread_enabled(struct cdp_cfg *cfg_pdev)
|
||||
{
|
||||
struct txrx_pdev_cfg_t *cfg = (struct txrx_pdev_cfg_t *)pdev;
|
||||
struct txrx_pdev_cfg_t *cfg = (struct txrx_pdev_cfg_t *)cfg_pdev;
|
||||
return cfg->enable_rxthread;
|
||||
}
|
||||
|
||||
|
|
@ -318,9 +318,9 @@ int ol_cfg_is_rx_thread_enabled(ol_pdev_handle pdev)
|
|||
*
|
||||
* Return: stop queue threshold
|
||||
*/
|
||||
int ol_cfg_get_tx_flow_stop_queue_th(ol_pdev_handle pdev)
|
||||
int ol_cfg_get_tx_flow_stop_queue_th(struct cdp_cfg *cfg_pdev)
|
||||
{
|
||||
struct txrx_pdev_cfg_t *cfg = (struct txrx_pdev_cfg_t *)pdev;
|
||||
struct txrx_pdev_cfg_t *cfg = (struct txrx_pdev_cfg_t *)cfg_pdev;
|
||||
return cfg->tx_flow_stop_queue_th;
|
||||
}
|
||||
|
||||
|
|
@ -330,48 +330,48 @@ int ol_cfg_get_tx_flow_stop_queue_th(ol_pdev_handle pdev)
|
|||
*
|
||||
* Return: start queue offset
|
||||
*/
|
||||
int ol_cfg_get_tx_flow_start_queue_offset(ol_pdev_handle pdev)
|
||||
int ol_cfg_get_tx_flow_start_queue_offset(struct cdp_cfg *cfg_pdev)
|
||||
{
|
||||
struct txrx_pdev_cfg_t *cfg = (struct txrx_pdev_cfg_t *)pdev;
|
||||
struct txrx_pdev_cfg_t *cfg = (struct txrx_pdev_cfg_t *)cfg_pdev;
|
||||
return cfg->tx_flow_start_queue_offset;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
#ifdef IPA_OFFLOAD
|
||||
unsigned int ol_cfg_ipa_uc_offload_enabled(ol_pdev_handle pdev)
|
||||
unsigned int ol_cfg_ipa_uc_offload_enabled(struct cdp_cfg *cfg_pdev)
|
||||
{
|
||||
struct txrx_pdev_cfg_t *cfg = (struct txrx_pdev_cfg_t *)pdev;
|
||||
struct txrx_pdev_cfg_t *cfg = (struct txrx_pdev_cfg_t *)cfg_pdev;
|
||||
return (unsigned int)cfg->ipa_uc_rsc.uc_offload_enabled;
|
||||
}
|
||||
|
||||
unsigned int ol_cfg_ipa_uc_tx_buf_size(ol_pdev_handle pdev)
|
||||
unsigned int ol_cfg_ipa_uc_tx_buf_size(struct cdp_cfg *cfg_pdev)
|
||||
{
|
||||
struct txrx_pdev_cfg_t *cfg = (struct txrx_pdev_cfg_t *)pdev;
|
||||
struct txrx_pdev_cfg_t *cfg = (struct txrx_pdev_cfg_t *)cfg_pdev;
|
||||
return cfg->ipa_uc_rsc.tx_buf_size;
|
||||
}
|
||||
|
||||
unsigned int ol_cfg_ipa_uc_tx_max_buf_cnt(ol_pdev_handle pdev)
|
||||
unsigned int ol_cfg_ipa_uc_tx_max_buf_cnt(struct cdp_cfg *cfg_pdev)
|
||||
{
|
||||
struct txrx_pdev_cfg_t *cfg = (struct txrx_pdev_cfg_t *)pdev;
|
||||
struct txrx_pdev_cfg_t *cfg = (struct txrx_pdev_cfg_t *)cfg_pdev;
|
||||
return cfg->ipa_uc_rsc.tx_max_buf_cnt;
|
||||
}
|
||||
|
||||
unsigned int ol_cfg_ipa_uc_rx_ind_ring_size(ol_pdev_handle pdev)
|
||||
unsigned int ol_cfg_ipa_uc_rx_ind_ring_size(struct cdp_cfg *cfg_pdev)
|
||||
{
|
||||
struct txrx_pdev_cfg_t *cfg = (struct txrx_pdev_cfg_t *)pdev;
|
||||
struct txrx_pdev_cfg_t *cfg = (struct txrx_pdev_cfg_t *)cfg_pdev;
|
||||
return cfg->ipa_uc_rsc.rx_ind_ring_size;
|
||||
}
|
||||
|
||||
unsigned int ol_cfg_ipa_uc_tx_partition_base(ol_pdev_handle pdev)
|
||||
unsigned int ol_cfg_ipa_uc_tx_partition_base(struct cdp_cfg *cfg_pdev)
|
||||
{
|
||||
struct txrx_pdev_cfg_t *cfg = (struct txrx_pdev_cfg_t *)pdev;
|
||||
struct txrx_pdev_cfg_t *cfg = (struct txrx_pdev_cfg_t *)cfg_pdev;
|
||||
return cfg->ipa_uc_rsc.tx_partition_base;
|
||||
}
|
||||
|
||||
void ol_cfg_set_ipa_uc_tx_partition_base(void *pdev, uint32_t val)
|
||||
void ol_cfg_set_ipa_uc_tx_partition_base(struct cdp_cfg *cfg_pdev, uint32_t val)
|
||||
{
|
||||
struct txrx_pdev_cfg_t *cfg = pdev;
|
||||
struct txrx_pdev_cfg_t *cfg = (struct txrx_pdev_cfg_t *)cfg_pdev;
|
||||
cfg->ipa_uc_rsc.tx_partition_base = val;
|
||||
}
|
||||
#endif /* IPA_OFFLOAD */
|
||||
|
|
@ -383,8 +383,8 @@ void ol_cfg_set_ipa_uc_tx_partition_base(void *pdev, uint32_t val)
|
|||
*
|
||||
* Return: 1 - enabled, 0 - disabled
|
||||
*/
|
||||
bool ol_cfg_is_ce_classify_enabled(ol_pdev_handle pdev)
|
||||
bool ol_cfg_is_ce_classify_enabled(struct cdp_cfg *cfg_pdev)
|
||||
{
|
||||
struct txrx_pdev_cfg_t *cfg = (struct txrx_pdev_cfg_t *)pdev;
|
||||
struct txrx_pdev_cfg_t *cfg = (struct txrx_pdev_cfg_t *)cfg_pdev;
|
||||
return cfg->ce_classify_enabled;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright (c) 2011-2016 The Linux Foundation. All rights reserved.
|
||||
* Copyright (c) 2011-2017 The Linux Foundation. All rights reserved.
|
||||
*
|
||||
* Previously licensed under the ISC license by Qualcomm Atheros, Inc.
|
||||
*
|
||||
|
|
@ -39,7 +39,7 @@
|
|||
#include <cdp_txrx_cmn.h> /* ol_txrx_pdev_handle */
|
||||
#include <ol_txrx_types.h> /* OL_TXRX_MAC_ADDR_LEN */
|
||||
#include <cds_ieee80211_common.h> /* ieee80211_frame */
|
||||
|
||||
#include <cdp_txrx_handle.h>
|
||||
#ifdef SUPPORT_HOST_STATISTICS
|
||||
/** * @brief Update tx statistics
|
||||
* @details
|
||||
|
|
@ -49,7 +49,8 @@
|
|||
* @param vdev_id - ID of the virtual device that tx frame
|
||||
* @param had_error - whether there is error when tx
|
||||
*/
|
||||
void ol_tx_statistics(ol_pdev_handle pdev, uint16_t vdev_id, int had_error);
|
||||
void ol_tx_statistics(struct cdp_cfg *cfg_pdev,
|
||||
uint16_t vdev_id, int had_error);
|
||||
#else
|
||||
#define ol_tx_statistics(pdev, vdev_id, had_error)
|
||||
#endif
|
||||
|
|
@ -60,7 +61,7 @@ void ol_tx_statistics(ol_pdev_handle pdev, uint16_t vdev_id, int had_error);
|
|||
* @param wh - received frame
|
||||
* @param err_type - what kind of error occurred
|
||||
*/
|
||||
void ol_rx_err_inv_peer_statistics(ol_pdev_handle pdev,
|
||||
void ol_rx_err_inv_peer_statistics(struct cdp_cfg *cfg_pdev,
|
||||
struct ieee80211_frame *wh,
|
||||
enum ol_rx_err_type err_type);
|
||||
|
||||
|
|
@ -73,7 +74,7 @@ void ol_rx_err_inv_peer_statistics(ol_pdev_handle pdev,
|
|||
* @param sec_type - The cipher type the peer is using
|
||||
* @param is_mcast - whether this is one multi cast frame
|
||||
*/
|
||||
void ol_rx_err_statistics(ol_pdev_handle pdev,
|
||||
void ol_rx_err_statistics(struct cdp_cfg *cfg_pdev,
|
||||
uint8_t vdev_id,
|
||||
enum ol_rx_err_type err_type,
|
||||
enum ol_sec_type sec_type, int is_mcast);
|
||||
|
|
@ -99,7 +100,7 @@ void ol_rx_err_statistics(ol_pdev_handle pdev,
|
|||
* @key_id - Key index octet received in IV of the frame
|
||||
*/
|
||||
void
|
||||
ol_rx_err(ol_pdev_handle pdev,
|
||||
ol_rx_err(struct cdp_cfg *cfg_pdev,
|
||||
uint8_t vdev_id,
|
||||
uint8_t *peer_mac_addr,
|
||||
int tid,
|
||||
|
|
@ -132,7 +133,7 @@ enum ol_rx_notify_type {
|
|||
* @param rx_frame - the rx frame containing the special data
|
||||
*/
|
||||
void
|
||||
ol_rx_notify(ol_pdev_handle pdev,
|
||||
ol_rx_notify(struct cdp_cfg *cfg_pdev,
|
||||
uint8_t vdev_id,
|
||||
uint8_t *peer_mac_addr,
|
||||
int tid,
|
||||
|
|
|
|||
|
|
@ -60,7 +60,7 @@
|
|||
#include <wma.h>
|
||||
#include <cds_concurrency.h>
|
||||
#include "pktlog_ac_fmt.h"
|
||||
|
||||
#include <cdp_txrx_handle.h>
|
||||
#include <pld_common.h>
|
||||
|
||||
void ol_rx_data_process(struct ol_txrx_peer_t *peer,
|
||||
|
|
@ -779,7 +779,7 @@ static void transcap_nwifi_to_8023(qdf_nbuf_t msdu)
|
|||
}
|
||||
#endif
|
||||
|
||||
void ol_rx_notify(ol_pdev_handle pdev,
|
||||
void ol_rx_notify(struct cdp_cfg *cfg_pdev,
|
||||
uint8_t vdev_id,
|
||||
uint8_t *peer_mac_addr,
|
||||
int tid,
|
||||
|
|
@ -1571,8 +1571,9 @@ ol_rx_offload_paddr_deliver_ind_handler(htt_pdev_handle htt_pdev,
|
|||
*
|
||||
* Return: None
|
||||
*/
|
||||
void ol_htt_mon_note_chan(ol_txrx_pdev_handle pdev, int mon_ch)
|
||||
void ol_htt_mon_note_chan(struct cdp_pdev *ppdev, int mon_ch)
|
||||
{
|
||||
struct ol_txrx_pdev_t *pdev = (struct ol_txrx_pdev_t *)ppdev;
|
||||
htt_rx_mon_note_capture_channel(pdev->htt_pdev, mon_ch);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -57,7 +57,7 @@
|
|||
#include <htt_types.h> /* htc_endpoint */
|
||||
#include <cdp_txrx_peer_ops.h>
|
||||
#include <cdp_txrx_ipa.h>
|
||||
|
||||
#include <cdp_txrx_handle.h>
|
||||
int ce_send_fast(struct CE_handle *copyeng, qdf_nbuf_t msdu,
|
||||
unsigned int transfer_id, uint32_t download_len);
|
||||
#endif /* WLAN_FEATURE_FASTPATH */
|
||||
|
|
@ -203,9 +203,10 @@ qdf_nbuf_t ol_tx_data(void *data_vdev, qdf_nbuf_t skb)
|
|||
}
|
||||
|
||||
#ifdef IPA_OFFLOAD
|
||||
qdf_nbuf_t ol_tx_send_ipa_data_frame(void *vdev, qdf_nbuf_t skb)
|
||||
qdf_nbuf_t ol_tx_send_ipa_data_frame(struct cdp_vdev *vdev,
|
||||
qdf_nbuf_t skb)
|
||||
{
|
||||
ol_txrx_pdev_handle pdev = cds_get_context(QDF_MODULE_ID_TXRX);
|
||||
struct ol_txrx_pdev_t *pdev = cds_get_context(QDF_MODULE_ID_TXRX);
|
||||
qdf_nbuf_t ret;
|
||||
|
||||
if (qdf_unlikely(!pdev)) {
|
||||
|
|
@ -1137,7 +1138,7 @@ static inline uint8_t ol_txrx_tx_raw_subtype(enum ol_tx_spec tx_spec)
|
|||
}
|
||||
|
||||
static qdf_nbuf_t
|
||||
ol_tx_non_std_ll(ol_txrx_vdev_handle vdev,
|
||||
ol_tx_non_std_ll(struct ol_txrx_vdev_t *vdev,
|
||||
enum ol_tx_spec tx_spec,
|
||||
qdf_nbuf_t msdu_list)
|
||||
{
|
||||
|
|
@ -1682,7 +1683,7 @@ ol_tx_hl(ol_txrx_vdev_handle vdev, qdf_nbuf_t msdu_list)
|
|||
}
|
||||
|
||||
static qdf_nbuf_t
|
||||
ol_tx_non_std_hl(ol_txrx_vdev_handle vdev,
|
||||
ol_tx_non_std_hl(struct ol_txrx_vdev_t *vdev,
|
||||
enum ol_tx_spec tx_spec,
|
||||
qdf_nbuf_t msdu_list)
|
||||
{
|
||||
|
|
@ -1698,10 +1699,10 @@ ol_tx_non_std_hl(ol_txrx_vdev_handle vdev,
|
|||
}
|
||||
|
||||
qdf_nbuf_t
|
||||
ol_tx_non_std(void *pvdev,
|
||||
ol_tx_non_std(struct cdp_vdev *pvdev,
|
||||
enum ol_tx_spec tx_spec, qdf_nbuf_t msdu_list)
|
||||
{
|
||||
ol_txrx_vdev_handle vdev = pvdev;
|
||||
struct ol_txrx_vdev_t *vdev = (struct ol_txrx_vdev_t *)pvdev;
|
||||
|
||||
if (vdev->pdev->cfg.is_high_latency)
|
||||
return ol_tx_non_std_hl(vdev, tx_spec, msdu_list);
|
||||
|
|
@ -1710,22 +1711,22 @@ ol_tx_non_std(void *pvdev,
|
|||
}
|
||||
|
||||
void
|
||||
ol_txrx_data_tx_cb_set(void *pvdev,
|
||||
ol_txrx_data_tx_cb_set(struct cdp_vdev *pvdev,
|
||||
ol_txrx_data_tx_cb callback, void *ctxt)
|
||||
{
|
||||
ol_txrx_vdev_handle vdev = pvdev;
|
||||
struct ol_txrx_vdev_t *vdev = (struct ol_txrx_vdev_t *)pvdev;
|
||||
struct ol_txrx_pdev_t *pdev = vdev->pdev;
|
||||
pdev->tx_data_callback.func = callback;
|
||||
pdev->tx_data_callback.ctxt = ctxt;
|
||||
}
|
||||
|
||||
void
|
||||
ol_txrx_mgmt_tx_cb_set(void *ppdev,
|
||||
ol_txrx_mgmt_tx_cb_set(struct cdp_pdev *ppdev,
|
||||
uint8_t type,
|
||||
ol_txrx_mgmt_tx_cb download_cb,
|
||||
ol_txrx_mgmt_tx_cb ota_ack_cb, void *ctxt)
|
||||
{
|
||||
ol_txrx_pdev_handle pdev = ppdev;
|
||||
struct ol_txrx_pdev_t *pdev = (struct ol_txrx_pdev_t *)ppdev;
|
||||
TXRX_ASSERT1(type < OL_TXRX_MGMT_NUM_TYPES);
|
||||
pdev->tx_mgmt.callbacks[type].download_cb = download_cb;
|
||||
pdev->tx_mgmt.callbacks[type].ota_ack_cb = ota_ack_cb;
|
||||
|
|
@ -1773,11 +1774,12 @@ void ol_txrx_dump_frag_desc(char *msg, struct ol_tx_desc_t *tx_desc)
|
|||
#endif /* HELIUMPLUS_PADDR64 */
|
||||
|
||||
int
|
||||
ol_txrx_mgmt_send_ext(void *pvdev,
|
||||
qdf_nbuf_t tx_mgmt_frm,
|
||||
uint8_t type, uint8_t use_6mbps, uint16_t chanfreq)
|
||||
ol_txrx_mgmt_send_ext(struct cdp_vdev *pvdev,
|
||||
qdf_nbuf_t tx_mgmt_frm,
|
||||
uint8_t type, uint8_t use_6mbps, uint16_t chanfreq)
|
||||
{
|
||||
ol_txrx_vdev_handle vdev = pvdev;
|
||||
struct ol_txrx_vdev_t *vdev =
|
||||
(struct ol_txrx_vdev_t *)pvdev;
|
||||
struct ol_txrx_pdev_t *pdev = vdev->pdev;
|
||||
struct ol_tx_desc_t *tx_desc;
|
||||
struct ol_txrx_msdu_info_t tx_msdu_info;
|
||||
|
|
|
|||
|
|
@ -36,7 +36,7 @@
|
|||
#include <qdf_lock.h>
|
||||
#include <cdp_txrx_cmn.h> /* ol_txrx_vdev_t, etc. */
|
||||
#include <cdp_txrx_misc.h> /* ol_tx_spec */
|
||||
|
||||
#include <cdp_txrx_handle.h>
|
||||
#include <ol_txrx_types.h> /* ol_tx_desc_t, ol_txrx_msdu_info_t */
|
||||
|
||||
#ifdef IPA_OFFLOAD
|
||||
|
|
@ -47,7 +47,7 @@
|
|||
*
|
||||
* Return: skb/ NULL is for success
|
||||
*/
|
||||
qdf_nbuf_t ol_tx_send_ipa_data_frame(void *vdev, qdf_nbuf_t skb);
|
||||
qdf_nbuf_t ol_tx_send_ipa_data_frame(struct cdp_vdev *vdev, qdf_nbuf_t skb);
|
||||
#endif
|
||||
|
||||
qdf_nbuf_t ol_tx_ll(ol_txrx_vdev_handle vdev, qdf_nbuf_t msdu_list);
|
||||
|
|
@ -117,7 +117,7 @@ ol_tx_hl(ol_txrx_vdev_handle vdev, qdf_nbuf_t msdu_list);
|
|||
* Return: null - success, skb - failure
|
||||
*/
|
||||
qdf_nbuf_t
|
||||
ol_tx_non_std(void *pvdev,
|
||||
ol_tx_non_std(struct cdp_vdev *pvdev,
|
||||
enum ol_tx_spec tx_spec, qdf_nbuf_t msdu_list);
|
||||
|
||||
void ol_txrx_mgmt_tx_complete(void *ctxt, qdf_nbuf_t netbuf, int err);
|
||||
|
|
@ -142,7 +142,7 @@ void ol_txrx_mgmt_tx_complete(void *ctxt, qdf_nbuf_t netbuf, int err);
|
|||
* for a given type of management frame.
|
||||
*/
|
||||
void
|
||||
ol_txrx_mgmt_tx_cb_set(void *ppdev,
|
||||
ol_txrx_mgmt_tx_cb_set(struct cdp_pdev *ppdev,
|
||||
uint8_t type,
|
||||
ol_txrx_mgmt_tx_cb download_cb,
|
||||
ol_txrx_mgmt_tx_cb ota_ack_cb, void *ctxt);
|
||||
|
|
@ -165,7 +165,7 @@ ol_txrx_mgmt_tx_cb_set(void *ppdev,
|
|||
* 1 - the frame was not accepted
|
||||
*/
|
||||
int
|
||||
ol_txrx_mgmt_send_ext(void *pvdev,
|
||||
ol_txrx_mgmt_send_ext(struct cdp_vdev *pvdev,
|
||||
qdf_nbuf_t tx_mgmt_frm,
|
||||
uint8_t type, uint8_t use_6mbps, uint16_t chanfreq);
|
||||
|
||||
|
|
|
|||
|
|
@ -43,7 +43,7 @@
|
|||
#include <ip_prot.h>
|
||||
#include <enet.h> /* ETHERTYPE_VLAN, etc. */
|
||||
#include <cds_ieee80211_common.h> /* ieee80211_frame */
|
||||
|
||||
#include <cdp_txrx_handle.h>
|
||||
/*
|
||||
* In theory, this tx classify code could be used on the host or in the target.
|
||||
* Thus, this code uses generic OS primitives, that can be aliased to either
|
||||
|
|
@ -350,7 +350,7 @@ struct ol_txrx_peer_t *ol_tx_tdls_peer_find(struct ol_txrx_pdev_t *pdev,
|
|||
struct ol_txrx_peer_t *peer = NULL;
|
||||
|
||||
if (vdev->hlTdlsFlag) {
|
||||
peer = ol_txrx_find_peer_by_addr(pdev,
|
||||
peer = ol_txrx_find_peer_by_addr((struct cdp_pdev *)pdev,
|
||||
vdev->hl_tdls_ap_mac_addr.raw,
|
||||
peer_id);
|
||||
if (peer && (peer->peer_ids[0] == HTT_INVALID_PEER_ID)) {
|
||||
|
|
|
|||
|
|
@ -209,7 +209,7 @@ ol_tx_desc_id(struct ol_txrx_pdev_t *pdev, struct ol_tx_desc_t *tx_desc)
|
|||
* @return void pointer to the beacon header for the given vdev
|
||||
*/
|
||||
|
||||
void *ol_ath_get_bcn_header(ol_pdev_handle pdev, A_UINT32 vdev_id);
|
||||
void *ol_ath_get_bcn_header(struct cdp_cfg *cfg_pdev, A_UINT32 vdev_id);
|
||||
|
||||
/*
|
||||
* @brief Free a tx descriptor, without freeing the matching frame.
|
||||
|
|
|
|||
|
|
@ -44,7 +44,7 @@
|
|||
#include <qdf_types.h> /* bool */
|
||||
#include "cdp_txrx_flow_ctrl_legacy.h"
|
||||
#include <ol_txrx_peer_find.h>
|
||||
|
||||
#include <cdp_txrx_handle.h>
|
||||
#if defined(CONFIG_HL_SUPPORT)
|
||||
|
||||
#ifndef offsetof
|
||||
|
|
@ -577,9 +577,9 @@ ol_txrx_throttle_unpause(ol_txrx_pdev_handle pdev)
|
|||
}
|
||||
|
||||
void
|
||||
ol_txrx_vdev_pause(void *pvdev, uint32_t reason)
|
||||
ol_txrx_vdev_pause(struct cdp_vdev *pvdev, uint32_t reason)
|
||||
{
|
||||
ol_txrx_vdev_handle vdev = pvdev;
|
||||
struct ol_txrx_vdev_t *vdev = (struct ol_txrx_vdev_t *)pvdev;
|
||||
struct ol_txrx_pdev_t *pdev = vdev->pdev;
|
||||
struct ol_txrx_peer_t *peer;
|
||||
/* TO DO: log the queue pause */
|
||||
|
|
@ -600,9 +600,9 @@ ol_txrx_vdev_pause(void *pvdev, uint32_t reason)
|
|||
}
|
||||
|
||||
|
||||
void ol_txrx_vdev_unpause(void *pvdev, uint32_t reason)
|
||||
void ol_txrx_vdev_unpause(struct cdp_vdev *pvdev, uint32_t reason)
|
||||
{
|
||||
ol_txrx_vdev_handle vdev = pvdev;
|
||||
struct ol_txrx_vdev_t *vdev = (struct ol_txrx_vdev_t *)pvdev;
|
||||
struct ol_txrx_pdev_t *pdev = vdev->pdev;
|
||||
struct ol_txrx_peer_t *peer;
|
||||
/* TO DO: log the queue unpause */
|
||||
|
|
@ -626,9 +626,9 @@ void ol_txrx_vdev_unpause(void *pvdev, uint32_t reason)
|
|||
TX_SCHED_DEBUG_PRINT("Leave %s\n", __func__);
|
||||
}
|
||||
|
||||
void ol_txrx_vdev_flush(void *pvdev)
|
||||
void ol_txrx_vdev_flush(struct cdp_vdev *pvdev)
|
||||
{
|
||||
ol_txrx_vdev_handle vdev = pvdev;
|
||||
struct ol_txrx_vdev_t *vdev = (struct ol_txrx_vdev_t *)pvdev;
|
||||
|
||||
ol_tx_queue_vdev_flush(vdev->pdev, vdev);
|
||||
}
|
||||
|
|
@ -818,10 +818,10 @@ ol_tx_bad_peer_update_tx_limit(struct ol_txrx_pdev_t *pdev,
|
|||
}
|
||||
|
||||
void
|
||||
ol_txrx_bad_peer_txctl_set_setting(void *ppdev,
|
||||
ol_txrx_bad_peer_txctl_set_setting(struct cdp_pdev *ppdev,
|
||||
int enable, int period, int txq_limit)
|
||||
{
|
||||
struct ol_txrx_pdev_t *pdev = ppdev;
|
||||
struct ol_txrx_pdev_t *pdev = (struct ol_txrx_pdev_t *)ppdev;
|
||||
if (enable)
|
||||
pdev->tx_peer_bal.enabled = ol_tx_peer_bal_enable;
|
||||
else
|
||||
|
|
@ -833,11 +833,11 @@ ol_txrx_bad_peer_txctl_set_setting(void *ppdev,
|
|||
}
|
||||
|
||||
void
|
||||
ol_txrx_bad_peer_txctl_update_threshold(void *ppdev,
|
||||
ol_txrx_bad_peer_txctl_update_threshold(struct cdp_pdev *ppdev,
|
||||
int level, int tput_thresh,
|
||||
int tx_limit)
|
||||
{
|
||||
struct ol_txrx_pdev_t *pdev = ppdev;
|
||||
struct ol_txrx_pdev_t *pdev = (struct ol_txrx_pdev_t *)ppdev;
|
||||
|
||||
/* Set the current settingl */
|
||||
pdev->tx_peer_bal.ctl_thresh[level].tput_thresh =
|
||||
|
|
@ -1692,9 +1692,9 @@ ol_tx_queues_display(struct ol_txrx_pdev_t *pdev)
|
|||
* will be paused.
|
||||
*
|
||||
*/
|
||||
void ol_txrx_vdev_pause(void *pvdev, uint32_t reason)
|
||||
void ol_txrx_vdev_pause(struct cdp_vdev *pvdev, uint32_t reason)
|
||||
{
|
||||
ol_txrx_vdev_handle vdev = pvdev;
|
||||
struct ol_txrx_vdev_t *vdev = (struct ol_txrx_vdev_t *)pvdev;
|
||||
|
||||
/* TO DO: log the queue pause */
|
||||
/* acquire the mutex lock, since we'll be modifying the queues */
|
||||
|
|
@ -1719,9 +1719,9 @@ void ol_txrx_vdev_pause(void *pvdev, uint32_t reason)
|
|||
* LL systems that use per-vdev tx queues for MCC or thermal throttling.
|
||||
*
|
||||
*/
|
||||
void ol_txrx_vdev_unpause(void *pvdev, uint32_t reason)
|
||||
void ol_txrx_vdev_unpause(struct cdp_vdev *pvdev, uint32_t reason)
|
||||
{
|
||||
ol_txrx_vdev_handle vdev = pvdev;
|
||||
struct ol_txrx_vdev_t *vdev = (struct ol_txrx_vdev_t *)pvdev;
|
||||
/* TO DO: log the queue unpause */
|
||||
/* acquire the mutex lock, since we'll be modifying the queues */
|
||||
TX_SCHED_DEBUG_PRINT("Enter %s\n", __func__);
|
||||
|
|
@ -1756,9 +1756,9 @@ void ol_txrx_vdev_unpause(void *pvdev, uint32_t reason)
|
|||
* stale, and would need to be discarded.
|
||||
*
|
||||
*/
|
||||
void ol_txrx_vdev_flush(void *pvdev)
|
||||
void ol_txrx_vdev_flush(struct cdp_vdev *pvdev)
|
||||
{
|
||||
ol_txrx_vdev_handle vdev = pvdev;
|
||||
struct ol_txrx_vdev_t *vdev = (struct ol_txrx_vdev_t *)pvdev;
|
||||
qdf_spin_lock_bh(&vdev->ll_pause.mutex);
|
||||
qdf_timer_stop(&vdev->ll_pause.timer);
|
||||
vdev->ll_pause.is_q_timer_on = false;
|
||||
|
|
@ -1780,7 +1780,7 @@ void ol_txrx_vdev_flush(void *pvdev)
|
|||
#endif /* defined(QCA_LL_LEGACY_TX_FLOW_CONTROL) */
|
||||
|
||||
#if (!defined(QCA_LL_LEGACY_TX_FLOW_CONTROL)) && (!defined(CONFIG_HL_SUPPORT))
|
||||
void ol_txrx_vdev_flush(void *data_vdev)
|
||||
void ol_txrx_vdev_flush(struct cdp_vdev *data_vdev)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
|
@ -1824,9 +1824,9 @@ ol_txrx_map_to_netif_reason_type(uint32_t reason)
|
|||
*
|
||||
* Return: none
|
||||
*/
|
||||
void ol_txrx_vdev_pause(void *pvdev, uint32_t reason)
|
||||
void ol_txrx_vdev_pause(struct cdp_vdev *pvdev, uint32_t reason)
|
||||
{
|
||||
ol_txrx_vdev_handle vdev = pvdev;
|
||||
struct ol_txrx_vdev_t *vdev = (struct ol_txrx_vdev_t *)pvdev;
|
||||
struct ol_txrx_pdev_t *pdev = vdev->pdev;
|
||||
enum netif_reason_type netif_reason;
|
||||
|
||||
|
|
@ -1850,9 +1850,9 @@ void ol_txrx_vdev_pause(void *pvdev, uint32_t reason)
|
|||
*
|
||||
* Return: none
|
||||
*/
|
||||
void ol_txrx_vdev_unpause(void *pvdev, uint32_t reason)
|
||||
void ol_txrx_vdev_unpause(struct cdp_vdev *pvdev, uint32_t reason)
|
||||
{
|
||||
ol_txrx_vdev_handle vdev = pvdev;
|
||||
struct ol_txrx_vdev_t *vdev = (struct ol_txrx_vdev_t *)pvdev;
|
||||
struct ol_txrx_pdev_t *pdev = vdev->pdev;
|
||||
enum netif_reason_type netif_reason;
|
||||
|
||||
|
|
@ -1888,7 +1888,8 @@ void ol_txrx_pdev_pause(struct ol_txrx_pdev_t *pdev, uint32_t reason)
|
|||
|
||||
TAILQ_FOREACH_SAFE(vdev, &pdev->vdev_list, vdev_list_elem, tmp) {
|
||||
cdp_fc_vdev_pause(
|
||||
cds_get_context(QDF_MODULE_ID_SOC), vdev, reason);
|
||||
cds_get_context(QDF_MODULE_ID_SOC),
|
||||
(struct cdp_vdev *)vdev, reason);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -1906,7 +1907,7 @@ void ol_txrx_pdev_unpause(struct ol_txrx_pdev_t *pdev, uint32_t reason)
|
|||
|
||||
TAILQ_FOREACH_SAFE(vdev, &pdev->vdev_list, vdev_list_elem, tmp) {
|
||||
cdp_fc_vdev_unpause(cds_get_context(QDF_MODULE_ID_SOC),
|
||||
vdev, reason);
|
||||
(struct cdp_vdev *)vdev, reason);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -2071,9 +2072,9 @@ ol_tx_set_throttle_phase_time(struct ol_txrx_pdev_t *pdev, int level, int *ms)
|
|||
}
|
||||
#endif
|
||||
|
||||
void ol_tx_throttle_set_level(void *ppdev, int level)
|
||||
void ol_tx_throttle_set_level(struct cdp_pdev *ppdev, int level)
|
||||
{
|
||||
struct ol_txrx_pdev_t *pdev = ppdev;
|
||||
struct ol_txrx_pdev_t *pdev = (struct ol_txrx_pdev_t *)ppdev;
|
||||
int ms = 0;
|
||||
|
||||
if (level >= THROTTLE_LEVEL_MAX) {
|
||||
|
|
@ -2094,10 +2095,10 @@ void ol_tx_throttle_set_level(void *ppdev, int level)
|
|||
qdf_timer_start(&pdev->tx_throttle.phase_timer, ms);
|
||||
}
|
||||
|
||||
void ol_tx_throttle_init_period(void *ppdev, int period,
|
||||
void ol_tx_throttle_init_period(struct cdp_pdev *ppdev, int period,
|
||||
uint8_t *dutycycle_level)
|
||||
{
|
||||
struct ol_txrx_pdev_t *pdev = ppdev;
|
||||
struct ol_txrx_pdev_t *pdev = (struct ol_txrx_pdev_t *)ppdev;
|
||||
int i;
|
||||
|
||||
/* Set the current throttle level */
|
||||
|
|
@ -2138,7 +2139,8 @@ void ol_tx_throttle_init(struct ol_txrx_pdev_t *pdev)
|
|||
dutycycle_level[i] =
|
||||
ol_cfg_throttle_duty_cycle_level(pdev->ctrl_pdev, i);
|
||||
|
||||
ol_tx_throttle_init_period(pdev, throttle_period, &dutycycle_level[0]);
|
||||
ol_tx_throttle_init_period((struct cdp_pdev *)pdev,
|
||||
throttle_period, &dutycycle_level[0]);
|
||||
|
||||
qdf_timer_init(pdev->osdev,
|
||||
&pdev->tx_throttle.phase_timer,
|
||||
|
|
|
|||
|
|
@ -241,13 +241,13 @@ ol_tx_queue_discard(
|
|||
}
|
||||
#endif /* defined(CONFIG_HL_SUPPORT) */
|
||||
|
||||
void ol_txrx_vdev_flush(void *pvdev);
|
||||
void ol_txrx_vdev_flush(struct cdp_vdev *pvdev);
|
||||
|
||||
#if defined(QCA_LL_LEGACY_TX_FLOW_CONTROL) || \
|
||||
(defined(QCA_LL_TX_FLOW_CONTROL_V2) && !defined(CONFIG_ICNSS)) || \
|
||||
defined(CONFIG_HL_SUPPORT)
|
||||
void ol_txrx_vdev_pause(void *pvdev, uint32_t reason);
|
||||
void ol_txrx_vdev_unpause(void *pvdev, uint32_t reason);
|
||||
void ol_txrx_vdev_pause(struct cdp_vdev *pvdev, uint32_t reason);
|
||||
void ol_txrx_vdev_unpause(struct cdp_vdev *pvdev, uint32_t reason);
|
||||
#endif /* QCA_LL_LEGACY_TX_FLOW_CONTROL */
|
||||
|
||||
#if defined(CONFIG_HL_SUPPORT) && defined(QCA_BAD_PEER_TX_FLOW_CL)
|
||||
|
|
@ -451,8 +451,8 @@ ol_tx_queues_display(struct ol_txrx_pdev_t *pdev)
|
|||
#define ol_tx_queue_decs_reinit(peer, peer_id) /* no-op */
|
||||
|
||||
#ifdef QCA_SUPPORT_TX_THROTTLE
|
||||
void ol_tx_throttle_set_level(void *ppdev, int level);
|
||||
void ol_tx_throttle_init_period(void *ppdev, int period,
|
||||
void ol_tx_throttle_set_level(struct cdp_pdev *ppdev, int level);
|
||||
void ol_tx_throttle_init_period(struct cdp_pdev *ppdev, int period,
|
||||
uint8_t *dutycycle_level);
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright (c) 2012-2016 The Linux Foundation. All rights reserved.
|
||||
* Copyright (c) 2012-2017 The Linux Foundation. All rights reserved.
|
||||
*
|
||||
* Previously licensed under the ISC license by Qualcomm Atheros, Inc.
|
||||
*
|
||||
|
|
@ -39,7 +39,7 @@
|
|||
#include <ol_txrx.h>
|
||||
#include <qdf_types.h>
|
||||
#include <qdf_mem.h> /* qdf_os_mem_alloc_consistent et al */
|
||||
|
||||
#include <cdp_txrx_handle.h>
|
||||
#if defined(CONFIG_HL_SUPPORT)
|
||||
|
||||
#if defined(DEBUG_HL_LOGGING)
|
||||
|
|
@ -438,7 +438,7 @@ ol_tx_sched_init_rr(
|
|||
}
|
||||
|
||||
void
|
||||
ol_txrx_set_wmm_param(void *data_pdev,
|
||||
ol_txrx_set_wmm_param(struct cdp_pdev *data_pdev,
|
||||
struct ol_tx_wmm_param_t wmm_param)
|
||||
{
|
||||
QDF_TRACE(QDF_MODULE_ID_TXRX, QDF_TRACE_LEVEL_INFO_LOW,
|
||||
|
|
@ -1057,10 +1057,10 @@ ol_tx_sched_init_wrr_adv(
|
|||
* settings of the scheduler, ie. VO, VI, BE, or BK.
|
||||
*/
|
||||
void
|
||||
ol_txrx_set_wmm_param(void *data_pdev,
|
||||
ol_txrx_set_wmm_param(struct cdp_pdev *pdev,
|
||||
struct ol_tx_wmm_param_t wmm_param)
|
||||
{
|
||||
ol_txrx_pdev_handle data_pdev = pdata_pdev;
|
||||
struct ol_txrx_pdev_t *data_pdev = (struct ol_txrx_pdev_t *)pdev;
|
||||
struct ol_tx_sched_wrr_adv_t def_cfg;
|
||||
struct ol_tx_sched_wrr_adv_t *scheduler =
|
||||
data_pdev->tx_sched.scheduler;
|
||||
|
|
|
|||
|
|
@ -62,6 +62,7 @@
|
|||
#include <ol_tx_queue.h>
|
||||
#include <ol_txrx.h>
|
||||
#include <pktlog_ac_fmt.h>
|
||||
#include <cdp_txrx_handle.h>
|
||||
|
||||
#ifdef TX_CREDIT_RECLAIM_SUPPORT
|
||||
|
||||
|
|
@ -117,9 +118,9 @@ ol_tx_target_credit_incr_int(struct ol_txrx_pdev_t *pdev, int delta)
|
|||
#endif
|
||||
|
||||
#if defined(QCA_LL_LEGACY_TX_FLOW_CONTROL)
|
||||
void ol_txrx_flow_control_cb(void *pvdev, bool tx_resume)
|
||||
void ol_txrx_flow_control_cb(struct cdp_vdev *pvdev, bool tx_resume)
|
||||
{
|
||||
struct ol_txrx_vdev_t *vdev = pvdev;
|
||||
struct ol_txrx_vdev_t *vdev = (struct ol_txrx_vdev_t *)pvdev;
|
||||
qdf_spin_lock_bh(&vdev->flow_control_lock);
|
||||
if ((vdev->osif_flow_control_cb) && (vdev->osif_fc_ctx))
|
||||
vdev->osif_flow_control_cb(vdev->osif_fc_ctx, tx_resume);
|
||||
|
|
@ -145,7 +146,8 @@ static void ol_tx_flow_ct_unpause_os_q(ol_txrx_pdev_handle pdev)
|
|||
if (pdev->tx_desc.num_free > vdev->tx_fl_hwm) {
|
||||
qdf_atomic_set(&vdev->os_q_paused, 0);
|
||||
qdf_spin_unlock(&pdev->tx_mutex);
|
||||
ol_txrx_flow_control_cb(vdev, true);
|
||||
ol_txrx_flow_control_cb((struct cdp_vdev *)vdev,
|
||||
true);
|
||||
} else {
|
||||
qdf_spin_unlock(&pdev->tx_mutex);
|
||||
}
|
||||
|
|
@ -910,9 +912,9 @@ ol_tx_inspect_handler(ol_txrx_pdev_handle pdev,
|
|||
* @details
|
||||
* @param interval - interval for stats computation
|
||||
*/
|
||||
void ol_tx_set_compute_interval(void *ppdev, uint32_t interval)
|
||||
void ol_tx_set_compute_interval(struct cdp_pdev *ppdev, uint32_t interval)
|
||||
{
|
||||
ol_txrx_pdev_handle pdev = ppdev;
|
||||
struct ol_txrx_pdev_t *pdev = (struct ol_txrx_pdev_t *)ppdev;
|
||||
pdev->tx_delay.avg_period_ticks = qdf_system_msecs_to_ticks(interval);
|
||||
}
|
||||
|
||||
|
|
@ -930,11 +932,11 @@ void ol_tx_set_compute_interval(void *ppdev, uint32_t interval)
|
|||
* @param out_packet_loss_count - number of packets lost
|
||||
*/
|
||||
void
|
||||
ol_tx_packet_count(void *ppdev,
|
||||
ol_tx_packet_count(struct cdp_pdev *ppdev,
|
||||
uint16_t *out_packet_count,
|
||||
uint16_t *out_packet_loss_count, int category)
|
||||
{
|
||||
ol_txrx_pdev_handle pdev = ppdev;
|
||||
struct ol_txrx_pdev_t *pdev = (struct ol_txrx_pdev_t *)ppdev;
|
||||
*out_packet_count = pdev->packet_count[category];
|
||||
*out_packet_loss_count = pdev->packet_loss_count[category];
|
||||
pdev->packet_count[category] = 0;
|
||||
|
|
@ -959,11 +961,11 @@ static uint32_t ol_tx_delay_avg(uint64_t sum, uint32_t num)
|
|||
}
|
||||
|
||||
void
|
||||
ol_tx_delay(void *ppdev,
|
||||
ol_tx_delay(struct cdp_pdev *ppdev,
|
||||
uint32_t *queue_delay_microsec,
|
||||
uint32_t *tx_delay_microsec, int category)
|
||||
{
|
||||
ol_txrx_pdev_handle pdev = ppdev;
|
||||
struct ol_txrx_pdev_t *pdev = (struct ol_txrx_pdev_t *)ppdev;
|
||||
int index;
|
||||
uint32_t avg_delay_ticks;
|
||||
struct ol_tx_delay_data *data;
|
||||
|
|
@ -1006,10 +1008,10 @@ ol_tx_delay(void *ppdev,
|
|||
}
|
||||
|
||||
void
|
||||
ol_tx_delay_hist(void *ppdev,
|
||||
ol_tx_delay_hist(struct cdp_pdev *ppdev,
|
||||
uint16_t *report_bin_values, int category)
|
||||
{
|
||||
ol_txrx_pdev_handle pdev = ppdev;
|
||||
struct ol_txrx_pdev_t *pdev = (struct ol_txrx_pdev_t *)ppdev;
|
||||
int index, i, j;
|
||||
struct ol_tx_delay_data *data;
|
||||
|
||||
|
|
|
|||
|
|
@ -101,7 +101,7 @@ ol_tx_send_nonstd(struct ol_txrx_pdev_t *pdev,
|
|||
*
|
||||
* Return: NONE
|
||||
*/
|
||||
void ol_tx_set_compute_interval(void *ppdev, uint32_t interval);
|
||||
void ol_tx_set_compute_interval(struct cdp_pdev *ppdev, uint32_t interval);
|
||||
|
||||
/**
|
||||
* ol_tx_packet_count() - Return the uplink (transmitted) packet counts
|
||||
|
|
@ -119,7 +119,7 @@ void ol_tx_set_compute_interval(void *ppdev, uint32_t interval);
|
|||
* Return: NONE
|
||||
*/
|
||||
void
|
||||
ol_tx_packet_count(void *ppdev,
|
||||
ol_tx_packet_count(struct cdp_pdev *ppdev,
|
||||
uint16_t *out_packet_count,
|
||||
uint16_t *out_packet_loss_count, int category);
|
||||
|
||||
|
|
@ -133,7 +133,7 @@ ol_tx_packet_count(void *ppdev,
|
|||
* Return: NONE
|
||||
*/
|
||||
void
|
||||
ol_tx_delay(void *ppdev,
|
||||
ol_tx_delay(struct cdp_pdev *ppdev,
|
||||
uint32_t *queue_delay_microsec,
|
||||
uint32_t *tx_delay_microsec, int category);
|
||||
|
||||
|
|
@ -146,7 +146,7 @@ ol_tx_delay(void *ppdev,
|
|||
* Return: NONE
|
||||
*/
|
||||
void
|
||||
ol_tx_delay_hist(void *ppdev,
|
||||
ol_tx_delay_hist(struct cdp_pdev *ppdev,
|
||||
uint16_t *report_bin_values, int category);
|
||||
#endif /* QCA_COMPUTE_TX_DELAY */
|
||||
|
||||
|
|
@ -157,6 +157,6 @@ ol_tx_delay_hist(void *ppdev,
|
|||
*
|
||||
* Return: none
|
||||
*/
|
||||
void ol_txrx_flow_control_cb(void *vdev, bool tx_resume);
|
||||
void ol_txrx_flow_control_cb(struct cdp_vdev *vdev, bool tx_resume);
|
||||
|
||||
#endif /* _OL_TX_SEND__H_ */
|
||||
|
|
|
|||
|
|
@ -85,20 +85,21 @@
|
|||
#include <cds_concurrency.h>
|
||||
#include "epping_main.h"
|
||||
#include <a_types.h>
|
||||
|
||||
#include <cdp_txrx_handle.h>
|
||||
#ifdef QCA_SUPPORT_TXRX_LOCAL_PEER_ID
|
||||
ol_txrx_peer_handle
|
||||
ol_txrx_peer_find_by_local_id(struct ol_txrx_pdev_t *pdev,
|
||||
ol_txrx_peer_find_by_local_id(struct cdp_pdev *pdev,
|
||||
uint8_t local_peer_id);
|
||||
|
||||
#endif /* QCA_SUPPORT_TXRX_LOCAL_PEER_ID */
|
||||
QDF_STATUS ol_txrx_peer_state_update(struct ol_txrx_pdev_t *pdev,
|
||||
QDF_STATUS ol_txrx_peer_state_update(struct cdp_pdev *pdev,
|
||||
uint8_t *peer_mac,
|
||||
enum ol_txrx_peer_state state);
|
||||
static void ol_vdev_rx_set_intrabss_fwd(void *vdev, bool val);
|
||||
int ol_txrx_get_tx_pending(void *pdev_handle);
|
||||
static void ol_vdev_rx_set_intrabss_fwd(struct cdp_vdev *vdev,
|
||||
bool val);
|
||||
int ol_txrx_get_tx_pending(struct cdp_pdev *pdev_handle);
|
||||
extern void
|
||||
ol_txrx_set_wmm_param(void *data_pdev,
|
||||
ol_txrx_set_wmm_param(struct cdp_pdev *data_pdev,
|
||||
struct ol_tx_wmm_param_t wmm_param);
|
||||
|
||||
extern void ol_txrx_get_pn_info(void *ppeer, uint8_t **last_pn_valid,
|
||||
|
|
@ -114,9 +115,9 @@ extern void ol_txrx_get_pn_info(void *ppeer, uint8_t **last_pn_valid,
|
|||
* Return: None
|
||||
*/
|
||||
static void
|
||||
ol_txrx_copy_mac_addr_raw(void *pvdev, uint8_t *bss_addr)
|
||||
ol_txrx_copy_mac_addr_raw(struct cdp_vdev *pvdev, uint8_t *bss_addr)
|
||||
{
|
||||
ol_txrx_vdev_handle vdev = pvdev;
|
||||
struct ol_txrx_vdev_t *vdev = (struct ol_txrx_vdev_t *)pvdev;
|
||||
if (bss_addr && vdev->last_real_peer &&
|
||||
!qdf_mem_cmp((u8 *)bss_addr,
|
||||
vdev->last_real_peer->mac_addr.raw,
|
||||
|
|
@ -135,14 +136,16 @@ ol_txrx_copy_mac_addr_raw(void *pvdev, uint8_t *bss_addr)
|
|||
* Return: None
|
||||
*/
|
||||
static void
|
||||
ol_txrx_add_last_real_peer(void *ppdev, void *pvdev, uint8_t *peer_id)
|
||||
ol_txrx_add_last_real_peer(struct cdp_pdev *ppdev,
|
||||
struct cdp_vdev *pvdev, uint8_t *peer_id)
|
||||
{
|
||||
ol_txrx_pdev_handle pdev = ppdev;
|
||||
ol_txrx_vdev_handle vdev = pvdev;
|
||||
struct ol_txrx_pdev_t *pdev = (struct ol_txrx_pdev_t *)ppdev;
|
||||
struct ol_txrx_vdev_t *vdev = (struct ol_txrx_vdev_t *)pvdev;
|
||||
ol_txrx_peer_handle peer;
|
||||
if (vdev->last_real_peer == NULL) {
|
||||
peer = NULL;
|
||||
peer = ol_txrx_find_peer_by_addr(pdev,
|
||||
peer = ol_txrx_find_peer_by_addr(
|
||||
(struct cdp_pdev *)pdev,
|
||||
vdev->hl_tdls_ap_mac_addr.raw,
|
||||
peer_id);
|
||||
if (peer && (peer->peer_ids[0] !=
|
||||
|
|
@ -176,16 +179,16 @@ is_vdev_restore_last_peer(void *ppeer)
|
|||
* Return: None
|
||||
*/
|
||||
static void
|
||||
ol_txrx_update_last_real_peer(void *ppdev, void *ppeer,
|
||||
ol_txrx_update_last_real_peer(struct cdp_pdev *ppdev, void *ppeer,
|
||||
uint8_t *peer_id, bool restore_last_peer)
|
||||
{
|
||||
ol_txrx_pdev_handle pdev = ppdev;
|
||||
struct ol_txrx_pdev_t *pdev = (struct ol_txrx_pdev_t *)ppdev;
|
||||
struct ol_txrx_peer_t *peer = ppeer;
|
||||
struct ol_txrx_vdev_t *vdev;
|
||||
vdev = peer->vdev;
|
||||
if (restore_last_peer && (vdev->last_real_peer == NULL)) {
|
||||
peer = NULL;
|
||||
peer = ol_txrx_find_peer_by_addr(pdev,
|
||||
peer = ol_txrx_find_peer_by_addr((struct cdp_pdev *)pdev,
|
||||
vdev->hl_tdls_ap_mac_addr.raw, peer_id);
|
||||
if (peer && (peer->peer_ids[0] != HTT_INVALID_PEER_ID))
|
||||
vdev->last_real_peer = peer;
|
||||
|
|
@ -214,7 +217,7 @@ static void ol_tx_mark_first_wakeup_packet(uint8_t value)
|
|||
}
|
||||
|
||||
u_int16_t
|
||||
ol_tx_desc_pool_size_hl(ol_pdev_handle ctrl_pdev)
|
||||
ol_tx_desc_pool_size_hl(struct cdp_cfg *ctrl_pdev)
|
||||
{
|
||||
u_int16_t desc_pool_size;
|
||||
u_int16_t steady_state_tx_lifetime_ms;
|
||||
|
|
@ -291,11 +294,11 @@ uint8_t ol_tx_get_is_mgmt_over_wmi_enabled(void)
|
|||
|
||||
#ifdef QCA_SUPPORT_TXRX_LOCAL_PEER_ID
|
||||
static void *
|
||||
ol_txrx_find_peer_by_addr_and_vdev(void *ppdev, void *pvdev,
|
||||
uint8_t *peer_addr, uint8_t *peer_id)
|
||||
ol_txrx_find_peer_by_addr_and_vdev(struct cdp_pdev *ppdev,
|
||||
struct cdp_vdev *pvdev, uint8_t *peer_addr, uint8_t *peer_id)
|
||||
{
|
||||
ol_txrx_pdev_handle pdev = ppdev;
|
||||
ol_txrx_vdev_handle vdev = pvdev;
|
||||
struct ol_txrx_pdev_t *pdev = (struct ol_txrx_pdev_t *)ppdev;
|
||||
struct ol_txrx_vdev_t *vdev = (struct ol_txrx_vdev_t *)pvdev;
|
||||
struct ol_txrx_peer_t *peer;
|
||||
|
||||
peer = ol_txrx_peer_vdev_find_hash(pdev, vdev, peer_addr, 0, 1);
|
||||
|
|
@ -322,7 +325,7 @@ static QDF_STATUS ol_txrx_get_vdevid(void *ppeer, uint8_t *vdev_id)
|
|||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
static void *ol_txrx_get_vdev_by_sta_id(uint8_t sta_id)
|
||||
static struct cdp_vdev *ol_txrx_get_vdev_by_sta_id(uint8_t sta_id)
|
||||
{
|
||||
struct ol_txrx_peer_t *peer = NULL;
|
||||
ol_txrx_pdev_handle pdev = NULL;
|
||||
|
|
@ -340,21 +343,22 @@ static void *ol_txrx_get_vdev_by_sta_id(uint8_t sta_id)
|
|||
return NULL;
|
||||
}
|
||||
|
||||
peer = ol_txrx_peer_find_by_local_id(pdev, sta_id);
|
||||
peer = ol_txrx_peer_find_by_local_id((struct cdp_pdev *)pdev, sta_id);
|
||||
if (!peer) {
|
||||
QDF_TRACE(QDF_MODULE_ID_TXRX, QDF_TRACE_LEVEL_ERROR,
|
||||
"PEER [%d] not found", sta_id);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
return peer->vdev;
|
||||
return (struct cdp_vdev *)peer->vdev;
|
||||
}
|
||||
|
||||
void *ol_txrx_find_peer_by_addr(ol_txrx_pdev_handle pdev,
|
||||
void *ol_txrx_find_peer_by_addr(struct cdp_pdev *ppdev,
|
||||
uint8_t *peer_addr,
|
||||
uint8_t *peer_id)
|
||||
{
|
||||
struct ol_txrx_peer_t *peer;
|
||||
struct ol_txrx_pdev_t *pdev = (struct ol_txrx_pdev_t *)ppdev;
|
||||
|
||||
peer = ol_txrx_peer_find_hash_find(pdev, peer_addr, 0, 1);
|
||||
if (!peer)
|
||||
|
|
@ -387,10 +391,11 @@ static uint16_t ol_txrx_local_peer_id(void *ppeer)
|
|||
* @return handle to the txrx peer object
|
||||
*/
|
||||
ol_txrx_peer_handle
|
||||
ol_txrx_peer_find_by_local_id(struct ol_txrx_pdev_t *pdev,
|
||||
ol_txrx_peer_find_by_local_id(struct cdp_pdev *ppdev,
|
||||
uint8_t local_peer_id)
|
||||
{
|
||||
struct ol_txrx_peer_t *peer;
|
||||
struct ol_txrx_pdev_t *pdev = (struct ol_txrx_pdev_t *)ppdev;
|
||||
if ((local_peer_id == OL_TXRX_INVALID_LOCAL_PEER_ID) ||
|
||||
(local_peer_id >= OL_TXRX_NUM_LOCAL_PEER_IDS)) {
|
||||
return NULL;
|
||||
|
|
@ -850,9 +855,9 @@ ol_txrx_pdev_grp_stat_destroy(struct ol_txrx_pdev_t *pdev)
|
|||
* Return: None
|
||||
*/
|
||||
void
|
||||
ol_txrx_hl_tdls_flag_reset(void *pvdev, bool flag)
|
||||
ol_txrx_hl_tdls_flag_reset(struct cdp_vdev *pvdev, bool flag)
|
||||
{
|
||||
struct ol_txrx_vdev_t *vdev = pvdev;
|
||||
struct ol_txrx_vdev_t *vdev = (struct ol_txrx_vdev_t *)pvdev;
|
||||
vdev->hlTdlsFlag = flag;
|
||||
}
|
||||
#endif
|
||||
|
|
@ -1098,11 +1103,10 @@ static void ol_txrx_tso_stats_deinit(ol_txrx_pdev_handle pdev)
|
|||
* Return: txrx pdev handle
|
||||
* NULL for failure
|
||||
*/
|
||||
static void *
|
||||
ol_txrx_pdev_attach(ol_txrx_soc_handle soc, void *pctrl_pdev,
|
||||
static struct cdp_pdev *
|
||||
ol_txrx_pdev_attach(ol_txrx_soc_handle soc, struct cdp_cfg *ctrl_pdev,
|
||||
HTC_HANDLE htc_pdev, qdf_device_t osdev, uint8_t pdev_id)
|
||||
{
|
||||
ol_pdev_handle ctrl_pdev = pctrl_pdev;
|
||||
struct ol_txrx_pdev_t *pdev;
|
||||
int i;
|
||||
|
||||
|
|
@ -1150,7 +1154,7 @@ ol_txrx_pdev_attach(ol_txrx_soc_handle soc, void *pctrl_pdev,
|
|||
|
||||
htt_register_rx_pkt_dump_callback(pdev->htt_pdev,
|
||||
ol_rx_pkt_dump_call);
|
||||
return pdev;
|
||||
return (struct cdp_pdev *)pdev;
|
||||
|
||||
fail3:
|
||||
ol_txrx_peer_find_detach(pdev);
|
||||
|
|
@ -1175,9 +1179,9 @@ fail0:
|
|||
*
|
||||
* Return: void
|
||||
*/
|
||||
void htt_pkt_log_init(void *ppdev, void *scn)
|
||||
void htt_pkt_log_init(struct cdp_pdev *ppdev, void *scn)
|
||||
{
|
||||
struct ol_txrx_pdev_t *handle = ppdev;
|
||||
struct ol_txrx_pdev_t *handle = (struct ol_txrx_pdev_t *)ppdev;
|
||||
if (handle->pkt_log_init)
|
||||
return;
|
||||
|
||||
|
|
@ -1207,8 +1211,9 @@ static void htt_pktlogmod_exit(struct ol_txrx_pdev_t *handle)
|
|||
handle->pkt_log_init = false;
|
||||
}
|
||||
}
|
||||
|
||||
#else
|
||||
void htt_pkt_log_init(void *handle, void *ol_sc) { }
|
||||
void htt_pkt_log_init(struct cdp_pdev *pdev_handle, void *ol_sc) { }
|
||||
static void htt_pktlogmod_exit(ol_txrx_pdev_handle handle) { }
|
||||
#endif
|
||||
|
||||
|
|
@ -1219,9 +1224,9 @@ static void htt_pktlogmod_exit(ol_txrx_pdev_handle handle) { }
|
|||
* Return: 0 for success
|
||||
*/
|
||||
int
|
||||
ol_txrx_pdev_post_attach(void *ppdev)
|
||||
ol_txrx_pdev_post_attach(struct cdp_pdev *ppdev)
|
||||
{
|
||||
ol_txrx_pdev_handle pdev = ppdev;
|
||||
struct ol_txrx_pdev_t *pdev = (struct ol_txrx_pdev_t *)ppdev;
|
||||
uint16_t i;
|
||||
uint16_t fail_idx = 0;
|
||||
int ret = 0;
|
||||
|
|
@ -1702,9 +1707,9 @@ ol_attach_fail:
|
|||
*
|
||||
* Return: 0 - success 1 - failure
|
||||
*/
|
||||
static A_STATUS ol_txrx_pdev_attach_target(void *ppdev)
|
||||
static A_STATUS ol_txrx_pdev_attach_target(struct cdp_pdev *ppdev)
|
||||
{
|
||||
ol_txrx_pdev_handle pdev = ppdev;
|
||||
struct ol_txrx_pdev_t *pdev = (struct ol_txrx_pdev_t *)ppdev;
|
||||
return htt_attach_target(pdev->htt_pdev) == A_OK ? 0:1;
|
||||
}
|
||||
|
||||
|
|
@ -1722,9 +1727,9 @@ static A_STATUS ol_txrx_pdev_attach_target(void *ppdev)
|
|||
* (ol_txrx_vdev_detach) before the physical device itself is deleted.
|
||||
*
|
||||
*/
|
||||
static void ol_txrx_pdev_detach(void *ppdev, int force)
|
||||
static void ol_txrx_pdev_detach(struct cdp_pdev *ppdev, int force)
|
||||
{
|
||||
ol_txrx_pdev_handle pdev = ppdev;
|
||||
struct ol_txrx_pdev_t *pdev = (struct ol_txrx_pdev_t *)ppdev;
|
||||
int i;
|
||||
|
||||
/*checking to ensure txrx pdev structure is not NULL */
|
||||
|
|
@ -1888,12 +1893,12 @@ ol_txrx_vdev_tx_desc_cnt_init(struct ol_txrx_vdev_t *vdev)
|
|||
*
|
||||
* Return: success: handle to new data vdev object, failure: NULL
|
||||
*/
|
||||
static void *
|
||||
ol_txrx_vdev_attach(void *ppdev,
|
||||
static struct cdp_vdev *
|
||||
ol_txrx_vdev_attach(struct cdp_pdev *ppdev,
|
||||
uint8_t *vdev_mac_addr,
|
||||
uint8_t vdev_id, enum wlan_op_mode op_mode)
|
||||
{
|
||||
ol_txrx_pdev_handle pdev = ppdev;
|
||||
struct ol_txrx_pdev_t *pdev = (struct ol_txrx_pdev_t *)ppdev;
|
||||
struct ol_txrx_vdev_t *vdev;
|
||||
QDF_STATUS qdf_status;
|
||||
|
||||
|
|
@ -1925,7 +1930,7 @@ ol_txrx_vdev_attach(void *ppdev,
|
|||
TAILQ_INIT(&vdev->peer_list);
|
||||
vdev->last_real_peer = NULL;
|
||||
|
||||
ol_txrx_hl_tdls_flag_reset(vdev, false);
|
||||
ol_txrx_hl_tdls_flag_reset((struct cdp_vdev *)vdev, false);
|
||||
|
||||
#ifdef QCA_IBSS_SUPPORT
|
||||
vdev->ibss_peer_num = 0;
|
||||
|
|
@ -1972,7 +1977,7 @@ ol_txrx_vdev_attach(void *ppdev,
|
|||
*/
|
||||
htt_vdev_attach(pdev->htt_pdev, vdev_id, op_mode);
|
||||
|
||||
return (void *)vdev;
|
||||
return (struct cdp_vdev *)vdev;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -1994,11 +1999,11 @@ ol_txrx_vdev_attach(void *ppdev,
|
|||
* vdev objects, so the data SW can use the OS shim vdev handle
|
||||
* when passing rx data received by a vdev up to the OS shim.
|
||||
*/
|
||||
static void ol_txrx_vdev_register(void *pvdev,
|
||||
void *osif_vdev,
|
||||
struct ol_txrx_ops *txrx_ops)
|
||||
static void ol_txrx_vdev_register(struct cdp_vdev *pvdev,
|
||||
void *osif_vdev,
|
||||
struct ol_txrx_ops *txrx_ops)
|
||||
{
|
||||
ol_txrx_vdev_handle vdev = pvdev;
|
||||
struct ol_txrx_vdev_t *vdev = (struct ol_txrx_vdev_t *)pvdev;
|
||||
if (qdf_unlikely(!vdev) || qdf_unlikely(!txrx_ops)) {
|
||||
qdf_print("%s: vdev/txrx_ops is NULL!\n", __func__);
|
||||
qdf_assert(0);
|
||||
|
|
@ -2080,10 +2085,10 @@ void ol_txrx_set_drop_unenc(ol_txrx_vdev_handle vdev, uint32_t val)
|
|||
* deletions have completed.
|
||||
*/
|
||||
static void
|
||||
ol_txrx_vdev_detach(void *pvdev,
|
||||
ol_txrx_vdev_detach(struct cdp_vdev *pvdev,
|
||||
ol_txrx_vdev_delete_cb callback, void *context)
|
||||
{
|
||||
ol_txrx_vdev_handle vdev = pvdev;
|
||||
struct ol_txrx_vdev_t *vdev = (struct ol_txrx_vdev_t *)pvdev;
|
||||
struct ol_txrx_pdev_t *pdev = vdev->pdev;
|
||||
|
||||
/* preconditions */
|
||||
|
|
@ -2221,7 +2226,8 @@ void ol_txrx_flush_cache_rx_queue(void)
|
|||
return;
|
||||
|
||||
for (sta_id = 0; sta_id < WLAN_MAX_STA_COUNT; sta_id++) {
|
||||
peer = ol_txrx_peer_find_by_local_id(pdev, sta_id);
|
||||
peer = ol_txrx_peer_find_by_local_id((struct cdp_pdev *)pdev,
|
||||
sta_id);
|
||||
if (!peer)
|
||||
continue;
|
||||
ol_txrx_flush_rx_frames(peer, 1);
|
||||
|
|
@ -2252,9 +2258,9 @@ void ol_txrx_flush_cache_rx_queue(void)
|
|||
* fails
|
||||
*/
|
||||
static void *
|
||||
ol_txrx_peer_attach(void *pvdev, uint8_t *peer_mac_addr)
|
||||
ol_txrx_peer_attach(struct cdp_vdev *pvdev, uint8_t *peer_mac_addr)
|
||||
{
|
||||
ol_txrx_vdev_handle vdev = pvdev;
|
||||
struct ol_txrx_vdev_t *vdev = (struct ol_txrx_vdev_t *)pvdev;
|
||||
struct ol_txrx_peer_t *peer;
|
||||
struct ol_txrx_peer_t *temp_peer;
|
||||
uint8_t i;
|
||||
|
|
@ -2383,7 +2389,7 @@ ol_txrx_peer_attach(void *pvdev, uint8_t *peer_mac_addr)
|
|||
* progress to "auth" state once the authentication completes.
|
||||
*/
|
||||
peer->state = OL_TXRX_PEER_STATE_INVALID;
|
||||
ol_txrx_peer_state_update(pdev, peer->mac_addr.raw,
|
||||
ol_txrx_peer_state_update((struct cdp_pdev *)pdev, peer->mac_addr.raw,
|
||||
OL_TXRX_PEER_STATE_DISC);
|
||||
|
||||
#ifdef QCA_SUPPORT_PEER_DATA_RX_RSSI
|
||||
|
|
@ -2396,7 +2402,7 @@ ol_txrx_peer_attach(void *pvdev, uint8_t *peer_mac_addr)
|
|||
* No Tx in monitor mode, otherwise results in target assert.
|
||||
* Setting disable_intrabss_fwd to true
|
||||
*/
|
||||
ol_vdev_rx_set_intrabss_fwd(vdev, true);
|
||||
ol_vdev_rx_set_intrabss_fwd((struct cdp_vdev *)vdev, true);
|
||||
}
|
||||
|
||||
ol_txrx_local_peer_id_alloc(pdev, peer);
|
||||
|
|
@ -2476,9 +2482,9 @@ ol_txrx_get_pn_info(void *ppeer, uint8_t **last_pn_valid,
|
|||
*
|
||||
* Return: operation mode.
|
||||
*/
|
||||
static int ol_txrx_get_opmode(void *pvdev)
|
||||
static int ol_txrx_get_opmode(struct cdp_vdev *pvdev)
|
||||
{
|
||||
ol_txrx_vdev_handle vdev = pvdev;
|
||||
struct ol_txrx_vdev_t *vdev = (struct ol_txrx_vdev_t *)pvdev;
|
||||
return vdev->opmode;
|
||||
}
|
||||
|
||||
|
|
@ -2500,10 +2506,10 @@ static int ol_txrx_get_peer_state(void *ppeer)
|
|||
*
|
||||
* Return: vdev handle from peer
|
||||
*/
|
||||
static void *ol_txrx_get_vdev_for_peer(void *ppeer)
|
||||
static struct cdp_vdev *ol_txrx_get_vdev_for_peer(void *ppeer)
|
||||
{
|
||||
ol_txrx_peer_handle peer = ppeer;
|
||||
return (void *)peer->vdev;
|
||||
return (struct cdp_vdev *)peer->vdev;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -2513,9 +2519,9 @@ static void *ol_txrx_get_vdev_for_peer(void *ppeer)
|
|||
* Return: vdev mac address
|
||||
*/
|
||||
static uint8_t *
|
||||
ol_txrx_get_vdev_mac_addr(void *pvdev)
|
||||
ol_txrx_get_vdev_mac_addr(struct cdp_vdev *pvdev)
|
||||
{
|
||||
ol_txrx_vdev_handle vdev = pvdev;
|
||||
struct ol_txrx_vdev_t *vdev = (struct ol_txrx_vdev_t *)pvdev;
|
||||
if (!vdev)
|
||||
return NULL;
|
||||
|
||||
|
|
@ -2556,11 +2562,11 @@ ol_txrx_pdev_handle ol_txrx_get_pdev_from_vdev(ol_txrx_vdev_handle vdev)
|
|||
*
|
||||
* Return: Handle to control pdev
|
||||
*/
|
||||
static void *
|
||||
ol_txrx_get_ctrl_pdev_from_vdev(void *pvdev)
|
||||
static struct cdp_cfg *
|
||||
ol_txrx_get_ctrl_pdev_from_vdev(struct cdp_vdev *pvdev)
|
||||
{
|
||||
ol_txrx_vdev_handle vdev = pvdev;
|
||||
return (void *)vdev->pdev->ctrl_pdev;
|
||||
struct ol_txrx_vdev_t *vdev = (struct ol_txrx_vdev_t *)pvdev;
|
||||
return vdev->pdev->ctrl_pdev;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -2570,9 +2576,9 @@ ol_txrx_get_ctrl_pdev_from_vdev(void *pvdev)
|
|||
* Return: Rx Fwd disabled status
|
||||
*/
|
||||
static uint8_t
|
||||
ol_txrx_is_rx_fwd_disabled(void *pvdev)
|
||||
ol_txrx_is_rx_fwd_disabled(struct cdp_vdev *pvdev)
|
||||
{
|
||||
ol_txrx_vdev_handle vdev = pvdev;
|
||||
struct ol_txrx_vdev_t *vdev = (struct ol_txrx_vdev_t *)pvdev;
|
||||
struct txrx_pdev_cfg_t *cfg = (struct txrx_pdev_cfg_t *)
|
||||
vdev->pdev->ctrl_pdev;
|
||||
return cfg->rx_fwd_disabled;
|
||||
|
|
@ -2587,10 +2593,10 @@ ol_txrx_is_rx_fwd_disabled(void *pvdev)
|
|||
* Return: -1 for failure or total peer nums after adjustment.
|
||||
*/
|
||||
static int16_t
|
||||
ol_txrx_update_ibss_add_peer_num_of_vdev(void *pvdev,
|
||||
ol_txrx_update_ibss_add_peer_num_of_vdev(struct cdp_vdev *pvdev,
|
||||
int16_t peer_num_delta)
|
||||
{
|
||||
ol_txrx_vdev_handle vdev = pvdev;
|
||||
struct ol_txrx_vdev_t *vdev = (struct ol_txrx_vdev_t *)pvdev;
|
||||
int16_t new_peer_num;
|
||||
|
||||
new_peer_num = vdev->ibss_peer_num + peer_num_delta;
|
||||
|
|
@ -2610,10 +2616,10 @@ ol_txrx_update_ibss_add_peer_num_of_vdev(void *pvdev,
|
|||
*
|
||||
* Return: Old timer value set in vdev.
|
||||
*/
|
||||
static uint16_t ol_txrx_set_ibss_vdev_heart_beat_timer(void *pvdev,
|
||||
uint16_t timer_value_sec)
|
||||
static uint16_t ol_txrx_set_ibss_vdev_heart_beat_timer(struct cdp_vdev *pvdev,
|
||||
uint16_t timer_value_sec)
|
||||
{
|
||||
ol_txrx_vdev_handle vdev = pvdev;
|
||||
struct ol_txrx_vdev_t *vdev = (struct ol_txrx_vdev_t *)pvdev;
|
||||
uint16_t old_timer_value = vdev->ibss_peer_heart_beat_timer;
|
||||
|
||||
vdev->ibss_peer_heart_beat_timer = timer_value_sec;
|
||||
|
|
@ -2632,11 +2638,11 @@ static uint16_t ol_txrx_set_ibss_vdev_heart_beat_timer(void *pvdev,
|
|||
* Return: NONE
|
||||
*/
|
||||
static void
|
||||
ol_txrx_remove_peers_for_vdev(void *pvdev,
|
||||
ol_txrx_remove_peers_for_vdev(struct cdp_vdev *pvdev,
|
||||
ol_txrx_vdev_peer_remove_cb callback,
|
||||
void *callback_context, bool remove_last_peer)
|
||||
{
|
||||
ol_txrx_vdev_handle vdev = pvdev;
|
||||
struct ol_txrx_vdev_t *vdev = (struct ol_txrx_vdev_t *)pvdev;
|
||||
ol_txrx_peer_handle peer, temp;
|
||||
/* remove all remote peers for vdev */
|
||||
qdf_spin_lock_bh(&vdev->pdev->peer_ref_mutex);
|
||||
|
|
@ -2681,11 +2687,11 @@ ol_txrx_remove_peers_for_vdev(void *pvdev,
|
|||
* Return: NONE
|
||||
*/
|
||||
static void
|
||||
ol_txrx_remove_peers_for_vdev_no_lock(void *pvdev,
|
||||
ol_txrx_remove_peers_for_vdev_no_lock(struct cdp_vdev *pvdev,
|
||||
ol_txrx_vdev_peer_remove_cb callback,
|
||||
void *callback_context)
|
||||
{
|
||||
ol_txrx_vdev_handle vdev = pvdev;
|
||||
struct ol_txrx_vdev_t *vdev = (struct ol_txrx_vdev_t *)pvdev;
|
||||
ol_txrx_peer_handle peer = NULL;
|
||||
|
||||
TAILQ_FOREACH(peer, &vdev->peer_list, peer_list_elem) {
|
||||
|
|
@ -2704,10 +2710,10 @@ ol_txrx_remove_peers_for_vdev_no_lock(void *pvdev,
|
|||
*
|
||||
* Return: NONE
|
||||
*/
|
||||
static void ol_txrx_set_ocb_chan_info(void *pvdev,
|
||||
static void ol_txrx_set_ocb_chan_info(struct cdp_vdev *pvdev,
|
||||
struct ol_txrx_ocb_set_chan ocb_set_chan)
|
||||
{
|
||||
ol_txrx_vdev_handle vdev = pvdev;
|
||||
struct ol_txrx_vdev_t *vdev = (struct ol_txrx_vdev_t *)pvdev;
|
||||
vdev->ocb_channel_info = ocb_set_chan.ocb_channel_info;
|
||||
vdev->ocb_channel_count = ocb_set_chan.ocb_channel_count;
|
||||
}
|
||||
|
|
@ -2719,9 +2725,9 @@ static void ol_txrx_set_ocb_chan_info(void *pvdev,
|
|||
* Return: handle to struct ol_txrx_ocb_chan_info
|
||||
*/
|
||||
static struct ol_txrx_ocb_chan_info *
|
||||
ol_txrx_get_ocb_chan_info(void *pvdev)
|
||||
ol_txrx_get_ocb_chan_info(struct cdp_vdev *pvdev)
|
||||
{
|
||||
ol_txrx_vdev_handle vdev = pvdev;
|
||||
struct ol_txrx_vdev_t *vdev = (struct ol_txrx_vdev_t *)pvdev;
|
||||
return vdev->ocb_channel_info;
|
||||
}
|
||||
|
||||
|
|
@ -2741,10 +2747,11 @@ ol_txrx_get_ocb_chan_info(void *pvdev)
|
|||
*
|
||||
* Return: QDF Status
|
||||
*/
|
||||
QDF_STATUS ol_txrx_peer_state_update(struct ol_txrx_pdev_t *pdev,
|
||||
QDF_STATUS ol_txrx_peer_state_update(struct cdp_pdev *ppdev,
|
||||
uint8_t *peer_mac,
|
||||
enum ol_txrx_peer_state state)
|
||||
{
|
||||
struct ol_txrx_pdev_t *pdev = (struct ol_txrx_pdev_t *)ppdev;
|
||||
struct ol_txrx_peer_t *peer;
|
||||
|
||||
if (qdf_unlikely(!pdev)) {
|
||||
|
|
@ -3118,10 +3125,10 @@ ol_txrx_clear_peer_internal(struct ol_txrx_peer_t *peer)
|
|||
*
|
||||
* Return: QDF Status
|
||||
*/
|
||||
static QDF_STATUS ol_txrx_clear_peer(void *ppdev, uint8_t sta_id)
|
||||
static QDF_STATUS ol_txrx_clear_peer(struct cdp_pdev *ppdev, uint8_t sta_id)
|
||||
{
|
||||
struct ol_txrx_peer_t *peer;
|
||||
struct ol_txrx_pdev_t *pdev = ppdev;
|
||||
struct ol_txrx_pdev_t *pdev = (struct ol_txrx_pdev_t *)ppdev;
|
||||
|
||||
if (!pdev) {
|
||||
TXRX_PRINT(TXRX_PRINT_LEVEL_ERR, "%s: Unable to find pdev!",
|
||||
|
|
@ -3135,7 +3142,7 @@ static QDF_STATUS ol_txrx_clear_peer(void *ppdev, uint8_t sta_id)
|
|||
}
|
||||
|
||||
|
||||
peer = ol_txrx_peer_find_by_local_id(pdev, sta_id);
|
||||
peer = ol_txrx_peer_find_by_local_id((struct cdp_pdev *)pdev, sta_id);
|
||||
if (!peer)
|
||||
return QDF_STATUS_E_FAULT;
|
||||
|
||||
|
|
@ -3290,7 +3297,7 @@ static void ol_txrx_dump_tx_desc(ol_txrx_pdev_handle pdev_handle)
|
|||
*/
|
||||
static QDF_STATUS ol_txrx_wait_for_pending_tx(int timeout)
|
||||
{
|
||||
ol_txrx_pdev_handle txrx_pdev = cds_get_context(QDF_MODULE_ID_TXRX);
|
||||
struct ol_txrx_pdev_t *txrx_pdev = cds_get_context(QDF_MODULE_ID_TXRX);
|
||||
|
||||
if (txrx_pdev == NULL) {
|
||||
TXRX_PRINT(TXRX_PRINT_LEVEL_ERR,
|
||||
|
|
@ -3298,7 +3305,7 @@ static QDF_STATUS ol_txrx_wait_for_pending_tx(int timeout)
|
|||
return QDF_STATUS_E_FAULT;
|
||||
}
|
||||
|
||||
while (ol_txrx_get_tx_pending(txrx_pdev)) {
|
||||
while (ol_txrx_get_tx_pending((struct cdp_pdev *)txrx_pdev)) {
|
||||
qdf_sleep(OL_ATH_TX_DRAIN_WAIT_DELAY);
|
||||
if (timeout <= 0) {
|
||||
TXRX_PRINT(TXRX_PRINT_LEVEL_ERR,
|
||||
|
|
@ -3327,11 +3334,11 @@ static QDF_STATUS ol_txrx_wait_for_pending_tx(int timeout)
|
|||
*
|
||||
* Return: QDF_STATUS
|
||||
*/
|
||||
static QDF_STATUS ol_txrx_runtime_suspend(void *ppdev)
|
||||
static QDF_STATUS ol_txrx_runtime_suspend(struct cdp_pdev *ppdev)
|
||||
{
|
||||
ol_txrx_pdev_handle txrx_pdev = ppdev;
|
||||
struct ol_txrx_pdev_t *txrx_pdev = (struct ol_txrx_pdev_t *)ppdev;
|
||||
|
||||
if (ol_txrx_get_tx_pending(txrx_pdev))
|
||||
if (ol_txrx_get_tx_pending((struct cdp_pdev *)txrx_pdev))
|
||||
return QDF_STATUS_E_BUSY;
|
||||
else
|
||||
return QDF_STATUS_SUCCESS;
|
||||
|
|
@ -3345,7 +3352,7 @@ static QDF_STATUS ol_txrx_runtime_suspend(void *ppdev)
|
|||
*
|
||||
* Return: QDF_STATUS_SUCCESS
|
||||
*/
|
||||
static QDF_STATUS ol_txrx_runtime_resume(void *ppdev)
|
||||
static QDF_STATUS ol_txrx_runtime_resume(struct cdp_pdev *ppdev)
|
||||
{
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
|
|
@ -3384,10 +3391,9 @@ static QDF_STATUS ol_txrx_bus_resume(void)
|
|||
*
|
||||
* Return: count of pending frames
|
||||
*/
|
||||
int ol_txrx_get_tx_pending(void *ppdev)
|
||||
int ol_txrx_get_tx_pending(struct cdp_pdev *ppdev)
|
||||
{
|
||||
ol_txrx_pdev_handle pdev_handle = ppdev;
|
||||
struct ol_txrx_pdev_t *pdev = (ol_txrx_pdev_handle) pdev_handle;
|
||||
struct ol_txrx_pdev_t *pdev = (struct ol_txrx_pdev_t *)ppdev;
|
||||
uint32_t total;
|
||||
|
||||
if (ol_cfg_is_high_latency(pdev->ctrl_pdev))
|
||||
|
|
@ -3465,10 +3471,10 @@ ol_txrx_fw_stats_cfg(ol_txrx_vdev_handle vdev,
|
|||
#endif
|
||||
|
||||
static A_STATUS
|
||||
ol_txrx_fw_stats_get(void *pvdev, struct ol_txrx_stats_req *req,
|
||||
ol_txrx_fw_stats_get(struct cdp_vdev *pvdev, struct ol_txrx_stats_req *req,
|
||||
bool per_vdev, bool response_expected)
|
||||
{
|
||||
ol_txrx_vdev_handle vdev = pvdev;
|
||||
struct ol_txrx_vdev_t *vdev = (struct ol_txrx_vdev_t *)pvdev;
|
||||
struct ol_txrx_pdev_t *pdev = vdev->pdev;
|
||||
uint64_t cookie;
|
||||
struct ol_txrx_stats_req_internal *non_volatile_req;
|
||||
|
|
@ -3820,7 +3826,9 @@ ol_txrx_stats(uint8_t vdev_id, char *buffer, unsigned buf_len)
|
|||
{
|
||||
uint32_t len = 0;
|
||||
|
||||
ol_txrx_vdev_handle vdev = ol_txrx_get_vdev_from_vdev_id(vdev_id);
|
||||
struct ol_txrx_vdev_t *vdev =
|
||||
(struct ol_txrx_vdev_t *)
|
||||
ol_txrx_get_vdev_from_vdev_id(vdev_id);
|
||||
if (!vdev) {
|
||||
QDF_TRACE(QDF_MODULE_ID_TXRX, QDF_TRACE_LEVEL_ERROR,
|
||||
"%s: vdev is NULL", __func__);
|
||||
|
|
@ -3969,9 +3977,9 @@ ol_txrx_peer_stats_copy(ol_txrx_pdev_handle pdev,
|
|||
}
|
||||
#endif /* QCA_ENABLE_OL_TXRX_PEER_STATS */
|
||||
|
||||
static void ol_vdev_rx_set_intrabss_fwd(void *pvdev, bool val)
|
||||
static void ol_vdev_rx_set_intrabss_fwd(struct cdp_vdev *pvdev, bool val)
|
||||
{
|
||||
ol_txrx_vdev_handle vdev = pvdev;
|
||||
struct ol_txrx_vdev_t *vdev = (struct ol_txrx_vdev_t *)pvdev;
|
||||
if (NULL == vdev)
|
||||
return;
|
||||
|
||||
|
|
@ -3987,7 +3995,9 @@ static void ol_vdev_rx_set_intrabss_fwd(void *pvdev, bool val)
|
|||
*/
|
||||
static void ol_txrx_update_mac_id(uint8_t vdev_id, uint8_t mac_id)
|
||||
{
|
||||
ol_txrx_vdev_handle vdev = ol_txrx_get_vdev_from_vdev_id(vdev_id);
|
||||
struct ol_txrx_vdev_t *vdev =
|
||||
(struct ol_txrx_vdev_t *)
|
||||
ol_txrx_get_vdev_from_vdev_id(vdev_id);
|
||||
|
||||
if (NULL == vdev) {
|
||||
QDF_TRACE(QDF_MODULE_ID_TXRX, QDF_TRACE_LEVEL_ERROR,
|
||||
|
|
@ -4024,7 +4034,7 @@ static ol_txrx_vdev_handle ol_txrx_get_vdev_from_sta_id(uint8_t sta_id)
|
|||
return NULL;
|
||||
}
|
||||
|
||||
peer = ol_txrx_peer_find_by_local_id(pdev, sta_id);
|
||||
peer = ol_txrx_peer_find_by_local_id((struct cdp_pdev *)pdev, sta_id);
|
||||
|
||||
if (!peer) {
|
||||
QDF_TRACE(QDF_MODULE_ID_TXRX, QDF_TRACE_LEVEL_ERROR,
|
||||
|
|
@ -4047,7 +4057,8 @@ static int ol_txrx_register_tx_flow_control(uint8_t vdev_id,
|
|||
ol_txrx_tx_flow_control_fp flowControl,
|
||||
void *osif_fc_ctx)
|
||||
{
|
||||
ol_txrx_vdev_handle vdev = ol_txrx_get_vdev_from_vdev_id(vdev_id);
|
||||
struct ol_txrx_vdev_t *vdev =
|
||||
(struct ol_txrx_vdev_t *)ol_txrx_get_vdev_from_vdev_id(vdev_id);
|
||||
if (NULL == vdev) {
|
||||
QDF_TRACE(QDF_MODULE_ID_TXRX, QDF_TRACE_LEVEL_ERROR,
|
||||
"%s: Invalid vdev_id %d", __func__, vdev_id);
|
||||
|
|
@ -4069,7 +4080,8 @@ static int ol_txrx_register_tx_flow_control(uint8_t vdev_id,
|
|||
*/
|
||||
static int ol_txrx_deregister_tx_flow_control_cb(uint8_t vdev_id)
|
||||
{
|
||||
ol_txrx_vdev_handle vdev = ol_txrx_get_vdev_from_vdev_id(vdev_id);
|
||||
struct ol_txrx_vdev_t *vdev =
|
||||
(struct ol_txrx_vdev_t *)ol_txrx_get_vdev_from_vdev_id(vdev_id);
|
||||
if (NULL == vdev) {
|
||||
QDF_TRACE(QDF_MODULE_ID_TXRX, QDF_TRACE_LEVEL_ERROR,
|
||||
"%s: Invalid vdev_id", __func__);
|
||||
|
|
@ -4134,7 +4146,8 @@ ol_txrx_get_tx_resource(uint8_t sta_id,
|
|||
static int
|
||||
ol_txrx_ll_set_tx_pause_q_depth(uint8_t vdev_id, int pause_q_depth)
|
||||
{
|
||||
ol_txrx_vdev_handle vdev = ol_txrx_get_vdev_from_vdev_id(vdev_id);
|
||||
struct ol_txrx_vdev_t *vdev =
|
||||
(struct ol_txrx_vdev_t *)ol_txrx_get_vdev_from_vdev_id(vdev_id);
|
||||
if (NULL == vdev) {
|
||||
QDF_TRACE(QDF_MODULE_ID_TXRX, QDF_TRACE_LEVEL_ERROR,
|
||||
"%s: Invalid vdev_id %d", __func__, vdev_id);
|
||||
|
|
@ -4175,10 +4188,10 @@ ol_txrx_ll_set_tx_pause_q_depth(uint8_t vdev_id, int pause_q_depth)
|
|||
* Return: none
|
||||
*/
|
||||
static void
|
||||
ol_txrx_ipa_uc_get_resource(void *ppdev,
|
||||
ol_txrx_ipa_uc_get_resource(struct cdp_pdev *ppdev,
|
||||
struct ol_txrx_ipa_resources *ipa_res)
|
||||
{
|
||||
ol_txrx_pdev_handle pdev = ppdev;
|
||||
struct ol_txrx_pdev_t *pdev = (struct ol_txrx_pdev_t *)ppdev;
|
||||
|
||||
htt_ipa_uc_get_resource(pdev->htt_pdev,
|
||||
&ipa_res->ce_sr_base_paddr,
|
||||
|
|
@ -4209,11 +4222,11 @@ ol_txrx_ipa_uc_get_resource(void *ppdev,
|
|||
* Return: none
|
||||
*/
|
||||
static void
|
||||
ol_txrx_ipa_uc_set_doorbell_paddr(void *ppdev,
|
||||
ol_txrx_ipa_uc_set_doorbell_paddr(struct cdp_pdev *ppdev,
|
||||
qdf_dma_addr_t ipa_tx_uc_doorbell_paddr,
|
||||
qdf_dma_addr_t ipa_rx_uc_doorbell_paddr)
|
||||
{
|
||||
ol_txrx_pdev_handle pdev = ppdev;
|
||||
struct ol_txrx_pdev_t *pdev = (struct ol_txrx_pdev_t *)ppdev;
|
||||
htt_ipa_uc_set_doorbell_paddr(pdev->htt_pdev,
|
||||
ipa_tx_uc_doorbell_paddr,
|
||||
ipa_rx_uc_doorbell_paddr);
|
||||
|
|
@ -4231,9 +4244,9 @@ ol_txrx_ipa_uc_set_doorbell_paddr(void *ppdev,
|
|||
* Return: none
|
||||
*/
|
||||
static void
|
||||
ol_txrx_ipa_uc_set_active(void *ppdev, bool uc_active, bool is_tx)
|
||||
ol_txrx_ipa_uc_set_active(struct cdp_pdev *ppdev, bool uc_active, bool is_tx)
|
||||
{
|
||||
ol_txrx_pdev_handle pdev = ppdev;
|
||||
struct ol_txrx_pdev_t *pdev = (struct ol_txrx_pdev_t *)ppdev;
|
||||
htt_h2t_ipa_uc_set_active(pdev->htt_pdev, uc_active, is_tx);
|
||||
}
|
||||
|
||||
|
|
@ -4244,9 +4257,9 @@ ol_txrx_ipa_uc_set_active(void *ppdev, bool uc_active, bool is_tx)
|
|||
*
|
||||
* Return: none
|
||||
*/
|
||||
static void ol_txrx_ipa_uc_op_response(void *ppdev, uint8_t *op_msg)
|
||||
static void ol_txrx_ipa_uc_op_response(struct cdp_pdev *ppdev, uint8_t *op_msg)
|
||||
{
|
||||
ol_txrx_pdev_handle pdev = ppdev;
|
||||
struct ol_txrx_pdev_t *pdev = (struct ol_txrx_pdev_t *)ppdev;
|
||||
if (pdev->ipa_uc_op_cb) {
|
||||
pdev->ipa_uc_op_cb(op_msg, pdev->osif_dev);
|
||||
} else {
|
||||
|
|
@ -4266,10 +4279,10 @@ static void ol_txrx_ipa_uc_op_response(void *ppdev, uint8_t *op_msg)
|
|||
* Return: none
|
||||
*/
|
||||
static void
|
||||
ol_txrx_ipa_uc_register_op_cb(void *ppdev,
|
||||
ipa_uc_op_cb_type op_cb, void *osif_dev)
|
||||
ol_txrx_ipa_uc_register_op_cb(struct cdp_pdev *ppdev,
|
||||
ipa_uc_op_cb_type op_cb, void *osif_dev)
|
||||
{
|
||||
ol_txrx_pdev_handle pdev = ppdev;
|
||||
struct ol_txrx_pdev_t *pdev = (struct ol_txrx_pdev_t *)ppdev;
|
||||
pdev->ipa_uc_op_cb = op_cb;
|
||||
pdev->osif_dev = osif_dev;
|
||||
}
|
||||
|
|
@ -4280,9 +4293,9 @@ ol_txrx_ipa_uc_register_op_cb(void *ppdev,
|
|||
*
|
||||
* Return: none
|
||||
*/
|
||||
static void ol_txrx_ipa_uc_get_stat(void *ppdev)
|
||||
static void ol_txrx_ipa_uc_get_stat(struct cdp_pdev *ppdev)
|
||||
{
|
||||
ol_txrx_pdev_handle pdev = ppdev;
|
||||
struct ol_txrx_pdev_t *pdev = (struct ol_txrx_pdev_t *)ppdev;
|
||||
htt_h2t_ipa_uc_get_stats(pdev->htt_pdev);
|
||||
}
|
||||
#endif /* IPA_UC_OFFLOAD */
|
||||
|
|
@ -4434,7 +4447,7 @@ static void ol_rx_data_cb(struct ol_txrx_pdev_t *pdev,
|
|||
/* Do not use peer directly. Derive peer from staid to
|
||||
* make sure that peer is valid.
|
||||
*/
|
||||
peer = ol_txrx_peer_find_by_local_id(pdev, staid);
|
||||
peer = ol_txrx_peer_find_by_local_id((struct cdp_pdev *)pdev, staid);
|
||||
if (!peer)
|
||||
goto free_buf;
|
||||
|
||||
|
|
@ -4616,7 +4629,8 @@ static QDF_STATUS ol_txrx_register_peer(struct ol_txrx_desc_type *sta_desc)
|
|||
return QDF_STATUS_E_INVAL;
|
||||
}
|
||||
|
||||
peer = ol_txrx_peer_find_by_local_id(pdev, sta_desc->sta_id);
|
||||
peer = ol_txrx_peer_find_by_local_id((struct cdp_pdev *)pdev,
|
||||
sta_desc->sta_id);
|
||||
if (!peer)
|
||||
return QDF_STATUS_E_FAULT;
|
||||
|
||||
|
|
@ -4667,7 +4681,8 @@ static QDF_STATUS ol_txrx_register_ocb_peer(void *cds_ctx, uint8_t *mac_addr,
|
|||
return QDF_STATUS_E_FAILURE;
|
||||
}
|
||||
|
||||
peer = ol_txrx_find_peer_by_addr(pdev, mac_addr, peer_id);
|
||||
peer = ol_txrx_find_peer_by_addr((struct cdp_pdev *)pdev,
|
||||
mac_addr, peer_id);
|
||||
if (!peer) {
|
||||
TXRX_PRINT(TXRX_PRINT_LEVEL_ERR, "%s: Unable to find OCB peer!",
|
||||
__func__);
|
||||
|
|
@ -4677,7 +4692,7 @@ static QDF_STATUS ol_txrx_register_ocb_peer(void *cds_ctx, uint8_t *mac_addr,
|
|||
ol_txrx_set_ocb_peer(pdev, peer);
|
||||
|
||||
/* Set peer state to connected */
|
||||
ol_txrx_peer_state_update(pdev, peer->mac_addr.raw,
|
||||
ol_txrx_peer_state_update((struct cdp_pdev *)pdev, peer->mac_addr.raw,
|
||||
OL_TXRX_PEER_STATE_AUTH);
|
||||
|
||||
return QDF_STATUS_SUCCESS;
|
||||
|
|
@ -4947,7 +4962,7 @@ bool ol_txrx_fwd_desc_thresh_check(struct ol_txrx_vdev_t *vdev)
|
|||
* Return: vdev handle
|
||||
* NULL if not found.
|
||||
*/
|
||||
void *ol_txrx_get_vdev_from_vdev_id(uint8_t vdev_id)
|
||||
struct cdp_vdev *ol_txrx_get_vdev_from_vdev_id(uint8_t vdev_id)
|
||||
{
|
||||
ol_txrx_pdev_handle pdev = cds_get_context(QDF_MODULE_ID_TXRX);
|
||||
ol_txrx_vdev_handle vdev = NULL;
|
||||
|
|
@ -4960,7 +4975,7 @@ void *ol_txrx_get_vdev_from_vdev_id(uint8_t vdev_id)
|
|||
break;
|
||||
}
|
||||
|
||||
return (void *)vdev;
|
||||
return (struct cdp_vdev *)vdev;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -4970,9 +4985,9 @@ void *ol_txrx_get_vdev_from_vdev_id(uint8_t vdev_id)
|
|||
*
|
||||
* Return: QDF STATUS
|
||||
*/
|
||||
static QDF_STATUS ol_txrx_set_wisa_mode(void *pvdev, bool enable)
|
||||
static QDF_STATUS ol_txrx_set_wisa_mode(struct cdp_vdev *pvdev, bool enable)
|
||||
{
|
||||
ol_txrx_vdev_handle vdev = pvdev;
|
||||
struct ol_txrx_vdev_t *vdev = (struct ol_txrx_vdev_t *)pvdev;
|
||||
|
||||
if (!vdev)
|
||||
return QDF_STATUS_E_INVAL;
|
||||
|
|
@ -4987,9 +5002,9 @@ static QDF_STATUS ol_txrx_set_wisa_mode(void *pvdev, bool enable)
|
|||
*
|
||||
* Return: virtual interface id
|
||||
*/
|
||||
static uint16_t ol_txrx_get_vdev_id(void *pvdev)
|
||||
static uint16_t ol_txrx_get_vdev_id(struct cdp_vdev *pvdev)
|
||||
{
|
||||
ol_txrx_vdev_handle vdev = pvdev;
|
||||
struct ol_txrx_vdev_t *vdev = (struct ol_txrx_vdev_t *)pvdev;
|
||||
return vdev->vdev_id;
|
||||
}
|
||||
|
||||
|
|
@ -5067,11 +5082,11 @@ static void ol_txrx_soc_detach(void *soc)
|
|||
*
|
||||
* Return: noe
|
||||
*/
|
||||
static void ol_txrx_pkt_log_con_service(void *ppdev, void *scn)
|
||||
static void ol_txrx_pkt_log_con_service(struct cdp_pdev *ppdev, void *scn)
|
||||
{
|
||||
ol_txrx_pdev_handle pdev = ppdev;
|
||||
struct ol_txrx_pdev_t *pdev = (struct ol_txrx_pdev_t *)ppdev;
|
||||
|
||||
htt_pkt_log_init(pdev, scn);
|
||||
htt_pkt_log_init((struct cdp_pdev *)pdev, scn);
|
||||
pktlog_htc_attach();
|
||||
}
|
||||
|
||||
|
|
@ -5095,8 +5110,9 @@ static void ol_txrx_wrapper_flush_rx_frames(void *peer, bool drop)
|
|||
*
|
||||
* Return: virtual interface instance
|
||||
*/
|
||||
static void *ol_txrx_wrapper_get_vdev_from_vdev_id(void *ppdev,
|
||||
uint8_t vdev_id)
|
||||
static
|
||||
struct cdp_vdev *ol_txrx_wrapper_get_vdev_from_vdev_id(struct cdp_pdev *ppdev,
|
||||
uint8_t vdev_id)
|
||||
{
|
||||
return ol_txrx_get_vdev_from_vdev_id(vdev_id);
|
||||
}
|
||||
|
|
@ -5108,7 +5124,7 @@ static void *ol_txrx_wrapper_get_vdev_from_vdev_id(void *ppdev,
|
|||
*
|
||||
* Return: QDF STATUS
|
||||
*/
|
||||
static QDF_STATUS ol_txrx_wrapper_register_peer(void *pdev,
|
||||
static QDF_STATUS ol_txrx_wrapper_register_peer(struct cdp_pdev *pdev,
|
||||
struct ol_txrx_desc_type *sta_desc)
|
||||
{
|
||||
return ol_txrx_register_peer(sta_desc);
|
||||
|
|
@ -5128,10 +5144,11 @@ static QDF_STATUS ol_txrx_wrapper_register_peer(void *pdev,
|
|||
* @return handle to the txrx peer object
|
||||
*/
|
||||
static void *
|
||||
ol_txrx_wrapper_peer_find_by_local_id(void *pdev, uint8_t local_peer_id)
|
||||
ol_txrx_wrapper_peer_find_by_local_id(struct cdp_pdev *pdev,
|
||||
uint8_t local_peer_id)
|
||||
{
|
||||
return (void *)ol_txrx_peer_find_by_local_id(
|
||||
(struct ol_txrx_pdev_t *)pdev, local_peer_id);
|
||||
pdev, local_peer_id);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -5141,9 +5158,9 @@ ol_txrx_wrapper_peer_find_by_local_id(void *pdev, uint8_t local_peer_id)
|
|||
* Return: 1 high latency bus
|
||||
* 0 low latency bus
|
||||
*/
|
||||
static int ol_txrx_wrapper_cfg_is_high_latency(void *pdev)
|
||||
static int ol_txrx_wrapper_cfg_is_high_latency(struct cdp_cfg *cfg_pdev)
|
||||
{
|
||||
return ol_cfg_is_high_latency((ol_pdev_handle)pdev);
|
||||
return ol_cfg_is_high_latency(cfg_pdev);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -5161,10 +5178,10 @@ static int ol_txrx_wrapper_cfg_is_high_latency(void *pdev)
|
|||
*
|
||||
* Return: QDF Status
|
||||
*/
|
||||
static QDF_STATUS ol_txrx_wrapper_peer_state_update(void *pdev,
|
||||
static QDF_STATUS ol_txrx_wrapper_peer_state_update(struct cdp_pdev *pdev,
|
||||
uint8_t *peer_mac, enum ol_txrx_peer_state state)
|
||||
{
|
||||
return ol_txrx_peer_state_update((struct ol_txrx_pdev_t *)pdev,
|
||||
return ol_txrx_peer_state_update(pdev,
|
||||
peer_mac, state);
|
||||
}
|
||||
|
||||
|
|
@ -5176,10 +5193,10 @@ static QDF_STATUS ol_txrx_wrapper_peer_state_update(void *pdev,
|
|||
*
|
||||
* Return: peer instance pointer
|
||||
*/
|
||||
static void *ol_txrx_wrapper_find_peer_by_addr(void *pdev,
|
||||
static void *ol_txrx_wrapper_find_peer_by_addr(struct cdp_pdev *pdev,
|
||||
uint8_t *peer_addr, uint8_t *peer_id)
|
||||
{
|
||||
return ol_txrx_find_peer_by_addr((ol_txrx_pdev_handle)pdev,
|
||||
return ol_txrx_find_peer_by_addr(pdev,
|
||||
peer_addr, peer_id);
|
||||
}
|
||||
|
||||
|
|
@ -5191,10 +5208,11 @@ static void *ol_txrx_wrapper_find_peer_by_addr(void *pdev,
|
|||
* Return: none
|
||||
*/
|
||||
static void
|
||||
ol_txrx_wrapper_set_flow_control_parameters(void *cfg_ctx, void *cfg_param)
|
||||
ol_txrx_wrapper_set_flow_control_parameters(struct cdp_cfg *cfg_pdev,
|
||||
void *cfg_param)
|
||||
{
|
||||
return ol_tx_set_flow_control_parameters(
|
||||
(struct txrx_pdev_cfg_t *)cfg_ctx,
|
||||
cfg_pdev,
|
||||
(struct txrx_pdev_cfg_param_t *)cfg_param);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -31,6 +31,7 @@
|
|||
#include <qdf_nbuf.h> /* qdf_nbuf_t */
|
||||
#include <cdp_txrx_cmn.h> /* ol_txrx_vdev_t, etc. */
|
||||
#include "cds_sched.h"
|
||||
#include <cdp_txrx_handle.h>
|
||||
#include <ol_txrx_types.h>
|
||||
/*
|
||||
* Pool of tx descriptors reserved for
|
||||
|
|
@ -39,7 +40,6 @@
|
|||
*/
|
||||
#define OL_TX_NON_FWD_RESERVE 100
|
||||
|
||||
|
||||
void ol_txrx_peer_unref_delete(struct ol_txrx_peer_t *peer);
|
||||
|
||||
/**
|
||||
|
|
@ -49,7 +49,7 @@ void ol_txrx_peer_unref_delete(struct ol_txrx_peer_t *peer);
|
|||
* Return: allocated pool size
|
||||
*/
|
||||
u_int16_t
|
||||
ol_tx_desc_pool_size_hl(ol_pdev_handle ctrl_pdev);
|
||||
ol_tx_desc_pool_size_hl(struct cdp_cfg *ctrl_pdev);
|
||||
|
||||
#ifndef OL_TX_AVG_FRM_BYTES
|
||||
#define OL_TX_AVG_FRM_BYTES 1000
|
||||
|
|
@ -76,18 +76,17 @@ ol_tx_desc_pool_size_hl(ol_pdev_handle ctrl_pdev);
|
|||
#if defined(CONFIG_HL_SUPPORT) && defined(FEATURE_WLAN_TDLS)
|
||||
|
||||
void
|
||||
ol_txrx_hl_tdls_flag_reset(void *vdev, bool flag);
|
||||
ol_txrx_hl_tdls_flag_reset(struct cdp_vdev *vdev, bool flag);
|
||||
#else
|
||||
|
||||
static inline void
|
||||
ol_txrx_hl_tdls_flag_reset(void *vdev, bool flag)
|
||||
ol_txrx_hl_tdls_flag_reset(struct cdp_vdev *vdev, bool flag)
|
||||
{
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
|
||||
/**
|
||||
* ol_txrx_dump_pkt() - display the data in buffer and buffer's address
|
||||
/*
|
||||
* @nbuf: buffer which contains data to be displayed
|
||||
* @nbuf_paddr: physical address of the buffer
|
||||
* @len: defines the size of the data to be displayed
|
||||
|
|
@ -118,11 +117,11 @@ ol_txrx_dump_pkt(qdf_nbuf_t nbuf, uint32_t nbuf_paddr, int len);
|
|||
*/
|
||||
bool ol_txrx_fwd_desc_thresh_check(struct ol_txrx_vdev_t *vdev);
|
||||
|
||||
void *ol_txrx_get_vdev_from_vdev_id(uint8_t vdev_id);
|
||||
struct cdp_vdev *ol_txrx_get_vdev_from_vdev_id(uint8_t vdev_id);
|
||||
|
||||
void htt_pkt_log_init(void *handle, void *scn);
|
||||
void *ol_txrx_find_peer_by_addr(ol_txrx_pdev_handle pdev,
|
||||
void *ol_txrx_find_peer_by_addr(struct cdp_pdev *pdev,
|
||||
uint8_t *peer_addr,
|
||||
uint8_t *peer_id);
|
||||
|
||||
void htt_pkt_log_init(struct cdp_pdev *pdev_handle, void *scn);
|
||||
#endif /* _OL_TXRX__H_ */
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright (c) 2015-2016 The Linux Foundation. All rights reserved.
|
||||
* Copyright (c) 2015-2017 The Linux Foundation. All rights reserved.
|
||||
*
|
||||
* Previously licensed under the ISC license by Qualcomm Atheros, Inc.
|
||||
*
|
||||
|
|
@ -47,7 +47,7 @@
|
|||
#include <ol_txrx_encap.h> /* OL_TX_ENCAP, etc */
|
||||
#include <ol_tx.h>
|
||||
#include <ol_cfg.h>
|
||||
|
||||
#include <cdp_txrx_handle.h>
|
||||
#define INVALID_FLOW_ID 0xFF
|
||||
#define MAX_INVALID_BIN 3
|
||||
|
||||
|
|
@ -560,9 +560,9 @@ static struct ol_tx_flow_pool_t *ol_tx_get_flow_pool(uint8_t flow_pool_id)
|
|||
static void ol_tx_flow_pool_vdev_map(struct ol_tx_flow_pool_t *pool,
|
||||
uint8_t vdev_id)
|
||||
{
|
||||
ol_txrx_vdev_handle vdev;
|
||||
struct ol_txrx_vdev_t *vdev;
|
||||
|
||||
vdev = ol_txrx_get_vdev_from_vdev_id(vdev_id);
|
||||
vdev = (struct ol_txrx_vdev_t *)ol_txrx_get_vdev_from_vdev_id(vdev_id);
|
||||
if (!vdev) {
|
||||
TXRX_PRINT(TXRX_PRINT_LEVEL_ERR,
|
||||
"%s: invalid vdev_id %d\n",
|
||||
|
|
@ -588,9 +588,9 @@ static void ol_tx_flow_pool_vdev_map(struct ol_tx_flow_pool_t *pool,
|
|||
static void ol_tx_flow_pool_vdev_unmap(struct ol_tx_flow_pool_t *pool,
|
||||
uint8_t vdev_id)
|
||||
{
|
||||
ol_txrx_vdev_handle vdev;
|
||||
struct ol_txrx_vdev_t *vdev;
|
||||
|
||||
vdev = ol_txrx_get_vdev_from_vdev_id(vdev_id);
|
||||
vdev = (struct ol_txrx_vdev_t *)ol_txrx_get_vdev_from_vdev_id(vdev_id);
|
||||
if (!vdev) {
|
||||
TXRX_PRINT(TXRX_PRINT_LEVEL_ERR,
|
||||
"%s: invalid vdev_id %d\n",
|
||||
|
|
|
|||
|
|
@ -537,7 +537,7 @@ struct ol_txrx_peer_id_map {
|
|||
*/
|
||||
struct ol_txrx_pdev_t {
|
||||
/* ctrl_pdev - handle for querying config info */
|
||||
ol_pdev_handle ctrl_pdev;
|
||||
struct cdp_cfg *ctrl_pdev;
|
||||
|
||||
/* osdev - handle for mem alloc / free, map / unmap */
|
||||
qdf_device_t osdev;
|
||||
|
|
|
|||
|
|
@ -61,6 +61,7 @@
|
|||
#include <cdp_txrx_misc.h>
|
||||
#include <wlan_logging_sock_svc.h>
|
||||
#include <wlan_hdd_object_manager.h>
|
||||
#include <cdp_txrx_handle.h>
|
||||
|
||||
/* These are needed to recognize WPA and RSN suite types */
|
||||
#define HDD_WPA_OUI_SIZE 4
|
||||
|
|
@ -1440,7 +1441,8 @@ QDF_STATUS hdd_roam_deregister_sta(hdd_adapter_t *pAdapter, uint8_t staId)
|
|||
}
|
||||
|
||||
qdf_status = cdp_clear_peer(cds_get_context(QDF_MODULE_ID_SOC),
|
||||
cds_get_context(QDF_MODULE_ID_TXRX), staId);
|
||||
(struct cdp_pdev *)cds_get_context(QDF_MODULE_ID_TXRX),
|
||||
staId);
|
||||
if (!QDF_IS_STATUS_SUCCESS(qdf_status)) {
|
||||
hdd_err("cdp_clear_peer() failed for staID %d. Status(%d) [0x%08X]",
|
||||
staId, qdf_status, qdf_status);
|
||||
|
|
@ -1761,7 +1763,8 @@ QDF_STATUS hdd_change_peer_state(hdd_adapter_t *pAdapter,
|
|||
return QDF_STATUS_E_INVAL;
|
||||
}
|
||||
|
||||
peer = cdp_peer_find_by_local_id(soc, pdev, sta_id);
|
||||
peer = cdp_peer_find_by_local_id(soc,
|
||||
(struct cdp_pdev *)pdev, sta_id);
|
||||
if (!peer)
|
||||
return QDF_STATUS_E_FAULT;
|
||||
|
||||
|
|
@ -1808,8 +1811,8 @@ QDF_STATUS hdd_change_peer_state(hdd_adapter_t *pAdapter,
|
|||
if (!rc) {
|
||||
hdd_notice("timeout waiting for sta_authorized_event");
|
||||
}
|
||||
vdev = cdp_peer_get_vdev(soc, peer);
|
||||
cdp_fc_vdev_unpause(soc, vdev,
|
||||
vdev = (void *)cdp_peer_get_vdev(soc, peer);
|
||||
cdp_fc_vdev_unpause(soc, (struct cdp_vdev *)vdev,
|
||||
OL_TXQ_PAUSE_REASON_PEER_UNAUTHORIZED);
|
||||
#endif
|
||||
}
|
||||
|
|
@ -1865,22 +1868,25 @@ QDF_STATUS hdd_roam_register_sta(hdd_adapter_t *pAdapter,
|
|||
qdf_mem_zero(&txrx_ops, sizeof(txrx_ops));
|
||||
txrx_ops.rx.rx = hdd_rx_packet_cbk;
|
||||
|
||||
pAdapter->txrx_vdev = cdp_get_vdev_from_vdev_id(soc, pdev,
|
||||
pAdapter->sessionId);
|
||||
pAdapter->txrx_vdev = (void *)cdp_get_vdev_from_vdev_id(soc,
|
||||
(struct cdp_pdev *)pdev,
|
||||
pAdapter->sessionId);
|
||||
if (!pAdapter->txrx_vdev) {
|
||||
hdd_err("%s find vdev fail", __func__);
|
||||
return QDF_STATUS_E_FAILURE;
|
||||
}
|
||||
|
||||
txrx_ops.tx.tx = NULL;
|
||||
cdp_vdev_register(soc, pAdapter->txrx_vdev, pAdapter, &txrx_ops);
|
||||
cdp_vdev_register(soc,
|
||||
(struct cdp_vdev *)pAdapter->txrx_vdev, pAdapter, &txrx_ops);
|
||||
if (!txrx_ops.tx.tx) {
|
||||
hdd_err("%s vdev register fail", __func__);
|
||||
return QDF_STATUS_E_FAILURE;
|
||||
}
|
||||
|
||||
pAdapter->tx_fn = txrx_ops.tx.tx;
|
||||
qdf_status = cdp_peer_register(soc, pdev, &staDesc);
|
||||
qdf_status = cdp_peer_register(soc,
|
||||
(struct cdp_pdev *)pdev, &staDesc);
|
||||
if (!QDF_IS_STATUS_SUCCESS(qdf_status)) {
|
||||
hdd_warn("cdp_peer_register() failed to register. Status=%d [0x%08X]",
|
||||
qdf_status, qdf_status);
|
||||
|
|
@ -3533,12 +3539,14 @@ QDF_STATUS hdd_roam_register_tdlssta(hdd_adapter_t *pAdapter,
|
|||
qdf_mem_zero(&txrx_ops, sizeof(txrx_ops));
|
||||
txrx_ops.rx.rx = hdd_rx_packet_cbk;
|
||||
cdp_vdev_register(soc,
|
||||
cdp_get_vdev_from_vdev_id(soc, pdev, pAdapter->sessionId),
|
||||
(struct cdp_vdev *)cdp_get_vdev_from_vdev_id(soc,
|
||||
(struct cdp_pdev *)pdev, pAdapter->sessionId),
|
||||
pAdapter, &txrx_ops);
|
||||
pAdapter->tx_fn = txrx_ops.tx.tx;
|
||||
|
||||
/* Register the Station with TL... */
|
||||
qdf_status = cdp_peer_register(soc, pdev, &staDesc);
|
||||
qdf_status = cdp_peer_register(soc,
|
||||
(struct cdp_pdev *)pdev, &staDesc);
|
||||
if (!QDF_IS_STATUS_SUCCESS(qdf_status)) {
|
||||
hdd_err("cdp_peer_register() failed to register. Status=%d [0x%08X]",
|
||||
qdf_status, qdf_status);
|
||||
|
|
@ -3560,7 +3568,8 @@ static QDF_STATUS hdd_roam_deregister_tdlssta(hdd_adapter_t *pAdapter,
|
|||
{
|
||||
QDF_STATUS qdf_status;
|
||||
qdf_status = cdp_clear_peer(cds_get_context(QDF_MODULE_ID_SOC),
|
||||
cds_get_context(QDF_MODULE_ID_TXRX), staId);
|
||||
(struct cdp_pdev *)cds_get_context(QDF_MODULE_ID_TXRX),
|
||||
staId);
|
||||
if (!QDF_IS_STATUS_SUCCESS(qdf_status)) {
|
||||
hdd_warn("cdp_clear_peer() failed for staID %d. Status=%d [0x%08X]",
|
||||
staId, qdf_status, qdf_status);
|
||||
|
|
|
|||
|
|
@ -74,10 +74,10 @@
|
|||
#include "sap_api.h"
|
||||
#include "csr_api.h"
|
||||
#include "pld_common.h"
|
||||
|
||||
#ifdef WLAN_UMAC_CONVERGENCE
|
||||
#include "wlan_cfg80211.h"
|
||||
#endif
|
||||
#include <cdp_txrx_handle.h>
|
||||
|
||||
#ifdef FEATURE_WLAN_EXTSCAN
|
||||
#include "wlan_hdd_ext_scan.h"
|
||||
|
|
@ -3388,7 +3388,8 @@ static int __wlan_hdd_cfg80211_handle_wisa_cmd(struct wiphy *wiphy,
|
|||
}
|
||||
if (QDF_IS_STATUS_SUCCESS(status) || wisa_mode == false)
|
||||
cdp_set_wisa_mode(soc,
|
||||
cdp_get_vdev_from_vdev_id(soc, pdev,
|
||||
(struct cdp_vdev *)cdp_get_vdev_from_vdev_id(soc,
|
||||
(struct cdp_pdev *)pdev,
|
||||
adapter->sessionId),
|
||||
wisa_mode);
|
||||
err:
|
||||
|
|
|
|||
|
|
@ -865,7 +865,8 @@ static int __wlan_hdd_runtime_suspend(struct device *dev)
|
|||
if (status)
|
||||
goto process_failure;
|
||||
|
||||
status = qdf_status_to_os_return(cdp_runtime_suspend(soc, txrx_pdev));
|
||||
status = qdf_status_to_os_return(cdp_runtime_suspend(soc,
|
||||
(struct cdp_pdev *)txrx_pdev));
|
||||
if (status)
|
||||
goto process_failure;
|
||||
|
||||
|
|
@ -895,7 +896,8 @@ resume_wma:
|
|||
resume_htc:
|
||||
QDF_BUG(!htc_runtime_resume(htc_ctx));
|
||||
resume_txrx:
|
||||
QDF_BUG(!qdf_status_to_os_return(cdp_runtime_resume(soc, txrx_pdev)));
|
||||
QDF_BUG(!qdf_status_to_os_return(cdp_runtime_resume(soc,
|
||||
(struct cdp_pdev *)txrx_pdev)));
|
||||
process_failure:
|
||||
hif_process_runtime_suspend_failure(hif_ctx);
|
||||
return status;
|
||||
|
|
@ -941,7 +943,8 @@ static int __wlan_hdd_runtime_resume(struct device *dev)
|
|||
QDF_BUG(!hif_runtime_resume(hif_ctx));
|
||||
QDF_BUG(!wma_runtime_resume());
|
||||
QDF_BUG(!htc_runtime_resume(htc_ctx));
|
||||
QDF_BUG(!qdf_status_to_os_return(cdp_runtime_resume(soc, txrx_pdev)));
|
||||
QDF_BUG(!qdf_status_to_os_return(cdp_runtime_resume(soc,
|
||||
(struct cdp_pdev *)txrx_pdev)));
|
||||
hif_process_runtime_resume_success(hif_ctx);
|
||||
return 0;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -58,7 +58,7 @@
|
|||
#include "wal_rx_desc.h"
|
||||
|
||||
#include "cdp_txrx_ipa.h"
|
||||
|
||||
#include <cdp_txrx_handle.h>
|
||||
#define HDD_IPA_DESC_BUFFER_RATIO 4
|
||||
#define HDD_IPA_IPV4_NAME_EXT "_ipv4"
|
||||
#define HDD_IPA_IPV6_NAME_EXT "_ipv6"
|
||||
|
|
@ -1413,7 +1413,9 @@ static int hdd_ipa_uc_enable_pipes(struct hdd_ipa_priv *hdd_ipa)
|
|||
__func__, result);
|
||||
return result;
|
||||
}
|
||||
cdp_ipa_set_active(soc, cds_ctx->pdev_txrx_ctx, true, true);
|
||||
cdp_ipa_set_active(soc,
|
||||
(struct cdp_pdev *)cds_ctx->pdev_txrx_ctx,
|
||||
true, true);
|
||||
|
||||
/* ACTIVATE RX PIPE */
|
||||
HDD_IPA_LOG(QDF_TRACE_LEVEL_INFO,
|
||||
|
|
@ -1433,7 +1435,9 @@ static int hdd_ipa_uc_enable_pipes(struct hdd_ipa_priv *hdd_ipa)
|
|||
__func__, result);
|
||||
return result;
|
||||
}
|
||||
cdp_ipa_set_active(soc, cds_ctx->pdev_txrx_ctx, true, false);
|
||||
cdp_ipa_set_active(soc,
|
||||
(struct cdp_pdev *)cds_ctx->pdev_txrx_ctx,
|
||||
true, false);
|
||||
hdd_ipa->ipa_pipes_down = false;
|
||||
return 0;
|
||||
}
|
||||
|
|
@ -1551,9 +1555,13 @@ static void hdd_ipa_uc_handle_last_discon(struct hdd_ipa_priv *hdd_ipa)
|
|||
|
||||
hdd_ipa->resource_unloading = true;
|
||||
HDD_IPA_LOG(QDF_TRACE_LEVEL_INFO, "%s: Disable FW RX PIPE", __func__);
|
||||
cdp_ipa_set_active(soc, cds_ctx->pdev_txrx_ctx, false, false);
|
||||
cdp_ipa_set_active(soc,
|
||||
(struct cdp_pdev *)cds_ctx->pdev_txrx_ctx,
|
||||
false, false);
|
||||
HDD_IPA_LOG(QDF_TRACE_LEVEL_INFO, "%s: Disable FW TX PIPE", __func__);
|
||||
cdp_ipa_set_active(soc, cds_ctx->pdev_txrx_ctx, false, true);
|
||||
cdp_ipa_set_active(soc,
|
||||
(struct cdp_pdev *)cds_ctx->pdev_txrx_ctx,
|
||||
false, true);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -2188,12 +2196,14 @@ static QDF_STATUS hdd_ipa_uc_ol_init(hdd_context_t *hdd_ctx)
|
|||
(unsigned int)pipe_in.u.ul.rdy_ring_rp_pa,
|
||||
(unsigned int)ipa_ctxt->rx_ready_doorbell_paddr);
|
||||
|
||||
cdp_ipa_set_doorbell_paddr(soc, cds_ctx->pdev_txrx_ctx,
|
||||
cdp_ipa_set_doorbell_paddr(soc,
|
||||
(struct cdp_pdev *)cds_ctx->pdev_txrx_ctx,
|
||||
ipa_ctxt->tx_comp_doorbell_paddr,
|
||||
ipa_ctxt->rx_ready_doorbell_paddr);
|
||||
|
||||
cdp_ipa_register_op_cb(soc, cds_ctx->pdev_txrx_ctx,
|
||||
hdd_ipa_uc_op_event_handler, (void *)hdd_ctx);
|
||||
cdp_ipa_register_op_cb(soc,
|
||||
(struct cdp_pdev *)cds_ctx->pdev_txrx_ctx,
|
||||
hdd_ipa_uc_op_event_handler, (void *)hdd_ctx);
|
||||
|
||||
for (i = 0; i < HDD_IPA_UC_OPCODE_MAX; i++) {
|
||||
hdd_ipa_init_uc_op_work(&ipa_ctxt->uc_op_work[i].work,
|
||||
|
|
@ -3223,7 +3233,8 @@ static enum hdd_ipa_forward_type hdd_ipa_intrabss_forward(
|
|||
|
||||
if ((desc & FW_RX_DESC_FORWARD_M)) {
|
||||
if (!ol_txrx_fwd_desc_thresh_check(
|
||||
ol_txrx_get_vdev_from_vdev_id(adapter->sessionId))) {
|
||||
(struct ol_txrx_vdev_t *)ol_txrx_get_vdev_from_vdev_id(
|
||||
adapter->sessionId))) {
|
||||
/* Drop the packet*/
|
||||
hdd_ipa->stats.num_tx_fwd_err++;
|
||||
kfree_skb(skb);
|
||||
|
|
@ -3473,7 +3484,8 @@ static void hdd_ipa_send_pkt_to_tl(
|
|||
adapter->stats.tx_bytes += ipa_tx_desc->skb->len;
|
||||
|
||||
skb = cdp_ipa_tx_send_data_frame(cds_get_context(QDF_MODULE_ID_SOC),
|
||||
iface_context->tl_context, ipa_tx_desc->skb);
|
||||
(struct cdp_vdev *)iface_context->tl_context,
|
||||
ipa_tx_desc->skb);
|
||||
if (skb) {
|
||||
HDD_IPA_LOG(QDF_TRACE_LEVEL_DEBUG, "TLSHIM tx fail");
|
||||
ipa_free_skb(ipa_tx_desc);
|
||||
|
|
@ -4296,7 +4308,7 @@ static int hdd_ipa_setup_iface(struct hdd_ipa_priv *hdd_ipa,
|
|||
adapter->ipa_context = iface_context;
|
||||
iface_context->adapter = adapter;
|
||||
iface_context->sta_id = sta_id;
|
||||
tl_context = cdp_peer_get_vdev_by_sta_id(
|
||||
tl_context = (void *)cdp_peer_get_vdev_by_sta_id(
|
||||
cds_get_context(QDF_MODULE_ID_SOC), sta_id);
|
||||
if (tl_context == NULL) {
|
||||
HDD_IPA_LOG(QDF_TRACE_LEVEL_ERROR,
|
||||
|
|
@ -5019,8 +5031,8 @@ static QDF_STATUS __hdd_ipa_init(hdd_context_t *hdd_ctx)
|
|||
hdd_ipa->hdd_ctx = hdd_ctx;
|
||||
hdd_ipa->num_iface = 0;
|
||||
cdp_ipa_get_resource(cds_get_context(QDF_MODULE_ID_SOC),
|
||||
cds_get_context(QDF_MODULE_ID_TXRX),
|
||||
&hdd_ipa->ipa_resource);
|
||||
(struct cdp_pdev *)cds_get_context(QDF_MODULE_ID_TXRX),
|
||||
&hdd_ipa->ipa_resource);
|
||||
if ((0 == hdd_ipa->ipa_resource.ce_sr_base_paddr) ||
|
||||
(0 == hdd_ipa->ipa_resource.tx_comp_ring_base_paddr) ||
|
||||
(0 == hdd_ipa->ipa_resource.rx_rdy_ring_base_paddr) ||
|
||||
|
|
|
|||
|
|
@ -108,6 +108,7 @@
|
|||
#include <dispatcher_init_deinit.h>
|
||||
#include "wlan_hdd_object_manager.h"
|
||||
#include "cds_utils.h"
|
||||
#include <cdp_txrx_handle.h>
|
||||
|
||||
#ifdef MODULE
|
||||
#define WLAN_MODULE_NAME module_name(THIS_MODULE)
|
||||
|
|
@ -3753,7 +3754,7 @@ QDF_STATUS hdd_stop_adapter(hdd_context_t *hdd_ctx, hdd_adapter_t *adapter,
|
|||
break;
|
||||
case QDF_OCB_MODE:
|
||||
cdp_clear_peer(cds_get_context(QDF_MODULE_ID_SOC),
|
||||
cds_get_context(QDF_MODULE_ID_TXRX),
|
||||
(struct cdp_pdev *)cds_get_context(QDF_MODULE_ID_TXRX),
|
||||
WLAN_HDD_GET_STATION_CTX_PTR(adapter)->conn_info.staId[0]);
|
||||
break;
|
||||
default:
|
||||
|
|
|
|||
|
|
@ -41,7 +41,7 @@
|
|||
#include "wma_api.h"
|
||||
#include <cdp_txrx_cmn.h>
|
||||
#include <cdp_txrx_peer_ops.h>
|
||||
|
||||
#include <cdp_txrx_handle.h>
|
||||
/* Structure definitions for WLAN_SET_DOT11P_CHANNEL_SCHED */
|
||||
#define AIFSN_MIN (2)
|
||||
#define AIFSN_MAX (15)
|
||||
|
|
@ -269,11 +269,13 @@ static int hdd_ocb_register_sta(hdd_adapter_t *adapter)
|
|||
qdf_mem_zero(&txrx_ops, sizeof(txrx_ops));
|
||||
txrx_ops.rx.rx = hdd_rx_packet_cbk;
|
||||
cdp_vdev_register(soc,
|
||||
cdp_get_vdev_from_vdev_id(soc, pdev, adapter->sessionId),
|
||||
adapter, &txrx_ops);
|
||||
(struct cdp_vdev *)cdp_get_vdev_from_vdev_id(soc,
|
||||
(struct cdp_pdev *)pdev, adapter->sessionId),
|
||||
adapter, &txrx_ops);
|
||||
adapter->tx_fn = txrx_ops.tx.tx;
|
||||
|
||||
qdf_status = cdp_peer_register(soc, pdev, &sta_desc);
|
||||
qdf_status = cdp_peer_register(soc,
|
||||
(struct cdp_pdev *)pdev, &sta_desc);
|
||||
if (!QDF_IS_STATUS_SUCCESS(qdf_status)) {
|
||||
hdd_err("Failed to register. Status= %d [0x%08X]",
|
||||
qdf_status, qdf_status);
|
||||
|
|
|
|||
|
|
@ -45,6 +45,7 @@
|
|||
#include <cdp_txrx_peer_ops.h>
|
||||
#include <cds_utils.h>
|
||||
#include <cdp_txrx_flow_ctrl_v2.h>
|
||||
#include <cdp_txrx_handle.h>
|
||||
|
||||
#ifdef IPA_OFFLOAD
|
||||
#include <wlan_hdd_ipa.h>
|
||||
|
|
@ -741,7 +742,8 @@ QDF_STATUS hdd_softap_deregister_sta(hdd_adapter_t *pAdapter, uint8_t staId)
|
|||
* station to this station.
|
||||
*/
|
||||
qdf_status = cdp_clear_peer(cds_get_context(QDF_MODULE_ID_SOC),
|
||||
cds_get_context(QDF_MODULE_ID_TXRX), staId);
|
||||
(struct cdp_pdev *)cds_get_context(QDF_MODULE_ID_TXRX),
|
||||
staId);
|
||||
if (!QDF_IS_STATUS_SUCCESS(qdf_status)) {
|
||||
hdd_err("cdp_clear_peer failed for staID %d, Status=%d [0x%08X]",
|
||||
staId, qdf_status, qdf_status);
|
||||
|
|
@ -814,13 +816,16 @@ QDF_STATUS hdd_softap_register_sta(hdd_adapter_t *pAdapter,
|
|||
qdf_mem_zero(&txrx_ops, sizeof(txrx_ops));
|
||||
txrx_ops.rx.rx = hdd_softap_rx_packet_cbk;
|
||||
cdp_vdev_register(soc,
|
||||
cdp_get_vdev_from_vdev_id(soc, pdev, pAdapter->sessionId),
|
||||
pAdapter, &txrx_ops);
|
||||
pAdapter->txrx_vdev = cdp_get_vdev_from_vdev_id(soc, pdev,
|
||||
(struct cdp_vdev *)cdp_get_vdev_from_vdev_id(soc,
|
||||
(struct cdp_pdev *)pdev, pAdapter->sessionId),
|
||||
pAdapter, &txrx_ops);
|
||||
pAdapter->txrx_vdev = (void *)cdp_get_vdev_from_vdev_id(soc,
|
||||
(struct cdp_pdev *)pdev,
|
||||
pAdapter->sessionId);
|
||||
pAdapter->tx_fn = txrx_ops.tx.tx;
|
||||
|
||||
qdf_status = cdp_peer_register(soc, pdev, &staDesc);
|
||||
qdf_status = cdp_peer_register(soc,
|
||||
(struct cdp_pdev *)pdev, &staDesc);
|
||||
if (!QDF_IS_STATUS_SUCCESS(qdf_status)) {
|
||||
hdd_err("cdp_peer_register() failed to register. Status = %d [0x%08X]",
|
||||
qdf_status, qdf_status);
|
||||
|
|
|
|||
|
|
@ -59,7 +59,7 @@
|
|||
#include <cdp_txrx_flow_ctrl_v2.h>
|
||||
#include "wlan_hdd_nan_datapath.h"
|
||||
#include "pld_common.h"
|
||||
|
||||
#include <cdp_txrx_handle.h>
|
||||
#ifdef QCA_LL_TX_FLOW_CONTROL_V2
|
||||
/*
|
||||
* Mapping Linux AC interpretation to SME AC.
|
||||
|
|
@ -1414,10 +1414,12 @@ int hdd_set_mon_rx_cb(struct net_device *dev)
|
|||
qdf_mem_zero(&txrx_ops, sizeof(txrx_ops));
|
||||
txrx_ops.rx.rx = hdd_mon_rx_packet_cbk;
|
||||
cdp_vdev_register(soc,
|
||||
cdp_get_vdev_from_vdev_id(soc, pdev, adapter->sessionId),
|
||||
adapter, &txrx_ops);
|
||||
(struct cdp_vdev *)cdp_get_vdev_from_vdev_id(soc,
|
||||
(struct cdp_pdev *)pdev, adapter->sessionId),
|
||||
adapter, &txrx_ops);
|
||||
/* peer is created wma_vdev_attach->wma_create_peer */
|
||||
qdf_status = cdp_peer_register(soc, pdev, &sta_desc);
|
||||
qdf_status = cdp_peer_register(soc,
|
||||
(struct cdp_pdev *)pdev, &sta_desc);
|
||||
if (QDF_STATUS_SUCCESS != qdf_status) {
|
||||
hdd_err("cdp_peer_register() failed to register. Status= %d [0x%08X]",
|
||||
qdf_status, qdf_status);
|
||||
|
|
|
|||
|
|
@ -50,6 +50,7 @@
|
|||
#include "dbglog.h"
|
||||
#include "cds_ieee80211_common.h"
|
||||
#include "wlan_objmgr_psoc_obj.h"
|
||||
#include <cdp_txrx_handle.h>
|
||||
/* Platform specific configuration for max. no. of fragments */
|
||||
#define QCA_OL_11AC_TX_MAX_FRAGS 2
|
||||
|
||||
|
|
@ -1010,7 +1011,7 @@ typedef struct {
|
|||
struct wma_txrx_node {
|
||||
uint8_t addr[IEEE80211_ADDR_LEN];
|
||||
uint8_t bssid[IEEE80211_ADDR_LEN];
|
||||
void *handle;
|
||||
struct cdp_vdev *handle;
|
||||
struct beacon_info *beacon;
|
||||
vdev_restart_params_t vdev_restart_params;
|
||||
vdev_cli_config_t config;
|
||||
|
|
@ -2300,8 +2301,8 @@ QDF_STATUS wma_add_wow_wakeup_event(tp_wma_handle wma,
|
|||
uint32_t vdev_id,
|
||||
uint32_t bitmap,
|
||||
bool enable);
|
||||
QDF_STATUS wma_create_peer(tp_wma_handle wma, void *pdev,
|
||||
void *vdev, u8 peer_addr[6],
|
||||
QDF_STATUS wma_create_peer(tp_wma_handle wma, struct cdp_pdev *pdev,
|
||||
struct cdp_vdev *vdev, u8 peer_addr[6],
|
||||
u_int32_t peer_type, u_int8_t vdev_id,
|
||||
bool roam_synch_in_progress);
|
||||
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@
|
|||
|
||||
#ifndef WMA_INTERNAL_H
|
||||
#define WMA_INTERNAL_H
|
||||
|
||||
#include <cdp_txrx_handle.h>
|
||||
#if !defined(REMOVE_PKT_LOG)
|
||||
#include "pktlog_ac.h"
|
||||
#endif
|
||||
|
|
@ -446,7 +446,7 @@ static inline uint32_t wma_roam_scan_get_cckm_mode(
|
|||
* wma_dev_if.c functions declarations
|
||||
*/
|
||||
|
||||
void *wma_find_vdev_by_addr(tp_wma_handle wma, uint8_t *addr,
|
||||
struct cdp_vdev *wma_find_vdev_by_addr(tp_wma_handle wma, uint8_t *addr,
|
||||
uint8_t *vdev_id);
|
||||
|
||||
/**
|
||||
|
|
@ -457,7 +457,8 @@ void *wma_find_vdev_by_addr(tp_wma_handle wma, uint8_t *addr,
|
|||
* Return: Returns vdev handle if given vdev id is valid.
|
||||
* Otherwise returns NULL.
|
||||
*/
|
||||
static inline void *wma_find_vdev_by_id(tp_wma_handle wma, uint8_t vdev_id)
|
||||
static inline
|
||||
struct cdp_vdev *wma_find_vdev_by_id(tp_wma_handle wma, uint8_t vdev_id)
|
||||
{
|
||||
if (vdev_id > wma->max_bssid)
|
||||
return NULL;
|
||||
|
|
@ -535,7 +536,7 @@ static inline uint8_t *wma_find_bssid_by_vdev_id(tp_wma_handle wma,
|
|||
return wma->interfaces[vdev_id].bssid;
|
||||
}
|
||||
|
||||
void *wma_find_vdev_by_bssid(tp_wma_handle wma, uint8_t *bssid,
|
||||
struct cdp_vdev *wma_find_vdev_by_bssid(tp_wma_handle wma, uint8_t *bssid,
|
||||
uint8_t *vdev_id);
|
||||
|
||||
QDF_STATUS wma_vdev_detach(tp_wma_handle wma_handle,
|
||||
|
|
@ -552,8 +553,8 @@ void wma_remove_peer(tp_wma_handle wma, uint8_t *bssid,
|
|||
uint8_t vdev_id, void *peer,
|
||||
bool roam_synch_in_progress);
|
||||
|
||||
QDF_STATUS wma_create_peer(tp_wma_handle wma, void *pdev,
|
||||
void *vdev,
|
||||
QDF_STATUS wma_create_peer(tp_wma_handle wma, struct cdp_pdev *pdev,
|
||||
struct cdp_vdev *vdev,
|
||||
u8 peer_addr[IEEE80211_ADDR_LEN],
|
||||
uint32_t peer_type, uint8_t vdev_id,
|
||||
bool roam_synch_in_progress);
|
||||
|
|
@ -561,7 +562,7 @@ QDF_STATUS wma_create_peer(tp_wma_handle wma, void *pdev,
|
|||
int wma_vdev_stop_resp_handler(void *handle, uint8_t *cmd_param_info,
|
||||
u32 len);
|
||||
|
||||
void *wma_vdev_attach(tp_wma_handle wma_handle,
|
||||
struct cdp_vdev *wma_vdev_attach(tp_wma_handle wma_handle,
|
||||
struct add_sta_self_params *self_sta_req,
|
||||
uint8_t generateRsp);
|
||||
|
||||
|
|
|
|||
|
|
@ -81,6 +81,7 @@
|
|||
#include "wlan_objmgr_pdev_obj.h"
|
||||
#include "wlan_objmgr_vdev_obj.h"
|
||||
#include "wlan_objmgr_peer_obj.h"
|
||||
#include <cdp_txrx_handle.h>
|
||||
|
||||
typedef struct {
|
||||
int32_t rate;
|
||||
|
|
@ -955,7 +956,7 @@ int wma_peer_state_change_event_handler(void *handle,
|
|||
{
|
||||
WMI_PEER_STATE_EVENTID_param_tlvs *param_buf;
|
||||
wmi_peer_state_event_fixed_param *event;
|
||||
void *vdev;
|
||||
struct cdp_vdev *vdev;
|
||||
tp_wma_handle wma_handle = (tp_wma_handle) handle;
|
||||
|
||||
if (!event_buff) {
|
||||
|
|
@ -976,7 +977,8 @@ int wma_peer_state_change_event_handler(void *handle,
|
|||
return -EINVAL;
|
||||
}
|
||||
|
||||
if ((cdp_get_opmode(cds_get_context(QDF_MODULE_ID_SOC), vdev) ==
|
||||
if ((cdp_get_opmode(cds_get_context(QDF_MODULE_ID_SOC),
|
||||
vdev) ==
|
||||
wlan_op_mode_sta) &&
|
||||
event->state == WMI_PEER_STATE_AUTHORIZED) {
|
||||
/*
|
||||
|
|
@ -1167,8 +1169,8 @@ QDF_STATUS wma_set_mcc_channel_time_quota
|
|||
*/
|
||||
void wma_set_linkstate(tp_wma_handle wma, tpLinkStateParams params)
|
||||
{
|
||||
void *pdev;
|
||||
void *vdev;
|
||||
struct cdp_pdev *pdev;
|
||||
struct cdp_vdev *vdev;
|
||||
void *peer;
|
||||
void *soc = cds_get_context(QDF_MODULE_ID_SOC);
|
||||
uint8_t vdev_id, peer_id;
|
||||
|
|
@ -1217,15 +1219,16 @@ void wma_set_linkstate(tp_wma_handle wma, tpLinkStateParams params)
|
|||
} else {
|
||||
WMA_LOGD("%s, vdev_id: %d, pausing tx_ll_queue for VDEV_STOP",
|
||||
__func__, vdev_id);
|
||||
cdp_fc_vdev_pause(soc, wma->interfaces[vdev_id].handle,
|
||||
OL_TXQ_PAUSE_REASON_VDEV_STOP);
|
||||
cdp_fc_vdev_pause(soc,
|
||||
wma->interfaces[vdev_id].handle,
|
||||
OL_TXQ_PAUSE_REASON_VDEV_STOP);
|
||||
wma->interfaces[vdev_id].pause_bitmap |= (1 << PAUSE_TYPE_HOST);
|
||||
if (wmi_unified_vdev_stop_send(wma->wmi_handle, vdev_id)) {
|
||||
WMA_LOGP("%s: %d Failed to send vdev stop",
|
||||
__func__, __LINE__);
|
||||
}
|
||||
peer = cdp_peer_find_by_addr(soc, pdev,
|
||||
params->bssid, &peer_id);
|
||||
params->bssid, &peer_id);
|
||||
if (peer) {
|
||||
WMA_LOGP("%s: Deleting peer %pM vdev id %d",
|
||||
__func__, params->bssid, vdev_id);
|
||||
|
|
@ -1258,7 +1261,8 @@ void wma_unpause_vdev(tp_wma_handle wma)
|
|||
/* When host resume, by default, unpause all active vdev */
|
||||
if (wma->interfaces[vdev_id].pause_bitmap) {
|
||||
cdp_fc_vdev_unpause(cds_get_context(QDF_MODULE_ID_SOC),
|
||||
wma->interfaces[vdev_id].handle, 0xffffffff);
|
||||
wma->interfaces[vdev_id].handle,
|
||||
0xffffffff);
|
||||
wma->interfaces[vdev_id].pause_bitmap = 0;
|
||||
}
|
||||
#endif /* QCA_LL_LEGACY_TX_FLOW_CONTROL */
|
||||
|
|
@ -1513,19 +1517,22 @@ QDF_STATUS wma_tx_attach(tp_wma_handle wma_handle)
|
|||
(p_cds_contextType) (wma_handle->cds_context);
|
||||
|
||||
/* Get the txRx Pdev handle */
|
||||
void *txrx_pdev = cds_handle->pdev_txrx_ctx;
|
||||
struct cdp_pdev *txrx_pdev = cds_handle->pdev_txrx_ctx;
|
||||
void *soc = cds_get_context(QDF_MODULE_ID_SOC);
|
||||
|
||||
/* Register for Tx Management Frames */
|
||||
cdp_mgmt_tx_cb_set(soc, txrx_pdev, GENERIC_NODOWLOAD_ACK_COMP_INDEX,
|
||||
NULL, wma_mgmt_tx_ack_comp_hdlr, wma_handle);
|
||||
cdp_mgmt_tx_cb_set(soc, txrx_pdev,
|
||||
GENERIC_NODOWLOAD_ACK_COMP_INDEX,
|
||||
NULL, wma_mgmt_tx_ack_comp_hdlr, wma_handle);
|
||||
|
||||
cdp_mgmt_tx_cb_set(soc, txrx_pdev, GENERIC_DOWNLD_COMP_NOACK_COMP_INDEX,
|
||||
wma_mgmt_tx_dload_comp_hldr, NULL, wma_handle);
|
||||
cdp_mgmt_tx_cb_set(soc, txrx_pdev,
|
||||
GENERIC_DOWNLD_COMP_NOACK_COMP_INDEX,
|
||||
wma_mgmt_tx_dload_comp_hldr, NULL, wma_handle);
|
||||
|
||||
cdp_mgmt_tx_cb_set(soc, txrx_pdev, GENERIC_DOWNLD_COMP_ACK_COMP_INDEX,
|
||||
wma_mgmt_tx_dload_comp_hldr,
|
||||
wma_mgmt_tx_ack_comp_hdlr, wma_handle);
|
||||
cdp_mgmt_tx_cb_set(soc, txrx_pdev,
|
||||
GENERIC_DOWNLD_COMP_ACK_COMP_INDEX,
|
||||
wma_mgmt_tx_dload_comp_hldr,
|
||||
wma_mgmt_tx_ack_comp_hdlr, wma_handle);
|
||||
|
||||
/* Store the Mac Context */
|
||||
wma_handle->mac_context = cds_handle->pMACContext;
|
||||
|
|
@ -1551,7 +1558,7 @@ QDF_STATUS wma_tx_detach(tp_wma_handle wma_handle)
|
|||
(p_cds_contextType) (wma_handle->cds_context);
|
||||
|
||||
/* Get the txRx Pdev handle */
|
||||
void *txrx_pdev = cds_handle->pdev_txrx_ctx;
|
||||
struct cdp_pdev *txrx_pdev = cds_handle->pdev_txrx_ctx;
|
||||
|
||||
if (!soc) {
|
||||
WMA_LOGE("%s:SOC context is NULL", __func__);
|
||||
|
|
@ -1562,8 +1569,9 @@ QDF_STATUS wma_tx_detach(tp_wma_handle wma_handle)
|
|||
/* Deregister with TxRx for Tx Mgmt completion call back */
|
||||
for (frame_index = 0; frame_index < FRAME_INDEX_MAX;
|
||||
frame_index++) {
|
||||
cdp_mgmt_tx_cb_set(soc, txrx_pdev, frame_index, NULL,
|
||||
NULL, txrx_pdev);
|
||||
cdp_mgmt_tx_cb_set(soc,
|
||||
txrx_pdev,
|
||||
frame_index, NULL, NULL, txrx_pdev);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -1644,8 +1652,8 @@ int wma_mcc_vdev_tx_pause_evt_handler(void *handle, uint8_t *event,
|
|||
*/
|
||||
if (!wma->interfaces[vdev_id].pause_bitmap)
|
||||
cdp_fc_vdev_pause(soc,
|
||||
wma->interfaces[vdev_id].
|
||||
handle,
|
||||
wma->
|
||||
interfaces[vdev_id].handle,
|
||||
OL_TXQ_PAUSE_REASON_FW);
|
||||
wma->interfaces[vdev_id].pause_bitmap |=
|
||||
(1 << wmi_event->pause_type);
|
||||
|
|
@ -1663,7 +1671,7 @@ int wma_mcc_vdev_tx_pause_evt_handler(void *handle, uint8_t *event,
|
|||
* UNPAUSE VDEV */
|
||||
cdp_fc_vdev_unpause(soc,
|
||||
wma->interfaces[vdev_id]
|
||||
.handle,
|
||||
.handle,
|
||||
OL_TXQ_PAUSE_REASON_FW);
|
||||
}
|
||||
}
|
||||
|
|
@ -1747,7 +1755,7 @@ QDF_STATUS wma_process_init_bad_peer_tx_ctl_info(tp_wma_handle wma,
|
|||
struct t_bad_peer_txtcl_config *config)
|
||||
{
|
||||
/* Parameter sanity check */
|
||||
void *curr_pdev;
|
||||
struct cdp_pdev *curr_pdev;
|
||||
void *soc = cds_get_context(QDF_MODULE_ID_SOC);
|
||||
|
||||
if (NULL == wma || NULL == config) {
|
||||
|
|
@ -1771,7 +1779,8 @@ QDF_STATUS wma_process_init_bad_peer_tx_ctl_info(tp_wma_handle wma,
|
|||
if (config->enable) {
|
||||
int i = 0;
|
||||
|
||||
cdp_bad_peer_txctl_set_setting(soc, curr_pdev,
|
||||
cdp_bad_peer_txctl_set_setting(soc,
|
||||
curr_pdev,
|
||||
config->enable,
|
||||
config->period,
|
||||
config->txq_limit);
|
||||
|
|
@ -1781,9 +1790,11 @@ QDF_STATUS wma_process_init_bad_peer_tx_ctl_info(tp_wma_handle wma,
|
|||
threshold =
|
||||
config->threshold[i].thresh[0];
|
||||
limit = config->threshold[i].txlimit;
|
||||
cdp_bad_peer_txctl_update_threshold(soc, curr_pdev, i,
|
||||
threshold,
|
||||
limit);
|
||||
cdp_bad_peer_txctl_update_threshold(soc,
|
||||
curr_pdev,
|
||||
i,
|
||||
threshold,
|
||||
limit);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -1807,7 +1818,7 @@ QDF_STATUS wma_process_init_thermal_info(tp_wma_handle wma,
|
|||
t_thermal_mgmt *pThermalParams)
|
||||
{
|
||||
t_thermal_cmd_params thermal_params;
|
||||
void *curr_pdev;
|
||||
struct cdp_pdev *curr_pdev;
|
||||
|
||||
if (NULL == wma || NULL == pThermalParams) {
|
||||
WMA_LOGE("TM Invalid input");
|
||||
|
|
@ -1932,7 +1943,7 @@ static void wma_set_thermal_level_ind(u_int8_t level)
|
|||
QDF_STATUS wma_process_set_thermal_level(tp_wma_handle wma,
|
||||
uint8_t thermal_level)
|
||||
{
|
||||
void *curr_pdev;
|
||||
struct cdp_pdev *curr_pdev;
|
||||
|
||||
if (NULL == wma) {
|
||||
WMA_LOGE("TM Invalid input");
|
||||
|
|
@ -1967,7 +1978,8 @@ QDF_STATUS wma_process_set_thermal_level(tp_wma_handle wma,
|
|||
wma->thermal_mgmt_info.thermalCurrLevel = thermal_level;
|
||||
|
||||
cdp_throttle_set_level(cds_get_context(QDF_MODULE_ID_SOC),
|
||||
curr_pdev, thermal_level);
|
||||
curr_pdev,
|
||||
thermal_level);
|
||||
|
||||
/* Send SME SET_THERMAL_LEVEL_IND message */
|
||||
wma_set_thermal_level_ind(thermal_level);
|
||||
|
|
@ -2058,7 +2070,7 @@ int wma_thermal_mgmt_evt_handler(void *handle, uint8_t *event,
|
|||
uint8_t thermal_level;
|
||||
t_thermal_cmd_params thermal_params;
|
||||
WMI_THERMAL_MGMT_EVENTID_param_tlvs *param_buf;
|
||||
void *curr_pdev;
|
||||
struct cdp_pdev *curr_pdev;
|
||||
|
||||
if (NULL == event || NULL == handle) {
|
||||
WMA_LOGE("Invalid thermal mitigation event buffer");
|
||||
|
|
@ -2105,7 +2117,8 @@ int wma_thermal_mgmt_evt_handler(void *handle, uint8_t *event,
|
|||
|
||||
/* Inform txrx */
|
||||
cdp_throttle_set_level(cds_get_context(QDF_MODULE_ID_SOC),
|
||||
curr_pdev, thermal_level);
|
||||
curr_pdev,
|
||||
thermal_level);
|
||||
|
||||
/* Send SME SET_THERMAL_LEVEL_IND message */
|
||||
wma_set_thermal_level_ind(thermal_level);
|
||||
|
|
@ -2505,7 +2518,7 @@ QDF_STATUS wma_tx_packet(void *wma_context, void *tx_frame, uint16_t frmLen,
|
|||
int32_t status;
|
||||
QDF_STATUS qdf_status = QDF_STATUS_SUCCESS;
|
||||
int32_t is_high_latency;
|
||||
void *txrx_vdev;
|
||||
struct cdp_vdev *txrx_vdev;
|
||||
enum frame_index tx_frm_index = GENERIC_NODOWNLD_NOACK_COMP_INDEX;
|
||||
tpSirMacFrameCtl pFc = (tpSirMacFrameCtl) (qdf_nbuf_data(tx_frame));
|
||||
uint8_t use_6mbps = 0;
|
||||
|
|
@ -2520,7 +2533,7 @@ QDF_STATUS wma_tx_packet(void *wma_context, void *tx_frame, uint16_t frmLen,
|
|||
tpAniSirGlobal pMac;
|
||||
tpSirMacMgmtHdr mHdr;
|
||||
struct wmi_mgmt_params mgmt_param = {0};
|
||||
void *ctrl_pdev;
|
||||
struct cdp_cfg *ctrl_pdev;
|
||||
void *soc = cds_get_context(QDF_MODULE_ID_SOC);
|
||||
struct ieee80211_frame *wh;
|
||||
struct wlan_objmgr_peer *peer = NULL;
|
||||
|
|
@ -2736,11 +2749,15 @@ QDF_STATUS wma_tx_packet(void *wma_context, void *tx_frame, uint16_t frmLen,
|
|||
wma_handle->last_umac_data_nbuf = skb;
|
||||
|
||||
/* Send the Data frame to TxRx in Non Standard Path */
|
||||
cdp_hl_tdls_flag_reset(soc, txrx_vdev, tdlsFlag);
|
||||
cdp_hl_tdls_flag_reset(soc,
|
||||
txrx_vdev, tdlsFlag);
|
||||
|
||||
ret = cdp_tx_non_std(soc, txrx_vdev, OL_TX_SPEC_NO_FREE, skb);
|
||||
ret = cdp_tx_non_std(soc,
|
||||
txrx_vdev,
|
||||
OL_TX_SPEC_NO_FREE, skb);
|
||||
|
||||
cdp_hl_tdls_flag_reset(soc, txrx_vdev, false);
|
||||
cdp_hl_tdls_flag_reset(soc,
|
||||
txrx_vdev, false);
|
||||
|
||||
if (ret) {
|
||||
WMA_LOGE("TxRx Rejected. Fail to do Tx");
|
||||
|
|
@ -2763,7 +2780,8 @@ QDF_STATUS wma_tx_packet(void *wma_context, void *tx_frame, uint16_t frmLen,
|
|||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
ctrl_pdev = cdp_get_ctrl_pdev_from_vdev(soc, txrx_vdev);
|
||||
ctrl_pdev = cdp_get_ctrl_pdev_from_vdev(soc,
|
||||
txrx_vdev);
|
||||
if (ctrl_pdev == NULL) {
|
||||
WMA_LOGE("ol_pdev_handle is NULL\n");
|
||||
return QDF_STATUS_E_FAILURE;
|
||||
|
|
@ -2884,8 +2902,9 @@ QDF_STATUS wma_tx_packet(void *wma_context, void *tx_frame, uint16_t frmLen,
|
|||
}
|
||||
} else {
|
||||
/* Hand over the Tx Mgmt frame to TxRx */
|
||||
status = cdp_mgmt_send_ext(soc, txrx_vdev, tx_frame,
|
||||
tx_frm_index, use_6mbps, chanfreq);
|
||||
status = cdp_mgmt_send_ext(soc,
|
||||
txrx_vdev, tx_frame,
|
||||
tx_frm_index, use_6mbps, chanfreq);
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
@ -3082,7 +3101,8 @@ void wma_tx_abort(uint8_t vdev_id)
|
|||
WMA_LOGI("%s: vdevid %d bssid %pM", __func__, vdev_id, iface->bssid);
|
||||
iface->pause_bitmap |= (1 << PAUSE_TYPE_HOST);
|
||||
cdp_fc_vdev_pause(cds_get_context(QDF_MODULE_ID_SOC),
|
||||
iface->handle, OL_TXQ_PAUSE_REASON_TX_ABORT);
|
||||
iface->handle,
|
||||
OL_TXQ_PAUSE_REASON_TX_ABORT);
|
||||
|
||||
/* Flush all TIDs except MGMT TID for this peer in Target */
|
||||
peer_tid_bitmap &= ~(0x1 << WMI_MGMT_TID);
|
||||
|
|
|
|||
|
|
@ -76,6 +76,7 @@
|
|||
#include "cds_concurrency.h"
|
||||
#include "wma_nan_datapath.h"
|
||||
#include "wlan_tgt_def_config.h"
|
||||
#include <cdp_txrx_handle.h>
|
||||
|
||||
/**
|
||||
* wma_find_vdev_by_addr() - find vdev_id from mac address
|
||||
|
|
@ -85,7 +86,7 @@
|
|||
*
|
||||
* Return: Returns vdev handle or NULL if mac address don't match
|
||||
*/
|
||||
void *wma_find_vdev_by_addr(tp_wma_handle wma, uint8_t *addr,
|
||||
struct cdp_vdev *wma_find_vdev_by_addr(tp_wma_handle wma, uint8_t *addr,
|
||||
uint8_t *vdev_id)
|
||||
{
|
||||
uint8_t i;
|
||||
|
|
@ -166,7 +167,7 @@ bool wma_is_vdev_in_ibss_mode(tp_wma_handle wma, uint8_t vdev_id)
|
|||
* Return: fill vdev_id with appropriate vdev id and return vdev
|
||||
* handle or NULL if not found.
|
||||
*/
|
||||
void *wma_find_vdev_by_bssid(tp_wma_handle wma, uint8_t *bssid,
|
||||
struct cdp_vdev *wma_find_vdev_by_bssid(tp_wma_handle wma, uint8_t *bssid,
|
||||
uint8_t *vdev_id)
|
||||
{
|
||||
int i;
|
||||
|
|
@ -472,7 +473,7 @@ static QDF_STATUS wma_self_peer_remove(tp_wma_handle wma_handle,
|
|||
uint8_t generate_vdev_rsp)
|
||||
{
|
||||
void *peer;
|
||||
void *pdev;
|
||||
struct cdp_pdev *pdev;
|
||||
uint8_t peer_id;
|
||||
uint8_t vdev_id = del_sta_self_req_param->session_id;
|
||||
struct wma_target_req *msg = NULL;
|
||||
|
|
@ -489,8 +490,8 @@ static QDF_STATUS wma_self_peer_remove(tp_wma_handle wma_handle,
|
|||
}
|
||||
|
||||
peer = cdp_peer_find_by_addr(soc, pdev,
|
||||
del_sta_self_req_param->self_mac_addr,
|
||||
&peer_id);
|
||||
del_sta_self_req_param->self_mac_addr,
|
||||
&peer_id);
|
||||
if (!peer) {
|
||||
WMA_LOGE("%s Failed to find peer %pM", __func__,
|
||||
del_sta_self_req_param->self_mac_addr);
|
||||
|
|
@ -552,7 +553,8 @@ static QDF_STATUS wma_handle_vdev_detach(tp_wma_handle wma_handle,
|
|||
WMA_LOGE("vdev_id:%hu vdev_hdl:%p", vdev_id, iface->handle);
|
||||
if (!generate_rsp) {
|
||||
WMA_LOGE("Call txrx detach w/o callback for vdev %d", vdev_id);
|
||||
cdp_vdev_detach(soc, iface->handle, NULL, NULL);
|
||||
cdp_vdev_detach(soc,
|
||||
iface->handle, NULL, NULL);
|
||||
iface->handle = NULL;
|
||||
wma_handle->interfaces[vdev_id].is_vdev_valid = false;
|
||||
goto out;
|
||||
|
|
@ -581,7 +583,8 @@ static QDF_STATUS wma_handle_vdev_detach(tp_wma_handle wma_handle,
|
|||
wma_handle->wmi_cmd_rsp_runtime_lock);
|
||||
}
|
||||
WMA_LOGD("Call txrx detach with callback for vdev %d", vdev_id);
|
||||
cdp_vdev_detach(soc, iface->handle, NULL, NULL);
|
||||
cdp_vdev_detach(soc,
|
||||
iface->handle, NULL, NULL);
|
||||
iface->handle = NULL;
|
||||
wma_handle->interfaces[vdev_id].is_vdev_valid = false;
|
||||
|
||||
|
|
@ -1145,7 +1148,8 @@ peer_detach:
|
|||
*
|
||||
* Return: QDF status
|
||||
*/
|
||||
QDF_STATUS wma_create_peer(tp_wma_handle wma, void *pdev, void *vdev,
|
||||
QDF_STATUS wma_create_peer(tp_wma_handle wma, struct cdp_pdev *pdev,
|
||||
struct cdp_vdev *vdev,
|
||||
u8 peer_addr[IEEE80211_ADDR_LEN],
|
||||
uint32_t peer_type, uint8_t vdev_id,
|
||||
bool roam_synch_in_progress)
|
||||
|
|
@ -1365,7 +1369,7 @@ int wma_vdev_stop_resp_handler(void *handle, uint8_t *cmd_param_info,
|
|||
WMI_VDEV_STOPPED_EVENTID_param_tlvs *param_buf;
|
||||
wmi_vdev_stopped_event_fixed_param *resp_event;
|
||||
struct wma_target_req *req_msg;
|
||||
void *pdev;
|
||||
struct cdp_pdev *pdev;
|
||||
struct wma_txrx_node *iface;
|
||||
int32_t status = 0;
|
||||
void *soc = cds_get_context(QDF_MODULE_ID_SOC);
|
||||
|
|
@ -1528,12 +1532,12 @@ free_req_msg:
|
|||
*
|
||||
* Return: txrx vdev handle
|
||||
*/
|
||||
void *wma_vdev_attach(tp_wma_handle wma_handle,
|
||||
struct cdp_vdev *wma_vdev_attach(tp_wma_handle wma_handle,
|
||||
struct add_sta_self_params *self_sta_req,
|
||||
uint8_t generateRsp)
|
||||
{
|
||||
void *txrx_vdev_handle = NULL;
|
||||
void *txrx_pdev = cds_get_context(QDF_MODULE_ID_TXRX);
|
||||
struct cdp_vdev *txrx_vdev_handle = NULL;
|
||||
struct cdp_pdev *txrx_pdev = cds_get_context(QDF_MODULE_ID_TXRX);
|
||||
enum wlan_op_mode txrx_vdev_type;
|
||||
QDF_STATUS status = QDF_STATUS_SUCCESS;
|
||||
struct sAniSirGlobal *mac = cds_get_context(QDF_MODULE_ID_PE);
|
||||
|
|
@ -1579,10 +1583,11 @@ void *wma_vdev_attach(tp_wma_handle wma_handle,
|
|||
goto end;
|
||||
}
|
||||
|
||||
txrx_vdev_handle = cdp_vdev_attach(soc, txrx_pdev,
|
||||
self_sta_req->self_mac_addr,
|
||||
self_sta_req->session_id,
|
||||
txrx_vdev_type);
|
||||
txrx_vdev_handle = cdp_vdev_attach(soc,
|
||||
txrx_pdev,
|
||||
self_sta_req->self_mac_addr,
|
||||
self_sta_req->session_id,
|
||||
txrx_vdev_type);
|
||||
wma_handle->interfaces[self_sta_req->session_id].pause_bitmap = 0;
|
||||
|
||||
WMA_LOGD("vdev_id %hu, txrx_vdev_handle = %p", self_sta_req->session_id,
|
||||
|
|
@ -2038,8 +2043,8 @@ QDF_STATUS wma_vdev_start(tp_wma_handle wma,
|
|||
WMA_LOGD("%s, vdev_id: %d, unpausing tx_ll_queue at VDEV_START",
|
||||
__func__, params.vdev_id);
|
||||
cdp_fc_vdev_unpause(cds_get_context(QDF_MODULE_ID_SOC),
|
||||
wma->interfaces[params.vdev_id].handle,
|
||||
0xffffffff);
|
||||
wma->interfaces[params.vdev_id].handle,
|
||||
0xffffffff);
|
||||
wma->interfaces[params.vdev_id].pause_bitmap = 0;
|
||||
}
|
||||
|
||||
|
|
@ -2418,7 +2423,7 @@ void wma_vdev_resp_timer(void *data)
|
|||
{
|
||||
tp_wma_handle wma;
|
||||
struct wma_target_req *tgt_req = (struct wma_target_req *)data;
|
||||
void *pdev;
|
||||
struct cdp_pdev *pdev;
|
||||
struct wma_target_req *msg;
|
||||
QDF_STATUS status = QDF_STATUS_SUCCESS;
|
||||
struct scheduler_msg sme_msg = { 0 };
|
||||
|
|
@ -2767,8 +2772,8 @@ wma_vdev_set_bss_params(tp_wma_handle wma, int vdev_id,
|
|||
*/
|
||||
static void wma_add_bss_ap_mode(tp_wma_handle wma, tpAddBssParams add_bss)
|
||||
{
|
||||
void *pdev;
|
||||
void *vdev;
|
||||
struct cdp_pdev *pdev;
|
||||
struct cdp_vdev *vdev;
|
||||
struct wma_vdev_start_req req;
|
||||
void *peer;
|
||||
struct wma_target_req *msg;
|
||||
|
|
@ -2807,7 +2812,8 @@ static void wma_add_bss_ap_mode(tp_wma_handle wma, tpAddBssParams add_bss)
|
|||
goto send_fail_resp;
|
||||
}
|
||||
|
||||
peer = cdp_peer_find_by_addr(soc, pdev, add_bss->bssId, &peer_id);
|
||||
peer = cdp_peer_find_by_addr(soc, pdev,
|
||||
add_bss->bssId, &peer_id);
|
||||
if (!peer) {
|
||||
WMA_LOGE("%s Failed to find peer %pM", __func__,
|
||||
add_bss->bssId);
|
||||
|
|
@ -2910,8 +2916,8 @@ send_fail_resp:
|
|||
*/
|
||||
static void wma_add_bss_ibss_mode(tp_wma_handle wma, tpAddBssParams add_bss)
|
||||
{
|
||||
void *pdev;
|
||||
void *vdev;
|
||||
struct cdp_pdev *pdev;
|
||||
struct cdp_vdev *vdev;
|
||||
struct wma_vdev_start_req req;
|
||||
void *peer = NULL;
|
||||
struct wma_target_req *msg;
|
||||
|
|
@ -2947,7 +2953,8 @@ static void wma_add_bss_ibss_mode(tp_wma_handle wma, tpAddBssParams add_bss)
|
|||
WMA_LOGA("IBSS BSS peer created with mac %pM",
|
||||
add_bss->selfMacAddr);
|
||||
|
||||
peer = cdp_peer_find_by_addr(soc, pdev, add_bss->selfMacAddr, &peer_id);
|
||||
peer = cdp_peer_find_by_addr(soc, pdev,
|
||||
add_bss->selfMacAddr, &peer_id);
|
||||
if (!peer) {
|
||||
WMA_LOGE("%s Failed to find peer %pM", __func__,
|
||||
add_bss->selfMacAddr);
|
||||
|
|
@ -3065,7 +3072,7 @@ send_fail_resp:
|
|||
*/
|
||||
static void wma_add_bss_sta_mode(tp_wma_handle wma, tpAddBssParams add_bss)
|
||||
{
|
||||
void *pdev;
|
||||
struct cdp_pdev *pdev;
|
||||
struct wma_vdev_start_req req;
|
||||
struct wma_target_req *msg;
|
||||
uint8_t vdev_id = 0, peer_id;
|
||||
|
|
@ -3132,8 +3139,9 @@ static void wma_add_bss_sta_mode(tp_wma_handle wma, tpAddBssParams add_bss)
|
|||
iface->shortSlotTimeSupported = add_bss->shortSlotTimeSupported;
|
||||
iface->nwType = add_bss->nwType;
|
||||
if (add_bss->nonRoamReassoc) {
|
||||
peer = cdp_peer_find_by_addr(soc, pdev, add_bss->bssId,
|
||||
&peer_id);
|
||||
peer = cdp_peer_find_by_addr(soc,
|
||||
pdev, add_bss->bssId,
|
||||
&peer_id);
|
||||
if (peer) {
|
||||
add_bss->staContext.staIdx =
|
||||
cdp_peer_get_local_peer_id(soc, peer);
|
||||
|
|
@ -3142,11 +3150,13 @@ static void wma_add_bss_sta_mode(tp_wma_handle wma, tpAddBssParams add_bss)
|
|||
}
|
||||
if (add_bss->reassocReq) {
|
||||
#if defined(QCA_LL_LEGACY_TX_FLOW_CONTROL) || defined(QCA_LL_TX_FLOW_CONTROL_V2)
|
||||
void *vdev;
|
||||
struct cdp_vdev *vdev;
|
||||
#endif
|
||||
/* Called in preassoc state. BSSID peer is already added by set_linkstate */
|
||||
peer = cdp_peer_find_by_addr(soc, pdev, add_bss->bssId,
|
||||
&peer_id);
|
||||
peer = cdp_peer_find_by_addr(soc,
|
||||
pdev,
|
||||
add_bss->bssId,
|
||||
&peer_id);
|
||||
if (!peer) {
|
||||
WMA_LOGE("%s Failed to find peer %pM", __func__,
|
||||
add_bss->bssId);
|
||||
|
|
@ -3238,7 +3248,7 @@ static void wma_add_bss_sta_mode(tp_wma_handle wma, tpAddBssParams add_bss)
|
|||
OL_TXRX_PEER_STATE_AUTH);
|
||||
} else {
|
||||
#if defined(QCA_LL_LEGACY_TX_FLOW_CONTROL) || defined(QCA_LL_TX_FLOW_CONTROL_V2)
|
||||
void *vdev;
|
||||
struct cdp_vdev *vdev;
|
||||
#endif
|
||||
WMA_LOGD("%s: Update peer(%pM) state into conn",
|
||||
__func__, add_bss->bssId);
|
||||
|
|
@ -3246,7 +3256,7 @@ static void wma_add_bss_sta_mode(tp_wma_handle wma, tpAddBssParams add_bss)
|
|||
OL_TXRX_PEER_STATE_CONN);
|
||||
#if defined(QCA_LL_LEGACY_TX_FLOW_CONTROL) || defined(QCA_LL_TX_FLOW_CONTROL_V2)
|
||||
peer = cdp_peer_find_by_addr(soc, pdev, add_bss->bssId,
|
||||
&peer_id);
|
||||
&peer_id);
|
||||
if (!peer) {
|
||||
WMA_LOGE("%s:%d Failed to find peer %pM",
|
||||
__func__, __LINE__, add_bss->bssId);
|
||||
|
|
@ -3315,7 +3325,7 @@ static void wma_add_bss_sta_mode(tp_wma_handle wma, tpAddBssParams add_bss)
|
|||
}
|
||||
send_bss_resp:
|
||||
cdp_peer_find_by_addr(soc, pdev, add_bss->bssId,
|
||||
&add_bss->staContext.staIdx);
|
||||
&add_bss->staContext.staIdx);
|
||||
add_bss->status = (add_bss->staContext.staIdx < 0) ?
|
||||
QDF_STATUS_E_FAILURE : QDF_STATUS_SUCCESS;
|
||||
add_bss->bssIdx = add_bss->staContext.smesessionId;
|
||||
|
|
@ -3413,8 +3423,8 @@ void wma_add_bss(tp_wma_handle wma, tpAddBssParams params)
|
|||
static void wma_add_sta_req_ap_mode(tp_wma_handle wma, tpAddStaParams add_sta)
|
||||
{
|
||||
enum ol_txrx_peer_state state = OL_TXRX_PEER_STATE_CONN;
|
||||
void *pdev;
|
||||
void *vdev;
|
||||
struct cdp_pdev *pdev;
|
||||
struct cdp_vdev *vdev;
|
||||
void *peer;
|
||||
uint8_t peer_id;
|
||||
QDF_STATUS status;
|
||||
|
|
@ -3454,7 +3464,7 @@ static void wma_add_sta_req_ap_mode(tp_wma_handle wma, tpAddStaParams add_sta)
|
|||
|
||||
iface = &wma->interfaces[add_sta->smesessionId];
|
||||
peer = cdp_peer_find_by_addr_and_vdev(soc, pdev, vdev,
|
||||
add_sta->staMac, &peer_id);
|
||||
add_sta->staMac, &peer_id);
|
||||
if (peer) {
|
||||
wma_remove_peer(wma, add_sta->staMac, add_sta->smesessionId,
|
||||
peer, false);
|
||||
|
|
@ -3467,7 +3477,8 @@ static void wma_add_sta_req_ap_mode(tp_wma_handle wma, tpAddStaParams add_sta)
|
|||
* exists on the pDev. As this peer belongs to other vDevs, just return
|
||||
* here.
|
||||
*/
|
||||
peer = cdp_peer_find_by_addr(soc, pdev, add_sta->staMac, &peer_id);
|
||||
peer = cdp_peer_find_by_addr(soc, pdev,
|
||||
add_sta->staMac, &peer_id);
|
||||
if (peer) {
|
||||
WMA_LOGE("%s: My vdev:%p, but Peer exists on other vdev with "
|
||||
"peer_addr %pM and peer_id %d",
|
||||
|
|
@ -3486,8 +3497,9 @@ static void wma_add_sta_req_ap_mode(tp_wma_handle wma, tpAddStaParams add_sta)
|
|||
goto send_rsp;
|
||||
}
|
||||
|
||||
peer = cdp_peer_find_by_addr_and_vdev(soc, pdev, vdev,
|
||||
add_sta->staMac, &peer_id);
|
||||
peer = cdp_peer_find_by_addr_and_vdev(soc, pdev,
|
||||
vdev,
|
||||
add_sta->staMac, &peer_id);
|
||||
if (!peer) {
|
||||
WMA_LOGE("%s: Failed to find peer handle using peer mac %pM",
|
||||
__func__, add_sta->staMac);
|
||||
|
|
@ -3627,8 +3639,8 @@ send_rsp:
|
|||
*/
|
||||
static void wma_add_tdls_sta(tp_wma_handle wma, tpAddStaParams add_sta)
|
||||
{
|
||||
void *pdev;
|
||||
void *vdev;
|
||||
struct cdp_pdev *pdev;
|
||||
struct cdp_vdev *vdev;
|
||||
void *peer;
|
||||
uint8_t peer_id;
|
||||
QDF_STATUS status;
|
||||
|
|
@ -3676,8 +3688,9 @@ static void wma_add_tdls_sta(tp_wma_handle wma, tpAddStaParams add_sta)
|
|||
goto send_rsp;
|
||||
}
|
||||
|
||||
peer = cdp_peer_find_by_addr(soc, pdev, add_sta->staMac,
|
||||
&peer_id);
|
||||
peer = cdp_peer_find_by_addr(soc, pdev,
|
||||
add_sta->staMac,
|
||||
&peer_id);
|
||||
if (!peer) {
|
||||
WMA_LOGE("%s: addSta, failed to find peer handle for mac %pM",
|
||||
__func__, add_sta->staMac);
|
||||
|
|
@ -3711,8 +3724,9 @@ static void wma_add_tdls_sta(tp_wma_handle wma, tpAddStaParams add_sta)
|
|||
} else {
|
||||
/* its a change sta request * */
|
||||
peer =
|
||||
cdp_peer_find_by_addr(soc, pdev, add_sta->staMac,
|
||||
&peer_id);
|
||||
cdp_peer_find_by_addr(soc, pdev,
|
||||
add_sta->staMac,
|
||||
&peer_id);
|
||||
if (!peer) {
|
||||
WMA_LOGE("%s: changeSta,failed to find peer handle for mac %pM",
|
||||
__func__, add_sta->staMac);
|
||||
|
|
@ -3784,7 +3798,7 @@ send_rsp:
|
|||
*/
|
||||
static void wma_add_sta_req_sta_mode(tp_wma_handle wma, tpAddStaParams params)
|
||||
{
|
||||
void *pdev;
|
||||
struct cdp_pdev *pdev;
|
||||
QDF_STATUS status = QDF_STATUS_SUCCESS;
|
||||
void *peer;
|
||||
struct wma_txrx_node *iface;
|
||||
|
|
@ -3817,7 +3831,9 @@ static void wma_add_sta_req_sta_mode(tp_wma_handle wma, tpAddStaParams params)
|
|||
__func__, params->staType);
|
||||
goto out;
|
||||
}
|
||||
peer = cdp_peer_find_by_addr(soc, pdev, params->bssId, ¶ms->staIdx);
|
||||
peer = cdp_peer_find_by_addr(soc,
|
||||
pdev,
|
||||
params->bssId, ¶ms->staIdx);
|
||||
if (peer == NULL) {
|
||||
WMA_LOGE("%s: Peer is not present vdev id %d for %pM", __func__,
|
||||
params->smesessionId, params->bssId);
|
||||
|
|
@ -4032,7 +4048,7 @@ out:
|
|||
static void wma_delete_sta_req_ap_mode(tp_wma_handle wma,
|
||||
tpDeleteStaParams del_sta)
|
||||
{
|
||||
void *pdev;
|
||||
struct cdp_pdev *pdev;
|
||||
void *peer;
|
||||
struct wma_target_req *msg;
|
||||
uint8_t *peer_mac_addr;
|
||||
|
|
@ -4046,7 +4062,8 @@ static void wma_delete_sta_req_ap_mode(tp_wma_handle wma,
|
|||
goto send_del_rsp;
|
||||
}
|
||||
|
||||
peer = cdp_peer_find_by_local_id(soc, pdev, del_sta->staIdx);
|
||||
peer = cdp_peer_find_by_local_id(soc,
|
||||
pdev, del_sta->staIdx);
|
||||
if (!peer) {
|
||||
WMA_LOGE("%s: Failed to get peer handle using peer id %d",
|
||||
__func__, del_sta->staIdx);
|
||||
|
|
@ -4293,11 +4310,11 @@ void wma_delete_sta(tp_wma_handle wma, tpDeleteStaParams del_sta)
|
|||
*/
|
||||
void wma_delete_bss_ho_fail(tp_wma_handle wma, tpDeleteBssParams params)
|
||||
{
|
||||
void *pdev;
|
||||
struct cdp_pdev *pdev;
|
||||
void *peer = NULL;
|
||||
QDF_STATUS status = QDF_STATUS_SUCCESS;
|
||||
uint8_t peer_id;
|
||||
void *txrx_vdev = NULL;
|
||||
struct cdp_vdev *txrx_vdev = NULL;
|
||||
struct wma_txrx_node *iface;
|
||||
void *soc = cds_get_context(QDF_MODULE_ID_SOC);
|
||||
|
||||
|
|
@ -4308,7 +4325,9 @@ void wma_delete_bss_ho_fail(tp_wma_handle wma, tpDeleteBssParams params)
|
|||
goto fail_del_bss_ho_fail;
|
||||
}
|
||||
|
||||
peer = cdp_peer_find_by_addr(soc, pdev, params->bssid, &peer_id);
|
||||
peer = cdp_peer_find_by_addr(soc,
|
||||
pdev,
|
||||
params->bssid, &peer_id);
|
||||
if (!peer) {
|
||||
WMA_LOGP("%s: Failed to find peer %pM", __func__,
|
||||
params->bssid);
|
||||
|
|
@ -4390,13 +4409,13 @@ fail_del_bss_ho_fail:
|
|||
*/
|
||||
void wma_delete_bss(tp_wma_handle wma, tpDeleteBssParams params)
|
||||
{
|
||||
void *pdev;
|
||||
struct cdp_pdev *pdev;
|
||||
void *peer = NULL;
|
||||
struct wma_target_req *msg;
|
||||
QDF_STATUS status = QDF_STATUS_SUCCESS;
|
||||
uint8_t peer_id;
|
||||
uint8_t max_wait_iterations = 0;
|
||||
void *txrx_vdev = NULL;
|
||||
struct cdp_vdev *txrx_vdev = NULL;
|
||||
bool roam_synch_in_progress = false;
|
||||
struct wma_txrx_node *iface;
|
||||
void *soc = cds_get_context(QDF_MODULE_ID_SOC);
|
||||
|
|
@ -4409,7 +4428,8 @@ void wma_delete_bss(tp_wma_handle wma, tpDeleteBssParams params)
|
|||
}
|
||||
if (wma_is_vdev_in_ibss_mode(wma, params->smesessionId))
|
||||
/* in rome ibss case, self mac is used to create the bss peer */
|
||||
peer = cdp_peer_find_by_addr(soc, pdev,
|
||||
peer = cdp_peer_find_by_addr(soc,
|
||||
pdev,
|
||||
wma->interfaces[params->smesessionId].addr,
|
||||
&peer_id);
|
||||
else if (WMA_IS_VDEV_IN_NDI_MODE(wma->interfaces,
|
||||
|
|
@ -4419,8 +4439,9 @@ void wma_delete_bss(tp_wma_handle wma, tpDeleteBssParams params)
|
|||
wma->interfaces[params->smesessionId].addr,
|
||||
&peer_id);
|
||||
else
|
||||
peer = cdp_peer_find_by_addr(soc, pdev, params->bssid,
|
||||
&peer_id);
|
||||
peer = cdp_peer_find_by_addr(soc, pdev,
|
||||
params->bssid,
|
||||
&peer_id);
|
||||
|
||||
if (!peer) {
|
||||
WMA_LOGP("%s: Failed to find peer %pM", __func__,
|
||||
|
|
@ -4498,8 +4519,9 @@ void wma_delete_bss(tp_wma_handle wma, tpDeleteBssParams params)
|
|||
WMA_LOGD("%s, vdev_id: %d, pausing tx_ll_queue for VDEV_STOP (del_bss)",
|
||||
__func__, params->smesessionId);
|
||||
iface->pause_bitmap |= (1 << PAUSE_TYPE_HOST);
|
||||
cdp_fc_vdev_pause(soc, wma->interfaces[params->smesessionId].handle,
|
||||
OL_TXQ_PAUSE_REASON_VDEV_STOP);
|
||||
cdp_fc_vdev_pause(soc,
|
||||
wma->interfaces[params->smesessionId].handle,
|
||||
OL_TXQ_PAUSE_REASON_VDEV_STOP);
|
||||
iface->pause_bitmap |= (1 << PAUSE_TYPE_HOST);
|
||||
|
||||
if (wmi_unified_vdev_stop_send(wma->wmi_handle, params->smesessionId)) {
|
||||
|
|
@ -4555,7 +4577,7 @@ int32_t wma_find_vdev_by_type(tp_wma_handle wma, int32_t type)
|
|||
void wma_set_vdev_intrabss_fwd(tp_wma_handle wma_handle,
|
||||
tpDisableIntraBssFwd pdis_intra_fwd)
|
||||
{
|
||||
void *txrx_vdev;
|
||||
struct cdp_vdev *txrx_vdev;
|
||||
WMA_LOGD("%s:intra_fwd:vdev(%d) intrabss_dis=%s",
|
||||
__func__, pdis_intra_fwd->sessionId,
|
||||
(pdis_intra_fwd->disableintrabssfwd ? "true" : "false"));
|
||||
|
|
|
|||
|
|
@ -69,7 +69,7 @@
|
|||
#include "radar_filters.h"
|
||||
#include "wma_internal.h"
|
||||
#include "wma_nan_datapath.h"
|
||||
|
||||
#include <cdp_txrx_handle.h>
|
||||
#ifndef ARRAY_LENGTH
|
||||
#define ARRAY_LENGTH(a) (sizeof(a) / sizeof((a)[0]))
|
||||
#endif
|
||||
|
|
@ -4868,7 +4868,7 @@ static QDF_STATUS wma_set_tsm_interval(tAddTsParams *req)
|
|||
*
|
||||
*/
|
||||
uint32_t interval_milliseconds;
|
||||
void *pdev = cds_get_context(QDF_MODULE_ID_TXRX);
|
||||
struct cdp_pdev *pdev = cds_get_context(QDF_MODULE_ID_TXRX);
|
||||
if (NULL == pdev) {
|
||||
WMA_LOGE("%s: Failed to get pdev", __func__);
|
||||
return QDF_STATUS_E_FAILURE;
|
||||
|
|
@ -4877,7 +4877,8 @@ static QDF_STATUS wma_set_tsm_interval(tAddTsParams *req)
|
|||
interval_milliseconds = (req->tsm_interval * 1024) / 1000;
|
||||
|
||||
cdp_tx_set_compute_interval(cds_get_context(QDF_MODULE_ID_SOC),
|
||||
pdev, interval_milliseconds);
|
||||
pdev,
|
||||
interval_milliseconds);
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
#else
|
||||
|
|
@ -5057,7 +5058,7 @@ QDF_STATUS wma_process_tsm_stats_req(tp_wma_handle wma_handler,
|
|||
* than required by TSM, hence different (6) size array used
|
||||
*/
|
||||
uint16_t bin_values[QCA_TX_DELAY_HIST_REPORT_BINS] = { 0, };
|
||||
void *pdev = cds_get_context(QDF_MODULE_ID_TXRX);
|
||||
struct cdp_pdev *pdev = cds_get_context(QDF_MODULE_ID_TXRX);
|
||||
void *soc = cds_get_context(QDF_MODULE_ID_SOC);
|
||||
|
||||
if (NULL == pdev) {
|
||||
|
|
@ -5067,9 +5068,17 @@ QDF_STATUS wma_process_tsm_stats_req(tp_wma_handle wma_handler,
|
|||
}
|
||||
|
||||
/* get required values from data path APIs */
|
||||
cdp_tx_delay(soc, pdev, &queue_delay_microsec, &tx_delay_microsec, tid);
|
||||
cdp_tx_delay_hist(soc, pdev, bin_values, tid);
|
||||
cdp_tx_packet_count(soc, pdev, &packet_count, &packet_loss_count, tid);
|
||||
cdp_tx_delay(soc,
|
||||
pdev,
|
||||
&queue_delay_microsec,
|
||||
&tx_delay_microsec, tid);
|
||||
cdp_tx_delay_hist(soc,
|
||||
pdev,
|
||||
bin_values, tid);
|
||||
cdp_tx_packet_count(soc,
|
||||
pdev,
|
||||
&packet_count,
|
||||
&packet_loss_count, tid);
|
||||
|
||||
pTsmRspParams = qdf_mem_malloc(sizeof(*pTsmRspParams));
|
||||
if (NULL == pTsmRspParams) {
|
||||
|
|
@ -5578,7 +5587,7 @@ QDF_STATUS wma_process_get_peer_info_req
|
|||
uint16_t len;
|
||||
wmi_buf_t buf;
|
||||
int32_t vdev_id;
|
||||
void *pdev;
|
||||
struct cdp_pdev *pdev;
|
||||
void *peer;
|
||||
void *soc = cds_get_context(QDF_MODULE_ID_SOC);
|
||||
uint8_t peer_mac[IEEE80211_ADDR_LEN];
|
||||
|
|
@ -5610,7 +5619,8 @@ QDF_STATUS wma_process_get_peer_info_req
|
|||
qdf_mem_copy(peer_mac, bcast_mac, IEEE80211_ADDR_LEN);
|
||||
} else {
|
||||
/*get info for a single peer */
|
||||
peer = cdp_peer_find_by_local_id(soc, pdev, pReq->staIdx);
|
||||
peer = cdp_peer_find_by_local_id(soc,
|
||||
pdev, pReq->staIdx);
|
||||
if (!peer) {
|
||||
WMA_LOGE("%s: Failed to get peer handle using peer id %d",
|
||||
__func__, pReq->staIdx);
|
||||
|
|
@ -7152,7 +7162,7 @@ int wma_update_tdls_peer_state(WMA_HANDLE handle,
|
|||
{
|
||||
tp_wma_handle wma_handle = (tp_wma_handle) handle;
|
||||
uint32_t i;
|
||||
void *pdev;
|
||||
struct cdp_pdev *pdev;
|
||||
uint8_t peer_id;
|
||||
void *peer;
|
||||
void *soc = cds_get_context(QDF_MODULE_ID_SOC);
|
||||
|
|
@ -7213,9 +7223,10 @@ int wma_update_tdls_peer_state(WMA_HANDLE handle,
|
|||
goto end_tdls_peer_state;
|
||||
}
|
||||
|
||||
peer = cdp_peer_find_by_addr(soc, pdev,
|
||||
peerStateParams->peerMacAddr,
|
||||
&peer_id);
|
||||
peer = cdp_peer_find_by_addr(soc,
|
||||
pdev,
|
||||
peerStateParams->peerMacAddr,
|
||||
&peer_id);
|
||||
if (!peer) {
|
||||
WMA_LOGE("%s: Failed to get peer handle using peer mac %pM",
|
||||
__func__, peerStateParams->peerMacAddr);
|
||||
|
|
@ -7238,8 +7249,9 @@ int wma_update_tdls_peer_state(WMA_HANDLE handle,
|
|||
peerStateParams->vdevId);
|
||||
wma_remove_peer(wma_handle, peer_mac_addr,
|
||||
peerStateParams->vdevId, peer, false);
|
||||
cdp_peer_update_last_real_peer(soc, pdev, peer, &peer_id,
|
||||
restore_last_peer);
|
||||
cdp_peer_update_last_real_peer(soc,
|
||||
pdev, peer, &peer_id,
|
||||
restore_last_peer);
|
||||
}
|
||||
|
||||
end_tdls_peer_state:
|
||||
|
|
|
|||
|
|
@ -84,6 +84,7 @@
|
|||
#include "target_if.h"
|
||||
|
||||
|
||||
#include <cdp_txrx_handle.h>
|
||||
#define WMA_LOG_COMPLETION_TIMER 10000 /* 10 seconds */
|
||||
|
||||
#define WMI_TLV_HEADROOM 128
|
||||
|
|
@ -745,14 +746,15 @@ static int32_t wma_set_priv_cfg(tp_wma_handle wma_handle,
|
|||
|
||||
case WMA_VDEV_TXRX_GET_IPA_UC_FW_STATS_CMDID:
|
||||
{
|
||||
void *pdev;
|
||||
struct cdp_pdev *pdev;
|
||||
|
||||
pdev = cds_get_context(QDF_MODULE_ID_TXRX);
|
||||
if (!pdev) {
|
||||
WMA_LOGE("pdev NULL for uc stat");
|
||||
return -EINVAL;
|
||||
}
|
||||
cdp_ipa_get_stat(cds_get_context(QDF_MODULE_ID_SOC), pdev);
|
||||
cdp_ipa_get_stat(cds_get_context(QDF_MODULE_ID_SOC),
|
||||
pdev);
|
||||
}
|
||||
break;
|
||||
|
||||
|
|
@ -917,7 +919,7 @@ static void wma_process_cli_set_cmd(tp_wma_handle wma,
|
|||
break;
|
||||
case GEN_CMD:
|
||||
{
|
||||
void *vdev = NULL;
|
||||
struct cdp_vdev *vdev = NULL;
|
||||
struct wma_txrx_node *intr = wma->interfaces;
|
||||
|
||||
vdev = wma_find_vdev_by_id(wma, privcmd->param_vdev_id);
|
||||
|
|
@ -3218,7 +3220,8 @@ QDF_STATUS wma_stop(void *cds_ctx, uint8_t reason)
|
|||
wma_handle->interfaces[i].vdev_up) {
|
||||
cdp_fc_vdev_flush(
|
||||
cds_get_context(QDF_MODULE_ID_SOC),
|
||||
wma_handle->interfaces[i].handle);
|
||||
wma_handle->
|
||||
interfaces[i].handle);
|
||||
}
|
||||
}
|
||||
qdf_status = wma_tx_detach(wma_handle);
|
||||
|
|
@ -3785,16 +3788,16 @@ static inline void wma_update_target_services(tp_wma_handle wh,
|
|||
if (WMI_SERVICE_IS_ENABLED(wh->wmi_service_bitmap,
|
||||
WMI_SERVICE_TX_MSDU_ID_NEW_PARTITION_SUPPORT)) {
|
||||
cdp_ipa_set_uc_tx_partition_base(
|
||||
cds_get_context(QDF_MODULE_ID_SOC),
|
||||
cds_get_context(QDF_MODULE_ID_CFG),
|
||||
HTT_TX_IPA_NEW_MSDU_ID_SPACE_BEGIN);
|
||||
cds_get_context(QDF_MODULE_ID_SOC),
|
||||
(struct cdp_cfg *)cds_get_context(QDF_MODULE_ID_CFG),
|
||||
HTT_TX_IPA_NEW_MSDU_ID_SPACE_BEGIN);
|
||||
WMA_LOGI("%s: TX_MSDU_ID_NEW_PARTITION=%d", __func__,
|
||||
HTT_TX_IPA_NEW_MSDU_ID_SPACE_BEGIN);
|
||||
} else {
|
||||
cdp_ipa_set_uc_tx_partition_base(
|
||||
cds_get_context(QDF_MODULE_ID_SOC),
|
||||
cds_get_context(QDF_MODULE_ID_CFG),
|
||||
HTT_TX_IPA_MSDU_ID_SPACE_BEGIN);
|
||||
cds_get_context(QDF_MODULE_ID_SOC),
|
||||
(struct cdp_cfg *)cds_get_context(QDF_MODULE_ID_CFG),
|
||||
HTT_TX_IPA_MSDU_ID_SPACE_BEGIN);
|
||||
WMA_LOGI("%s: TX_MSDU_ID_OLD_PARTITION=%d", __func__,
|
||||
HTT_TX_IPA_MSDU_ID_SPACE_BEGIN);
|
||||
}
|
||||
|
|
@ -6251,7 +6254,7 @@ QDF_STATUS wma_mc_process_msg(void *cds_context, struct scheduler_msg *msg)
|
|||
{
|
||||
QDF_STATUS qdf_status = QDF_STATUS_SUCCESS;
|
||||
tp_wma_handle wma_handle;
|
||||
void *txrx_vdev_handle = NULL;
|
||||
struct cdp_vdev *txrx_vdev_handle = NULL;
|
||||
extern uint8_t *mac_trace_get_wma_msg_string(uint16_t wmaMsg);
|
||||
void *soc = cds_get_context(QDF_MODULE_ID_SOC);
|
||||
|
||||
|
|
|
|||
|
|
@ -76,7 +76,7 @@
|
|||
#include "wlan_objmgr_pdev_obj.h"
|
||||
#include "wlan_objmgr_vdev_obj.h"
|
||||
#include "wlan_lmac_if_api.h"
|
||||
|
||||
#include <cdp_txrx_handle.h>
|
||||
|
||||
/**
|
||||
* wma_send_bcn_buf_ll() - prepare and send beacon buffer to fw for LL
|
||||
|
|
@ -88,7 +88,7 @@
|
|||
* Return: none
|
||||
*/
|
||||
static void wma_send_bcn_buf_ll(tp_wma_handle wma,
|
||||
void *pdev,
|
||||
struct cdp_pdev *pdev,
|
||||
uint8_t vdev_id,
|
||||
WMI_HOST_SWBA_EVENTID_param_tlvs *param_buf)
|
||||
{
|
||||
|
|
@ -247,7 +247,7 @@ int wma_beacon_swba_handler(void *handle, uint8_t *event, uint32_t len)
|
|||
WMI_HOST_SWBA_EVENTID_param_tlvs *param_buf;
|
||||
wmi_host_swba_event_fixed_param *swba_event;
|
||||
uint32_t vdev_map;
|
||||
void *pdev;
|
||||
struct cdp_pdev *pdev;
|
||||
uint8_t vdev_id = 0;
|
||||
void *soc = cds_get_context(QDF_MODULE_ID_SOC);
|
||||
|
||||
|
|
@ -269,7 +269,7 @@ int wma_beacon_swba_handler(void *handle, uint8_t *event, uint32_t len)
|
|||
if (!(vdev_map & 0x1))
|
||||
continue;
|
||||
if (!cdp_cfg_is_high_latency(soc,
|
||||
cds_get_context(QDF_MODULE_ID_CFG)))
|
||||
(struct cdp_cfg *)cds_get_context(QDF_MODULE_ID_CFG)))
|
||||
wma_send_bcn_buf_ll(wma, pdev, vdev_id, param_buf);
|
||||
break;
|
||||
}
|
||||
|
|
@ -295,7 +295,7 @@ int wma_peer_sta_kickout_event_handler(void *handle, u8 *event, u32 len)
|
|||
wmi_peer_sta_kickout_event_fixed_param *kickout_event = NULL;
|
||||
uint8_t vdev_id, peer_id, macaddr[IEEE80211_ADDR_LEN];
|
||||
void *peer;
|
||||
void *pdev;
|
||||
struct cdp_pdev *pdev;
|
||||
tpDeleteStaContext del_sta_ctx;
|
||||
tpSirIbssPeerInactivityInd p_inactivity;
|
||||
void *soc = cds_get_context(QDF_MODULE_ID_SOC);
|
||||
|
|
@ -309,7 +309,7 @@ int wma_peer_sta_kickout_event_handler(void *handle, u8 *event, u32 len)
|
|||
return -EINVAL;
|
||||
}
|
||||
WMI_MAC_ADDR_TO_CHAR_ARRAY(&kickout_event->peer_macaddr, macaddr);
|
||||
peer = cdp_peer_find_by_addr(soc, pdev, macaddr, &peer_id);
|
||||
peer = cdp_peer_find_by_addr(soc, pdev, macaddr, &peer_id);
|
||||
if (!peer) {
|
||||
WMA_LOGE("PEER [%pM] not found", macaddr);
|
||||
return -EINVAL;
|
||||
|
|
@ -781,7 +781,7 @@ static inline uint8_t wma_parse_mpdudensity(uint8_t mpdudensity)
|
|||
*/
|
||||
static void
|
||||
wma_unified_peer_state_update(
|
||||
void *pdev,
|
||||
struct cdp_pdev *pdev,
|
||||
uint8_t *sta_mac,
|
||||
uint8_t *bss_addr,
|
||||
uint8_t sta_type)
|
||||
|
|
@ -799,7 +799,7 @@ wma_unified_peer_state_update(
|
|||
|
||||
static inline void
|
||||
wma_unified_peer_state_update(
|
||||
void *pdev,
|
||||
struct cdp_pdev *pdev,
|
||||
uint8_t *sta_mac,
|
||||
uint8_t *bss_addr,
|
||||
uint8_t sta_type)
|
||||
|
|
@ -825,7 +825,7 @@ QDF_STATUS wma_send_peer_assoc(tp_wma_handle wma,
|
|||
tSirNwType nw_type,
|
||||
tpAddStaParams params)
|
||||
{
|
||||
void *pdev;
|
||||
struct cdp_pdev *pdev;
|
||||
struct peer_assoc_params *cmd;
|
||||
int32_t ret, max_rates, i;
|
||||
uint8_t rx_stbc, tx_stbc;
|
||||
|
|
@ -1536,7 +1536,7 @@ void wma_set_bsskey(tp_wma_handle wma_handle, tpSetBssKeyParams key_info)
|
|||
uint32_t i;
|
||||
uint32_t def_key_idx = 0;
|
||||
uint32_t wlan_opmode;
|
||||
void *txrx_vdev;
|
||||
struct cdp_vdev *txrx_vdev;
|
||||
uint8_t *mac_addr;
|
||||
void *soc = cds_get_context(QDF_MODULE_ID_SOC);
|
||||
|
||||
|
|
@ -1573,7 +1573,8 @@ void wma_set_bsskey(tp_wma_handle wma_handle, tpSetBssKeyParams key_info)
|
|||
wma_handle->interfaces[key_info->smesessionId].bssid,
|
||||
IEEE80211_ADDR_LEN);
|
||||
} else {
|
||||
mac_addr = cdp_get_vdev_mac_addr(soc, txrx_vdev);
|
||||
mac_addr = cdp_get_vdev_mac_addr(soc,
|
||||
txrx_vdev);
|
||||
if (mac_addr == NULL) {
|
||||
WMA_LOGE("%s: mac_addr is NULL for vdev with id %d",
|
||||
__func__, key_info->smesessionId);
|
||||
|
|
@ -1681,7 +1682,7 @@ void wma_adjust_ibss_heart_beat_timer(tp_wma_handle wma,
|
|||
uint8_t vdev_id,
|
||||
int8_t peer_num_delta)
|
||||
{
|
||||
void *vdev;
|
||||
struct cdp_vdev *vdev;
|
||||
int16_t new_peer_num;
|
||||
uint16_t new_timer_value_sec;
|
||||
uint32_t new_timer_value_ms;
|
||||
|
|
@ -1700,8 +1701,8 @@ void wma_adjust_ibss_heart_beat_timer(tp_wma_handle wma,
|
|||
}
|
||||
|
||||
/* adjust peer numbers */
|
||||
new_peer_num = cdp_peer_update_ibss_add_peer_num_of_vdev(soc, vdev,
|
||||
peer_num_delta);
|
||||
new_peer_num = cdp_peer_update_ibss_add_peer_num_of_vdev(soc,
|
||||
vdev, peer_num_delta);
|
||||
if (OL_TXRX_INVALID_NUM_PEERS == new_peer_num) {
|
||||
WMA_LOGE("new peer num %d out of valid boundary", new_peer_num);
|
||||
return;
|
||||
|
|
@ -1721,7 +1722,8 @@ void wma_adjust_ibss_heart_beat_timer(tp_wma_handle wma,
|
|||
return;
|
||||
}
|
||||
if (new_timer_value_sec ==
|
||||
cdp_set_ibss_vdev_heart_beat_timer(soc, vdev, new_timer_value_sec)) {
|
||||
cdp_set_ibss_vdev_heart_beat_timer(soc,
|
||||
vdev, new_timer_value_sec)) {
|
||||
WMA_LOGD("timer value %d stays same, no need to notify target",
|
||||
new_timer_value_sec);
|
||||
return;
|
||||
|
|
@ -1758,7 +1760,7 @@ static void wma_set_ibsskey_helper(tp_wma_handle wma_handle,
|
|||
QDF_STATUS status = QDF_STATUS_SUCCESS;
|
||||
uint32_t i;
|
||||
uint32_t def_key_idx = 0;
|
||||
void *txrx_vdev;
|
||||
struct cdp_vdev *txrx_vdev;
|
||||
int opmode;
|
||||
void *soc = cds_get_context(QDF_MODULE_ID_SOC);
|
||||
|
||||
|
|
@ -1842,8 +1844,8 @@ void wma_set_stakey(tp_wma_handle wma_handle, tpSetStaKeyParams key_info)
|
|||
{
|
||||
int32_t i;
|
||||
QDF_STATUS status = QDF_STATUS_SUCCESS;
|
||||
void *txrx_pdev;
|
||||
void *txrx_vdev;
|
||||
struct cdp_pdev *txrx_pdev;
|
||||
struct cdp_vdev *txrx_vdev;
|
||||
void *peer;
|
||||
uint8_t num_keys = 0, peer_id;
|
||||
struct wma_set_key_params key_params;
|
||||
|
|
@ -1862,8 +1864,8 @@ void wma_set_stakey(tp_wma_handle wma_handle, tpSetStaKeyParams key_info)
|
|||
}
|
||||
|
||||
peer = cdp_peer_find_by_addr(soc, txrx_pdev,
|
||||
key_info->peer_macaddr.bytes,
|
||||
&peer_id);
|
||||
key_info->peer_macaddr.bytes,
|
||||
&peer_id);
|
||||
if (!peer) {
|
||||
WMA_LOGE("%s:Invalid peer for key setting", __func__);
|
||||
key_info->status = QDF_STATUS_E_FAILURE;
|
||||
|
|
@ -1979,7 +1981,7 @@ QDF_STATUS wma_process_update_edca_param_req(WMA_HANDLE handle,
|
|||
wmi_wmm_vparams wmm_param[WME_NUM_AC];
|
||||
tSirMacEdcaParamRecord *edca_record;
|
||||
int ac;
|
||||
void *pdev;
|
||||
struct cdp_pdev *pdev;
|
||||
struct ol_tx_wmm_param_t ol_tx_wmm_param;
|
||||
uint8_t vdev_id;
|
||||
QDF_STATUS status;
|
||||
|
|
@ -2020,7 +2022,8 @@ QDF_STATUS wma_process_update_edca_param_req(WMA_HANDLE handle,
|
|||
|
||||
pdev = cds_get_context(QDF_MODULE_ID_TXRX);
|
||||
if (pdev)
|
||||
cdp_set_wmm_param(soc, pdev, ol_tx_wmm_param);
|
||||
cdp_set_wmm_param(soc, (struct cdp_pdev *)pdev,
|
||||
ol_tx_wmm_param);
|
||||
else
|
||||
QDF_ASSERT(0);
|
||||
|
||||
|
|
@ -2328,7 +2331,7 @@ static int wma_p2p_go_set_beacon_ie(t_wma_handle *wma_handle,
|
|||
void wma_send_probe_rsp_tmpl(tp_wma_handle wma,
|
||||
tpSendProbeRespParams probe_rsp_info)
|
||||
{
|
||||
void *vdev;
|
||||
struct cdp_vdev *vdev;
|
||||
uint8_t vdev_id;
|
||||
tpAniProbeRspStruct probe_rsp;
|
||||
|
||||
|
|
@ -2372,7 +2375,7 @@ void wma_send_probe_rsp_tmpl(tp_wma_handle wma,
|
|||
*/
|
||||
void wma_send_beacon(tp_wma_handle wma, tpSendbeaconParams bcn_info)
|
||||
{
|
||||
void *vdev;
|
||||
struct cdp_vdev *vdev;
|
||||
uint8_t vdev_id;
|
||||
QDF_STATUS status;
|
||||
uint8_t *p2p_ie;
|
||||
|
|
@ -2803,8 +2806,10 @@ void wma_hidden_ssid_vdev_restart(tp_wma_handle wma_handle,
|
|||
/* vdev stop -> vdev restart -> vdev up */
|
||||
WMA_LOGD("%s, vdev_id: %d, pausing tx_ll_queue for VDEV_STOP",
|
||||
__func__, pReq->sessionId);
|
||||
cdp_fc_vdev_pause(soc, wma_handle->interfaces[pReq->sessionId].handle,
|
||||
OL_TXQ_PAUSE_REASON_VDEV_STOP);
|
||||
cdp_fc_vdev_pause(soc,
|
||||
wma_handle->
|
||||
interfaces[pReq->sessionId].handle,
|
||||
OL_TXQ_PAUSE_REASON_VDEV_STOP);
|
||||
wma_handle->interfaces[pReq->sessionId].pause_bitmap |=
|
||||
(1 << PAUSE_TYPE_HOST);
|
||||
if (wmi_unified_vdev_stop_send(wma_handle->wmi_handle, pReq->sessionId)) {
|
||||
|
|
@ -2871,8 +2876,8 @@ static bool
|
|||
wma_is_ccmp_pn_replay_attack(void *cds_ctx, struct ieee80211_frame *wh,
|
||||
uint8_t *ccmp_ptr)
|
||||
{
|
||||
void *pdev;
|
||||
void *vdev;
|
||||
struct cdp_pdev *pdev;
|
||||
struct cdp_vdev *vdev;
|
||||
void *peer;
|
||||
uint8_t vdev_id, peer_id;
|
||||
uint8_t *last_pn_valid;
|
||||
|
|
@ -2893,8 +2898,8 @@ wma_is_ccmp_pn_replay_attack(void *cds_ctx, struct ieee80211_frame *wh,
|
|||
}
|
||||
|
||||
/* Retrieve the peer based on vdev and addr */
|
||||
peer = cdp_peer_find_by_addr_and_vdev(soc, pdev, vdev, wh->i_addr2,
|
||||
&peer_id);
|
||||
peer = cdp_peer_find_by_addr_and_vdev(soc, pdev,
|
||||
vdev, wh->i_addr2, &peer_id);
|
||||
|
||||
if (NULL == peer) {
|
||||
WMA_LOGE("%s: Failed to find peer, Not able to validate PN",
|
||||
|
|
@ -3071,7 +3076,7 @@ static bool wma_is_pkt_drop_candidate(tp_wma_handle wma_handle,
|
|||
uint8_t *peer_addr, uint8_t subtype)
|
||||
{
|
||||
void *peer;
|
||||
void *pdev_ctx;
|
||||
struct cdp_pdev *pdev_ctx;
|
||||
uint8_t peer_id;
|
||||
bool should_drop = false;
|
||||
qdf_time_t *ptr;
|
||||
|
|
@ -3096,7 +3101,8 @@ static bool wma_is_pkt_drop_candidate(tp_wma_handle wma_handle,
|
|||
goto end;
|
||||
}
|
||||
|
||||
peer = cdp_peer_find_by_addr(soc, pdev_ctx, peer_addr, &peer_id);
|
||||
peer = cdp_peer_find_by_addr(soc, pdev_ctx,
|
||||
peer_addr, &peer_id);
|
||||
if (!peer) {
|
||||
if (SIR_MAC_MGMT_ASSOC_REQ != subtype) {
|
||||
WMA_LOGI(
|
||||
|
|
|
|||
|
|
@ -34,7 +34,7 @@
|
|||
#include "cdp_txrx_peer_ops.h"
|
||||
#include "cdp_txrx_tx_delay.h"
|
||||
#include "cdp_txrx_misc.h"
|
||||
|
||||
#include <cdp_txrx_handle.h>
|
||||
/**
|
||||
* wma_handle_ndp_initiator_req() - NDP initiator request handler
|
||||
* @wma_handle: wma handle
|
||||
|
|
@ -977,7 +977,7 @@ void wma_ndp_wow_event_callback(void *handle, void *event, uint32_t len,
|
|||
*/
|
||||
void wma_add_bss_ndi_mode(tp_wma_handle wma, tpAddBssParams add_bss)
|
||||
{
|
||||
void *pdev;
|
||||
struct cdp_pdev *pdev;
|
||||
struct wma_vdev_start_req req;
|
||||
void *peer = NULL;
|
||||
struct wma_target_req *msg;
|
||||
|
|
@ -1000,7 +1000,9 @@ void wma_add_bss_ndi_mode(tp_wma_handle wma, tpAddBssParams add_bss)
|
|||
|
||||
wma_set_bss_rate_flags(&wma->interfaces[vdev_id], add_bss);
|
||||
|
||||
peer = cdp_peer_find_by_addr(soc, pdev, add_bss->selfMacAddr, &peer_id);
|
||||
peer = cdp_peer_find_by_addr(soc,
|
||||
pdev,
|
||||
add_bss->selfMacAddr, &peer_id);
|
||||
if (!peer) {
|
||||
WMA_LOGE("%s Failed to find peer %pM", __func__,
|
||||
add_bss->selfMacAddr);
|
||||
|
|
@ -1088,8 +1090,8 @@ QDF_STATUS wma_register_ndp_cb(QDF_STATUS (*pe_ndp_event_handler)
|
|||
void wma_add_sta_ndi_mode(tp_wma_handle wma, tpAddStaParams add_sta)
|
||||
{
|
||||
enum ol_txrx_peer_state state = OL_TXRX_PEER_STATE_CONN;
|
||||
void *pdev;
|
||||
void *vdev;
|
||||
struct cdp_pdev *pdev;
|
||||
struct cdp_vdev *vdev;
|
||||
void *peer;
|
||||
void *soc = cds_get_context(QDF_MODULE_ID_SOC);
|
||||
u_int8_t peer_id;
|
||||
|
|
@ -1115,8 +1117,9 @@ void wma_add_sta_ndi_mode(tp_wma_handle wma, tpAddStaParams add_sta)
|
|||
WMA_LOGD(FL("vdev: %d, peer_mac_addr: "MAC_ADDRESS_STR),
|
||||
add_sta->smesessionId, MAC_ADDR_ARRAY(add_sta->staMac));
|
||||
|
||||
peer = cdp_peer_find_by_addr_and_vdev(soc, pdev, vdev, add_sta->staMac,
|
||||
&peer_id);
|
||||
peer = cdp_peer_find_by_addr_and_vdev(soc,
|
||||
pdev, vdev,
|
||||
add_sta->staMac, &peer_id);
|
||||
if (peer) {
|
||||
WMA_LOGE(FL("NDI peer already exists, peer_addr %pM"),
|
||||
add_sta->staMac);
|
||||
|
|
@ -1131,10 +1134,13 @@ void wma_add_sta_ndi_mode(tp_wma_handle wma, tpAddStaParams add_sta)
|
|||
* exists on the pDev. As this peer belongs to other vDevs, just return
|
||||
* here.
|
||||
*/
|
||||
peer = cdp_peer_find_by_addr(soc, pdev, add_sta->staMac, &peer_id);
|
||||
peer = cdp_peer_find_by_addr(soc,
|
||||
pdev,
|
||||
add_sta->staMac, &peer_id);
|
||||
if (peer) {
|
||||
WMA_LOGE(FL("vdev:%d, peer exists on other vdev with peer_addr %pM and peer_id %d"),
|
||||
cdp_get_vdev_id(soc, vdev), add_sta->staMac, peer_id);
|
||||
cdp_get_vdev_id(soc, vdev),
|
||||
add_sta->staMac, peer_id);
|
||||
add_sta->status = QDF_STATUS_E_EXISTS;
|
||||
goto send_rsp;
|
||||
}
|
||||
|
|
@ -1148,8 +1154,9 @@ void wma_add_sta_ndi_mode(tp_wma_handle wma, tpAddStaParams add_sta)
|
|||
goto send_rsp;
|
||||
}
|
||||
|
||||
peer = cdp_peer_find_by_addr_and_vdev(soc, pdev, vdev, add_sta->staMac,
|
||||
&peer_id);
|
||||
peer = cdp_peer_find_by_addr_and_vdev(soc,
|
||||
pdev, vdev,
|
||||
add_sta->staMac, &peer_id);
|
||||
if (!peer) {
|
||||
WMA_LOGE(FL("Failed to find peer handle using peer mac %pM"),
|
||||
add_sta->staMac);
|
||||
|
|
@ -1183,7 +1190,7 @@ send_rsp:
|
|||
void wma_delete_sta_req_ndi_mode(tp_wma_handle wma,
|
||||
tpDeleteStaParams del_sta)
|
||||
{
|
||||
void *pdev;
|
||||
struct cdp_pdev *pdev;
|
||||
void *peer;
|
||||
void *soc = cds_get_context(QDF_MODULE_ID_SOC);
|
||||
|
||||
|
|
|
|||
|
|
@ -35,6 +35,7 @@
|
|||
#include "wmi_unified_api.h"
|
||||
#include "cds_utils.h"
|
||||
#include <cdp_txrx_ocb.h>
|
||||
#include <cdp_txrx_handle.h>
|
||||
|
||||
/**
|
||||
* wma_ocb_resp() - send the OCB set config response via callback
|
||||
|
|
@ -58,7 +59,7 @@ int wma_ocb_set_config_resp(tp_wma_handle wma_handle, uint8_t status)
|
|||
*/
|
||||
if (status == QDF_STATUS_SUCCESS && vdev && req) {
|
||||
ocb_set_chan.ocb_channel_info = cdp_get_ocb_chan_info(soc,
|
||||
vdev);
|
||||
(struct cdp_vdev *)vdev);
|
||||
if (ocb_set_chan.ocb_channel_info)
|
||||
qdf_mem_free(ocb_set_chan.ocb_channel_info);
|
||||
ocb_set_chan.ocb_channel_count =
|
||||
|
|
@ -84,7 +85,9 @@ int wma_ocb_set_config_resp(tp_wma_handle wma_handle, uint8_t status)
|
|||
ocb_set_chan.ocb_channel_info = 0;
|
||||
ocb_set_chan.ocb_channel_count = 0;
|
||||
}
|
||||
cdp_set_ocb_chan_info(soc, vdev, ocb_set_chan);
|
||||
cdp_set_ocb_chan_info(soc,
|
||||
(struct cdp_vdev *)vdev,
|
||||
ocb_set_chan);
|
||||
}
|
||||
|
||||
/* Free the configuration that was saved in wma_ocb_set_config. */
|
||||
|
|
|
|||
|
|
@ -349,19 +349,19 @@ void wma_set_tx_power(WMA_HANDLE handle,
|
|||
tp_wma_handle wma_handle = (tp_wma_handle) handle;
|
||||
uint8_t vdev_id;
|
||||
QDF_STATUS ret = QDF_STATUS_E_FAILURE;
|
||||
void *pdev;
|
||||
struct cdp_vdev *vdev;
|
||||
|
||||
if (tx_pwr_params->dev_mode == QDF_SAP_MODE ||
|
||||
tx_pwr_params->dev_mode == QDF_P2P_GO_MODE) {
|
||||
pdev = wma_find_vdev_by_addr(wma_handle,
|
||||
vdev = wma_find_vdev_by_addr(wma_handle,
|
||||
tx_pwr_params->bssId.bytes,
|
||||
&vdev_id);
|
||||
} else {
|
||||
pdev = wma_find_vdev_by_bssid(wma_handle,
|
||||
vdev = wma_find_vdev_by_bssid(wma_handle,
|
||||
tx_pwr_params->bssId.bytes,
|
||||
&vdev_id);
|
||||
}
|
||||
if (!pdev) {
|
||||
if (!vdev) {
|
||||
WMA_LOGE("vdev handle is invalid for %pM",
|
||||
tx_pwr_params->bssId.bytes);
|
||||
qdf_mem_free(tx_pwr_params);
|
||||
|
|
@ -425,18 +425,18 @@ void wma_set_max_tx_power(WMA_HANDLE handle,
|
|||
tp_wma_handle wma_handle = (tp_wma_handle) handle;
|
||||
uint8_t vdev_id;
|
||||
QDF_STATUS ret = QDF_STATUS_E_FAILURE;
|
||||
void *pdev;
|
||||
struct cdp_vdev *vdev;
|
||||
int8_t prev_max_power;
|
||||
|
||||
pdev = wma_find_vdev_by_addr(wma_handle, tx_pwr_params->bssId.bytes,
|
||||
vdev = wma_find_vdev_by_addr(wma_handle, tx_pwr_params->bssId.bytes,
|
||||
&vdev_id);
|
||||
if (pdev == NULL) {
|
||||
if (vdev == NULL) {
|
||||
/* not in SAP array. Try the station/p2p array */
|
||||
pdev = wma_find_vdev_by_bssid(wma_handle,
|
||||
vdev = wma_find_vdev_by_bssid(wma_handle,
|
||||
tx_pwr_params->bssId.bytes,
|
||||
&vdev_id);
|
||||
}
|
||||
if (!pdev) {
|
||||
if (!vdev) {
|
||||
WMA_LOGE("vdev handle is invalid for %pM",
|
||||
tx_pwr_params->bssId.bytes);
|
||||
qdf_mem_free(tx_pwr_params);
|
||||
|
|
|
|||
|
|
@ -71,7 +71,7 @@
|
|||
#include "wlan_tgt_def_config.h"
|
||||
/* This is temporary, should be removed */
|
||||
#include "ol_htt_api.h"
|
||||
|
||||
#include <cdp_txrx_handle.h>
|
||||
#define WMA_MCC_MIRACAST_REST_TIME 400
|
||||
#define WMA_SCAN_ID_MASK 0x0fff
|
||||
|
||||
|
|
@ -2847,7 +2847,7 @@ void wma_set_channel(tp_wma_handle wma, tpSwitchChannelParams params)
|
|||
QDF_STATUS status = QDF_STATUS_SUCCESS;
|
||||
uint8_t vdev_id, peer_id;
|
||||
void *peer;
|
||||
void *pdev;
|
||||
struct cdp_pdev *pdev;
|
||||
struct wma_txrx_node *intr = wma->interfaces;
|
||||
struct sir_hw_mode_params hw_mode = {0};
|
||||
void *soc = cds_get_context(QDF_MODULE_ID_SOC);
|
||||
|
|
@ -2866,7 +2866,9 @@ void wma_set_channel(tp_wma_handle wma, tpSwitchChannelParams params)
|
|||
goto send_resp;
|
||||
}
|
||||
|
||||
peer = cdp_peer_find_by_addr(soc, pdev, intr[vdev_id].bssid, &peer_id);
|
||||
peer = cdp_peer_find_by_addr(soc,
|
||||
pdev,
|
||||
intr[vdev_id].bssid, &peer_id);
|
||||
|
||||
qdf_mem_zero(&req, sizeof(req));
|
||||
req.vdev_id = vdev_id;
|
||||
|
|
@ -5316,7 +5318,7 @@ QDF_STATUS wma_extscan_get_capabilities(tp_wma_handle wma,
|
|||
QDF_STATUS wma_ipa_offload_enable_disable(tp_wma_handle wma,
|
||||
struct sir_ipa_offload_enable_disable *ipa_offload)
|
||||
{
|
||||
void *vdev;
|
||||
struct cdp_vdev *vdev;
|
||||
int32_t intra_bss_fwd = 0;
|
||||
struct ipa_offload_control_params params = {0};
|
||||
QDF_STATUS status;
|
||||
|
|
|
|||
|
|
@ -66,7 +66,7 @@
|
|||
#include "cds_concurrency.h"
|
||||
#include "wmi_unified_param.h"
|
||||
#include "linux/ieee80211.h"
|
||||
|
||||
#include <cdp_txrx_handle.h>
|
||||
/* MCS Based rate table */
|
||||
/* HT MCS parameters with Nss = 1 */
|
||||
static struct index_data_rate_type mcs_nss1[] = {
|
||||
|
|
@ -2149,7 +2149,7 @@ int32_t wma_txrx_fw_stats_reset(tp_wma_handle wma_handle,
|
|||
uint8_t vdev_id, uint32_t value)
|
||||
{
|
||||
struct ol_txrx_stats_req req;
|
||||
void *vdev;
|
||||
struct cdp_vdev *vdev;
|
||||
void *soc = cds_get_context(QDF_MODULE_ID_SOC);
|
||||
|
||||
if (!soc) {
|
||||
|
|
@ -2164,8 +2164,7 @@ int32_t wma_txrx_fw_stats_reset(tp_wma_handle wma_handle,
|
|||
}
|
||||
qdf_mem_zero(&req, sizeof(req));
|
||||
req.stats_type_reset_mask = value;
|
||||
cdp_fw_stats_get(soc, vdev, &req,
|
||||
false, false);
|
||||
cdp_fw_stats_get(soc, vdev, &req, false, false);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
@ -2216,7 +2215,7 @@ int32_t wma_set_txrx_fw_stats_level(tp_wma_handle wma_handle,
|
|||
uint8_t vdev_id, uint32_t value)
|
||||
{
|
||||
struct ol_txrx_stats_req req;
|
||||
void *vdev;
|
||||
struct cdp_vdev *vdev;
|
||||
uint32_t l_up_mask;
|
||||
void *soc = cds_get_context(QDF_MODULE_ID_SOC);
|
||||
|
||||
|
|
@ -2241,8 +2240,7 @@ int32_t wma_set_txrx_fw_stats_level(tp_wma_handle wma_handle,
|
|||
l_up_mask = 1 << (value - 1);
|
||||
req.stats_type_upload_mask = l_up_mask;
|
||||
|
||||
cdp_fw_stats_get(soc, vdev, &req,
|
||||
false, true);
|
||||
cdp_fw_stats_get(soc, vdev, &req, false, true);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue