qcacmn: Refactor the wmi code for PMO component adaption

Currently, Host maintain multiple data structure at different
layers for offload related features like arp/ns/gtk etc.
Instead of using many structure use single data structure across
all layers for offload related feature (arp/ns/gtk) which is now
exposed by PMO. Hence to include PMO header's in WMI, refactor the
WMI code for PMO component by carving out PMO specific functionality
separatley.

Change-Id: I8314d5ece49bf6972fbe706d635385ae22d11b2e
CRs-Fixed: 2004523
This commit is contained in:
Mukul Sharma
2017-02-25 01:50:47 +05:30
committed by qcabuildsw
parent e66c6bf550
commit ba196f56f4
4 changed files with 269 additions and 187 deletions

View File

@@ -43,6 +43,9 @@
#include "wmi_unified_param.h" #include "wmi_unified_param.h"
#include "wlan_objmgr_psoc_obj.h" #include "wlan_objmgr_psoc_obj.h"
#include "wlan_mgmt_txrx_utils_api.h" #include "wlan_mgmt_txrx_utils_api.h"
#ifdef WLAN_PMO_ENABLE
#include "wmi_unified_pmo_api.h"
#endif
typedef qdf_nbuf_t wmi_buf_t; typedef qdf_nbuf_t wmi_buf_t;
#define wmi_buf_data(_buf) qdf_nbuf_data(_buf) #define wmi_buf_data(_buf) qdf_nbuf_data(_buf)
@@ -646,21 +649,6 @@ QDF_STATUS wmi_unified_link_status_req_cmd(void *wmi_hdl,
struct link_status_params *link_status); struct link_status_params *link_status);
#ifdef CONFIG_MCL #ifdef CONFIG_MCL
QDF_STATUS wmi_unified_lphb_config_hbenable_cmd(void *wmi_hdl,
wmi_hb_set_enable_cmd_fixed_param *params);
QDF_STATUS wmi_unified_lphb_config_tcp_params_cmd(void *wmi_hdl,
wmi_hb_set_tcp_params_cmd_fixed_param *lphb_conf_req);
QDF_STATUS wmi_unified_lphb_config_tcp_pkt_filter_cmd(void *wmi_hdl,
wmi_hb_set_tcp_pkt_filter_cmd_fixed_param *g_hb_tcp_filter_fp);
QDF_STATUS wmi_unified_lphb_config_udp_params_cmd(void *wmi_hdl,
wmi_hb_set_udp_params_cmd_fixed_param *lphb_conf_req);
QDF_STATUS wmi_unified_lphb_config_udp_pkt_filter_cmd(void *wmi_hdl,
wmi_hb_set_udp_pkt_filter_cmd_fixed_param *lphb_conf_req);
QDF_STATUS wmi_unified_process_dhcp_ind(void *wmi_hdl, QDF_STATUS wmi_unified_process_dhcp_ind(void *wmi_hdl,
wmi_peer_set_param_cmd_fixed_param *ta_dhcp_ind); wmi_peer_set_param_cmd_fixed_param *ta_dhcp_ind);
@@ -672,16 +660,9 @@ QDF_STATUS wmi_unified_egap_conf_params_cmd(void *wmi_hdl,
#endif #endif
QDF_STATUS wmi_unified_action_frame_patterns_cmd(void *wmi_hdl,
struct action_wakeup_set_param *action_params);
QDF_STATUS wmi_unified_fw_profiling_data_cmd(void *wmi_hdl, QDF_STATUS wmi_unified_fw_profiling_data_cmd(void *wmi_hdl,
uint32_t cmd, uint32_t value1, uint32_t value2); uint32_t cmd, uint32_t value1, uint32_t value2);
QDF_STATUS wmi_unified_wow_sta_ra_filter_cmd(void *wmi_hdl,
uint8_t vdev_id, uint8_t default_pattern,
uint16_t rate_limit_interval);
QDF_STATUS wmi_unified_nat_keepalive_en_cmd(void *wmi_hdl, uint8_t vdev_id); QDF_STATUS wmi_unified_nat_keepalive_en_cmd(void *wmi_hdl, uint8_t vdev_id);
QDF_STATUS wmi_unified_csa_offload_enable(void *wmi_hdl, uint8_t vdev_id); QDF_STATUS wmi_unified_csa_offload_enable(void *wmi_hdl, uint8_t vdev_id);
@@ -700,18 +681,6 @@ QDF_STATUS wmi_unified_pktlog_wmi_send_cmd(void *wmi_hdl,
uint8_t user_triggered); uint8_t user_triggered);
#endif #endif
QDF_STATUS wmi_unified_add_wow_wakeup_event_cmd(void *wmi_hdl,
uint32_t vdev_id,
uint32_t bitmap,
bool enable);
QDF_STATUS wmi_unified_wow_patterns_to_fw_cmd(void *wmi_hdl,
uint8_t vdev_id, uint8_t ptrn_id,
const uint8_t *ptrn, uint8_t ptrn_len,
uint8_t ptrn_offset, const uint8_t *mask,
uint8_t mask_len, bool user,
uint8_t default_patterns);
QDF_STATUS wmi_unified_wow_delete_pattern_cmd(void *wmi_hdl, uint8_t ptrn_id, QDF_STATUS wmi_unified_wow_delete_pattern_cmd(void *wmi_hdl, uint8_t ptrn_id,
uint8_t vdev_id); uint8_t vdev_id);
@@ -732,20 +701,6 @@ QDF_STATUS wmi_unified_config_packet_filter_cmd(void *wmi_hdl,
uint8_t vdev_id, struct rcv_pkt_filter_config *rcv_filter_param, uint8_t vdev_id, struct rcv_pkt_filter_config *rcv_filter_param,
uint8_t filter_id, bool enable); uint8_t filter_id, bool enable);
QDF_STATUS wmi_unified_add_clear_mcbc_filter_cmd(void *wmi_hdl,
uint8_t vdev_id,
struct qdf_mac_addr multicast_addr,
bool clearList);
QDF_STATUS wmi_unified_send_gtk_offload_cmd(void *wmi_hdl, uint8_t vdev_id,
struct gtk_offload_params *params,
bool enable_offload,
uint32_t gtk_offload_opcode);
QDF_STATUS wmi_unified_process_gtk_offload_getinfo_cmd(void *wmi_hdl,
uint8_t vdev_id,
uint64_t offload_req_opcode);
QDF_STATUS wmi_unified_process_add_periodic_tx_ptrn_cmd(void *wmi_hdl, QDF_STATUS wmi_unified_process_add_periodic_tx_ptrn_cmd(void *wmi_hdl,
struct periodic_tx_pattern * struct periodic_tx_pattern *
pAddPeriodicTxPtrnParams, pAddPeriodicTxPtrnParams,
@@ -841,12 +796,6 @@ QDF_STATUS wmi_unified_soc_set_hw_mode_cmd(void *wmi_hdl,
QDF_STATUS wmi_unified_pdev_set_dual_mac_config_cmd(void *wmi_hdl, QDF_STATUS wmi_unified_pdev_set_dual_mac_config_cmd(void *wmi_hdl,
struct wmi_dual_mac_config *msg); struct wmi_dual_mac_config *msg);
QDF_STATUS wmi_unified_enable_arp_ns_offload_cmd(void *wmi_hdl,
struct host_offload_req_param *arp_offload_req,
struct host_offload_req_param *ns_offload_req,
bool arp_only,
uint8_t vdev_id);
/** /**
* wmi_unified_configure_broadcast_filter_cmd() - Enable/Disable Broadcast * wmi_unified_configure_broadcast_filter_cmd() - Enable/Disable Broadcast
* filter * filter

View File

@@ -75,16 +75,6 @@
#define WMI_ROAM_SCAN_PSK_SIZE 32 #define WMI_ROAM_SCAN_PSK_SIZE 32
#endif #endif
#define WMI_NOISE_FLOOR_DBM_DEFAULT (-96) #define WMI_NOISE_FLOOR_DBM_DEFAULT (-96)
#define WMI_MAC_IPV6_ADDR_LEN 16
#define WMI_OFFLOAD_DISABLE 0
#define WMI_OFFLOAD_ENABLE 1
#ifdef WLAN_NS_OFFLOAD
/* support only one IPv6 offload */
#define WMI_MAC_NS_OFFLOAD_SIZE 1
/* Number of target IP V6 addresses for NS offload */
#define WMI_MAC_NUM_TARGET_IPV6_NS_OFFLOAD_NA 16
#define WMI_IPV6_ADDR_VALID 1
#endif /* WLAN_NS_OFFLOAD */
#define WMI_EXTSCAN_MAX_HOTLIST_SSIDS 8 #define WMI_EXTSCAN_MAX_HOTLIST_SSIDS 8
#define WMI_ROAM_MAX_CHANNELS 80 #define WMI_ROAM_MAX_CHANNELS 80
#ifdef FEATURE_WLAN_EXTSCAN #ifdef FEATURE_WLAN_EXTSCAN
@@ -3102,27 +3092,6 @@ struct periodic_tx_pattern {
uint8_t ucPattern[WMI_PERIODIC_TX_PTRN_MAX_SIZE]; uint8_t ucPattern[WMI_PERIODIC_TX_PTRN_MAX_SIZE];
}; };
#define WMI_GTK_OFFLOAD_KEK_BYTES 16
#define WMI_GTK_OFFLOAD_KCK_BYTES 16
#define WMI_GTK_OFFLOAD_ENABLE 0
#define WMI_GTK_OFFLOAD_DISABLE 1
/**
* struct gtk_offload_params - gtk offload parameters
* @ulFlags: optional flags
* @aKCK: Key confirmation key
* @aKEK: key encryption key
* @ullKeyReplayCounter: replay counter
* @bssid: bss id
*/
struct gtk_offload_params {
uint32_t ulFlags;
uint8_t aKCK[WMI_GTK_OFFLOAD_KCK_BYTES];
uint8_t aKEK[WMI_GTK_OFFLOAD_KEK_BYTES];
uint64_t ullKeyReplayCounter;
struct qdf_mac_addr bssid;
};
/** /**
* struct flashing_req_params - led flashing parameter * struct flashing_req_params - led flashing parameter
* @reqId: request id * @reqId: request id
@@ -3287,50 +3256,6 @@ struct wmi_dual_mac_config {
void *set_dual_mac_cb; void *set_dual_mac_cb;
}; };
#ifdef WLAN_NS_OFFLOAD
/**
* struct ns_offload_req_params - ns offload request paramter
* @srcIPv6Addr: src ipv6 address
* @selfIPv6Addr: self ipv6 address
* @targetIPv6Addr: target ipv6 address
* @self_macaddr: self mac address
* @srcIPv6AddrValid: src ipv6 address valid flag
* @targetIPv6AddrValid: target ipv6 address valid flag
* @target_ipv6_addr_ac_type: target ipv6 address type
* @slotIdx: slot index
*/
struct ns_offload_req_params {
uint8_t srcIPv6Addr[WMI_MAC_IPV6_ADDR_LEN];
uint8_t selfIPv6Addr[WMI_MAC_NUM_TARGET_IPV6_NS_OFFLOAD_NA][WMI_MAC_IPV6_ADDR_LEN];
uint8_t targetIPv6Addr[WMI_MAC_NUM_TARGET_IPV6_NS_OFFLOAD_NA][WMI_MAC_IPV6_ADDR_LEN];
struct qdf_mac_addr self_macaddr;
uint8_t srcIPv6AddrValid;
uint8_t targetIPv6AddrValid[WMI_MAC_NUM_TARGET_IPV6_NS_OFFLOAD_NA];
uint8_t target_ipv6_addr_ac_type[WMI_MAC_NUM_TARGET_IPV6_NS_OFFLOAD_NA];
uint8_t slotIdx;
};
#endif /* WLAN_NS_OFFLOAD */
/**
* struct host_offload_req_param - arp offload parameter
* @offloadType: offload type
* @enableOrDisable: enable or disable
* @num_ns_offload_count: offload count
*/
struct host_offload_req_param {
uint8_t offloadType;
uint8_t enableOrDisable;
uint32_t num_ns_offload_count;
union {
uint8_t hostIpv4Addr[WMI_IPV4_ADDR_LEN];
uint8_t hostIpv6Addr[WMI_MAC_IPV6_ADDR_LEN];
} params;
#ifdef WLAN_NS_OFFLOAD
struct ns_offload_req_params nsOffloadInfo;
#endif /* WLAN_NS_OFFLOAD */
struct qdf_mac_addr bssid;
};
/** /**
* struct ssid_hotlist_param - param for SSID Hotlist * struct ssid_hotlist_param - param for SSID Hotlist
* @ssid: SSID which is being hotlisted * @ssid: SSID which is being hotlisted
@@ -7355,22 +7280,6 @@ enum WMI_HOST_CALIBRATION_STATUS {
WMI_HOST_CALIBRATION_NOT_OK, WMI_HOST_CALIBRATION_NOT_OK,
}; };
#define WMI_SUPPORTED_ACTION_CATEGORY 256
#define WMI_SUPPORTED_ACTION_CATEGORY_ELE_LIST (WMI_SUPPORTED_ACTION_CATEGORY/32)
/**
* struct action_wakeup_set_param - action wakeup set params
* @vdev_id: virtual device id
* @operation: 0 reset to fw default, 1 set the bits,
* 2 add the setting bits, 3 delete the setting bits
* @action_category_map: bit mapping.
*/
struct action_wakeup_set_param {
uint32_t vdev_id;
uint32_t operation;
uint32_t action_category_map[WMI_SUPPORTED_ACTION_CATEGORY_ELE_LIST];
};
/** /**
* struct wmi_host_pdev_utf_event - Host defined struct to hold utf event data * struct wmi_host_pdev_utf_event - Host defined struct to hold utf event data
* @data: Pointer to data * @data: Pointer to data

217
wmi_unified_pmo_api.h Normal file
View File

@@ -0,0 +1,217 @@
/*
* Copyright (c) 2017 The Linux Foundation. All rights reserved.
*
* Permission to use, copy, modify, and/or distribute this software for
* any purpose with or without fee is hereby granted, provided that the
* above copyright notice and this permission notice appear in all
* copies.
*
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
* WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
* AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
* DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
* PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
* PERFORMANCE OF THIS SOFTWARE.
*/
/**
* DOC: This file contains the API definitions for the Unified Wireless Module
* Interface (WMI) which are specific to Power management offloads (PMO).
*/
#ifndef _WMI_UNIFIED_PMO_API_H_
#define _WMI_UNIFIED_PMO_API_H_
#include "wlan_pmo_tgt_api.h"
#include "wlan_pmo_arp_public_struct.h"
#include "wlan_pmo_ns_public_struct.h"
#include "wlan_pmo_gtk_public_struct.h"
#include "wlan_pmo_wow_public_struct.h"
/**
* wmi_unified_add_wow_wakeup_event_cmd() - Configures wow wakeup events.
* @wmi_handle: wmi handle
* @vdev_id: vdev id
* @bitmap: Event bitmap
* @enable: enable/disable
*
* Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
*/
QDF_STATUS wmi_unified_add_wow_wakeup_event_cmd(void *wmi_hdl,
uint32_t vdev_id,
uint32_t bitmap,
bool enable);
/**
* wmi_unified_wow_patterns_to_fw_cmd() - Sends WOW patterns to FW.
* @wmi_handle: wmi handle
* @vdev_id: vdev id
* @ptrn_id: pattern id
* @ptrn: pattern
* @ptrn_len: pattern length
* @ptrn_offset: pattern offset
* @mask: mask
* @mask_len: mask length
* @user: true for user configured pattern and false for default pattern
* @default_patterns: default patterns
*
* Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
*/
QDF_STATUS wmi_unified_wow_patterns_to_fw_cmd(void *wmi_hdl,
uint8_t vdev_id, uint8_t ptrn_id,
const uint8_t *ptrn, uint8_t ptrn_len,
uint8_t ptrn_offset, const uint8_t *mask,
uint8_t mask_len, bool user,
uint8_t default_patterns);
/**
* wmi_unified_add_clear_mcbc_filter_cmd() - set mcast filter command to fw
* @wmi_handle: wmi handle
* @vdev_id: vdev id
* @multicastAddr: mcast address
* @clearList: clear list flag
*
* Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
*/
QDF_STATUS wmi_unified_add_clear_mcbc_filter_cmd(void *wmi_hdl,
uint8_t vdev_id,
struct qdf_mac_addr multicast_addr,
bool clearList);
/**
* wmi_unified_wow_sta_ra_filter_cmd() - set RA filter pattern in fw
* @wmi_handle: wmi handle
* @vdev_id: vdev id
*
* Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
*/
QDF_STATUS wmi_unified_wow_sta_ra_filter_cmd(void *wmi_hdl,
uint8_t vdev_id, uint8_t default_pattern,
uint16_t rate_limit_interval);
/**
* wmi_unified_enable_enhance_multicast_offload() - enhance multicast offload
* @wmi_hdl: wmi handle
* @vdev_id: vdev id
* @action: true for enable else false
*
* To configure enhance multicast offload in to firmware
*
* Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
*/
QDF_STATUS wmi_unified_enable_enhance_multicast_offload_cmd(
void *wmi_hdl, uint8_t vdev_id, bool action);
/**
* wmi_extract_gtk_rsp_event() - extract gtk rsp params from event
* @wmi_handle: wmi handle
* @evt_buf: pointer to event buffer
* @gtk_rsp_param: Pointer to gtk rsp parameters
* @ len: len of gtk rsp event
*
* Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
*/
QDF_STATUS wmi_extract_gtk_rsp_event(void *wmi_hdl, void *evt_buf,
struct pmo_gtk_rsp_params *gtk_rsp_param, uint32_t len);
/**
* wmi_unified_process_gtk_offload_getinfo_cmd() - send GTK offload cmd to fw
* @wmi_handle: wmi handle
* @params: GTK offload params
*
* Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
*/
QDF_STATUS wmi_unified_process_gtk_offload_getinfo_cmd(void *wmi_hdl,
uint8_t vdev_id,
uint64_t offload_req_opcode);
/**
* wmi_unified_action_frame_patterns_cmd() - send action filter wmi cmd
* @wmi_handle: wmi handler
* @action_params: pointer to action_params
*
* Return: 0 for success, otherwise appropriate error code
*/
QDF_STATUS wmi_unified_action_frame_patterns_cmd(void *wmi_hdl,
struct pmo_action_wakeup_set_params *action_params);
/**
* wmi_unified_send_gtk_offload_cmd() - send GTK offload command to fw
* @wmi_handle: wmi handle
* @vdev_id: vdev id
* @params: GTK offload parameters
*
* Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
*/
QDF_STATUS wmi_unified_send_gtk_offload_cmd(void *wmi_hdl, uint8_t vdev_id,
struct pmo_gtk_req *params,
bool enable_offload,
uint32_t gtk_offload_opcode);
/**
* wmi_unified_enable_arp_ns_offload_cmd() - enable ARP NS offload
* @wmi_hdl: wmi handle
* @param: offload request
*
* To configure ARP NS off load data to firmware
* when target goes to wow mode.
*
* Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
*/
QDF_STATUS wmi_unified_enable_arp_ns_offload_cmd(void *wmi_hdl,
struct pmo_arp_offload_params *arp_offload_req,
struct pmo_ns_offload_params *ns_offload_req,
uint8_t vdev_id);
/**
* wmi_unified_lphb_config_hbenable_cmd() - enable command of LPHB configuration
* @wmi_handle: wmi handle
* @lphb_conf_req: configuration info
*
* Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
*/
QDF_STATUS wmi_unified_lphb_config_hbenable_cmd(void *wmi_hdl,
wmi_hb_set_enable_cmd_fixed_param *params);
/**
* wmi_unified_lphb_config_tcp_params_cmd() - set tcp params of LPHB config req
* @wmi_handle: wmi handle
* @lphb_conf_req: lphb config request
*
* Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
*/
QDF_STATUS wmi_unified_lphb_config_tcp_params_cmd(void *wmi_hdl,
wmi_hb_set_tcp_params_cmd_fixed_param *lphb_conf_req);
/**
* wmi_unified_lphb_config_tcp_pkt_filter_cmd() - config LPHB tcp packet filter
* @wmi_handle: wmi handle
* @lphb_conf_req: lphb config request
*
* Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
*/
QDF_STATUS wmi_unified_lphb_config_tcp_pkt_filter_cmd(void *wmi_hdl,
wmi_hb_set_tcp_pkt_filter_cmd_fixed_param *g_hb_tcp_filter_fp);
/**
* wmi_unified_lphb_config_udp_params_cmd() - configure LPHB udp param command
* @wmi_handle: wmi handle
* @lphb_conf_req: lphb config request
*
* Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
*/
QDF_STATUS wmi_unified_lphb_config_udp_params_cmd(void *wmi_hdl,
wmi_hb_set_udp_params_cmd_fixed_param *lphb_conf_req);
/**
* wmi_unified_lphb_config_udp_pkt_filter_cmd() - configure LPHB udp pkt filter
* @wmi_handle: wmi handle
* @lphb_conf_req: lphb config request
*
* Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
*/
QDF_STATUS wmi_unified_lphb_config_udp_pkt_filter_cmd(void *wmi_hdl,
wmi_hb_set_udp_pkt_filter_cmd_fixed_param *lphb_conf_req);
#endif /* _WMI_UNIFIED_PMO_API_H_ */

View File

@@ -470,7 +470,53 @@ QDF_STATUS (*send_snr_cmd)(wmi_unified_t wmi_handle, uint8_t vdev_id);
QDF_STATUS (*send_link_status_req_cmd)(wmi_unified_t wmi_handle, QDF_STATUS (*send_link_status_req_cmd)(wmi_unified_t wmi_handle,
struct link_status_params *link_status); struct link_status_params *link_status);
#ifdef CONFIG_MCL #ifdef WLAN_PMO_ENABLE
QDF_STATUS (*send_add_wow_wakeup_event_cmd)(wmi_unified_t wmi_handle,
uint32_t vdev_id,
uint32_t bitmap,
bool enable);
QDF_STATUS (*send_wow_patterns_to_fw_cmd)(wmi_unified_t wmi_handle,
uint8_t vdev_id, uint8_t ptrn_id,
const uint8_t *ptrn, uint8_t ptrn_len,
uint8_t ptrn_offset, const uint8_t *mask,
uint8_t mask_len, bool user,
uint8_t default_patterns);
QDF_STATUS (*send_enable_arp_ns_offload_cmd)(wmi_unified_t wmi_handle,
struct pmo_arp_offload_params *arp_offload_req,
struct pmo_ns_offload_params *ns_offload_req,
uint8_t vdev_id);
QDF_STATUS (*send_enable_enhance_multicast_offload_cmd)(
wmi_unified_t wmi_handle,
uint8_t vdev_id, bool action);
QDF_STATUS (*send_add_clear_mcbc_filter_cmd)(wmi_unified_t wmi_handle,
uint8_t vdev_id,
struct qdf_mac_addr multicast_addr,
bool clearList);
QDF_STATUS (*send_gtk_offload_cmd)(wmi_unified_t wmi_handle, uint8_t vdev_id,
struct pmo_gtk_req *params,
bool enable_offload,
uint32_t gtk_offload_opcode);
QDF_STATUS (*send_process_gtk_offload_getinfo_cmd)(wmi_unified_t wmi_handle,
uint8_t vdev_id,
uint64_t offload_req_opcode);
QDF_STATUS (*send_wow_sta_ra_filter_cmd)(wmi_unified_t wmi_handle,
uint8_t vdev_id, uint8_t default_pattern,
uint16_t rate_limit_interval);
QDF_STATUS (*send_action_frame_patterns_cmd)(wmi_unified_t wmi_handle,
struct pmo_action_wakeup_set_params *action_params);
QDF_STATUS (*extract_gtk_rsp_event)(wmi_unified_t wmi_handle,
void *evt_buf,
struct pmo_gtk_rsp_params *gtk_rsp_param, uint32_t len);
QDF_STATUS (*send_lphb_config_hbenable_cmd)(wmi_unified_t wmi_handle, QDF_STATUS (*send_lphb_config_hbenable_cmd)(wmi_unified_t wmi_handle,
wmi_hb_set_enable_cmd_fixed_param *params); wmi_hb_set_enable_cmd_fixed_param *params);
@@ -485,7 +531,8 @@ QDF_STATUS (*send_lphb_config_udp_params_cmd)(wmi_unified_t wmi_handle,
QDF_STATUS (*send_lphb_config_udp_pkt_filter_cmd)(wmi_unified_t wmi_handle, QDF_STATUS (*send_lphb_config_udp_pkt_filter_cmd)(wmi_unified_t wmi_handle,
wmi_hb_set_udp_pkt_filter_cmd_fixed_param *lphb_conf_req); wmi_hb_set_udp_pkt_filter_cmd_fixed_param *lphb_conf_req);
#endif /* end of WLAN_PMO_ENABLE */
#ifdef CONFIG_MCL
QDF_STATUS (*send_process_dhcp_ind_cmd)(wmi_unified_t wmi_handle, QDF_STATUS (*send_process_dhcp_ind_cmd)(wmi_unified_t wmi_handle,
wmi_peer_set_param_cmd_fixed_param *ta_dhcp_ind); wmi_peer_set_param_cmd_fixed_param *ta_dhcp_ind);
@@ -515,16 +562,9 @@ QDF_STATUS (*send_pktlog_wmi_send_cmd)(wmi_unified_t wmi_handle,
WMI_CMD_ID cmd_id, uint8_t user_triggered); WMI_CMD_ID cmd_id, uint8_t user_triggered);
#endif #endif
QDF_STATUS (*send_action_frame_patterns_cmd)(wmi_unified_t wmi_handle,
struct action_wakeup_set_param *action_params);
QDF_STATUS (*send_fw_profiling_cmd)(wmi_unified_t wmi_handle, QDF_STATUS (*send_fw_profiling_cmd)(wmi_unified_t wmi_handle,
uint32_t cmd, uint32_t value1, uint32_t value2); uint32_t cmd, uint32_t value1, uint32_t value2);
QDF_STATUS (*send_wow_sta_ra_filter_cmd)(wmi_unified_t wmi_handle,
uint8_t vdev_id, uint8_t default_pattern,
uint16_t rate_limit_interval);
QDF_STATUS (*send_nat_keepalive_en_cmd)(wmi_unified_t wmi_handle, uint8_t vdev_id); QDF_STATUS (*send_nat_keepalive_en_cmd)(wmi_unified_t wmi_handle, uint8_t vdev_id);
QDF_STATUS (*send_start_oem_data_cmd)(wmi_unified_t wmi_handle, QDF_STATUS (*send_start_oem_data_cmd)(wmi_unified_t wmi_handle,
@@ -535,18 +575,6 @@ QDF_STATUS
(*send_dfs_phyerr_filter_offload_en_cmd)(wmi_unified_t wmi_handle, (*send_dfs_phyerr_filter_offload_en_cmd)(wmi_unified_t wmi_handle,
bool dfs_phyerr_filter_offload); bool dfs_phyerr_filter_offload);
QDF_STATUS (*send_add_wow_wakeup_event_cmd)(wmi_unified_t wmi_handle,
uint32_t vdev_id,
uint32_t bitmap,
bool enable);
QDF_STATUS (*send_wow_patterns_to_fw_cmd)(wmi_unified_t wmi_handle,
uint8_t vdev_id, uint8_t ptrn_id,
const uint8_t *ptrn, uint8_t ptrn_len,
uint8_t ptrn_offset, const uint8_t *mask,
uint8_t mask_len, bool user,
uint8_t default_patterns);
QDF_STATUS (*send_wow_delete_pattern_cmd)(wmi_unified_t wmi_handle, uint8_t ptrn_id, QDF_STATUS (*send_wow_delete_pattern_cmd)(wmi_unified_t wmi_handle, uint8_t ptrn_id,
uint8_t vdev_id); uint8_t vdev_id);
@@ -568,20 +596,6 @@ QDF_STATUS (*send_config_packet_filter_cmd)(wmi_unified_t wmi_handle,
uint8_t vdev_id, struct rcv_pkt_filter_config *rcv_filter_param, uint8_t vdev_id, struct rcv_pkt_filter_config *rcv_filter_param,
uint8_t filter_id, bool enable); uint8_t filter_id, bool enable);
QDF_STATUS (*send_add_clear_mcbc_filter_cmd)(wmi_unified_t wmi_handle,
uint8_t vdev_id,
struct qdf_mac_addr multicast_addr,
bool clearList);
QDF_STATUS (*send_gtk_offload_cmd)(wmi_unified_t wmi_handle, uint8_t vdev_id,
struct gtk_offload_params *params,
bool enable_offload,
uint32_t gtk_offload_opcode);
QDF_STATUS (*send_process_gtk_offload_getinfo_cmd)(wmi_unified_t wmi_handle,
uint8_t vdev_id,
uint64_t offload_req_opcode);
QDF_STATUS (*send_process_add_periodic_tx_ptrn_cmd)(wmi_unified_t wmi_handle, QDF_STATUS (*send_process_add_periodic_tx_ptrn_cmd)(wmi_unified_t wmi_handle,
struct periodic_tx_pattern * struct periodic_tx_pattern *
pAddPeriodicTxPtrnParams, pAddPeriodicTxPtrnParams,
@@ -667,12 +681,6 @@ QDF_STATUS (*send_pdev_set_hw_mode_cmd)(wmi_unified_t wmi_handle,
QDF_STATUS (*send_pdev_set_dual_mac_config_cmd)(wmi_unified_t wmi_handle, QDF_STATUS (*send_pdev_set_dual_mac_config_cmd)(wmi_unified_t wmi_handle,
struct wmi_dual_mac_config *msg); struct wmi_dual_mac_config *msg);
QDF_STATUS (*send_enable_arp_ns_offload_cmd)(wmi_unified_t wmi_handle,
struct host_offload_req_param *arp_offload_req,
struct host_offload_req_param *ns_offload_req,
bool arp_only,
uint8_t vdev_id);
QDF_STATUS (*send_set_led_flashing_cmd)(wmi_unified_t wmi_handle, QDF_STATUS (*send_set_led_flashing_cmd)(wmi_unified_t wmi_handle,
struct flashing_req_params *flashing); struct flashing_req_params *flashing);
@@ -1282,7 +1290,6 @@ struct wmi_unified {
struct wmi_cmd_init saved_wmi_init_cmd; struct wmi_cmd_init saved_wmi_init_cmd;
uint32_t num_of_diag_events_logs; uint32_t num_of_diag_events_logs;
uint32_t *events_logs_list; uint32_t *events_logs_list;
struct host_offload_req_param arp_info;
#ifdef WLAN_OPEN_SOURCE #ifdef WLAN_OPEN_SOURCE
struct fwdebug dbglog; struct fwdebug dbglog;
struct dentry *debugfs_phy; struct dentry *debugfs_phy;