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:
@@ -43,6 +43,9 @@
|
||||
#include "wmi_unified_param.h"
|
||||
#include "wlan_objmgr_psoc_obj.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;
|
||||
#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);
|
||||
|
||||
#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,
|
||||
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
|
||||
|
||||
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,
|
||||
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_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);
|
||||
#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,
|
||||
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 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,
|
||||
struct periodic_tx_pattern *
|
||||
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,
|
||||
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
|
||||
* filter
|
||||
|
@@ -75,16 +75,6 @@
|
||||
#define WMI_ROAM_SCAN_PSK_SIZE 32
|
||||
#endif
|
||||
#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_ROAM_MAX_CHANNELS 80
|
||||
#ifdef FEATURE_WLAN_EXTSCAN
|
||||
@@ -3102,27 +3092,6 @@ struct periodic_tx_pattern {
|
||||
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
|
||||
* @reqId: request id
|
||||
@@ -3287,50 +3256,6 @@ struct wmi_dual_mac_config {
|
||||
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
|
||||
* @ssid: SSID which is being hotlisted
|
||||
@@ -7355,22 +7280,6 @@ enum WMI_HOST_CALIBRATION_STATUS {
|
||||
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
|
||||
* @data: Pointer to data
|
||||
|
217
wmi/inc/wmi_unified_pmo_api.h
Normal file
217
wmi/inc/wmi_unified_pmo_api.h
Normal 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_ */
|
@@ -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,
|
||||
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,
|
||||
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,
|
||||
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,
|
||||
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);
|
||||
#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,
|
||||
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_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,
|
||||
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,
|
||||
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 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,
|
||||
struct periodic_tx_pattern *
|
||||
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,
|
||||
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,
|
||||
struct flashing_req_params *flashing);
|
||||
|
||||
@@ -1282,7 +1290,6 @@ struct wmi_unified {
|
||||
struct wmi_cmd_init saved_wmi_init_cmd;
|
||||
uint32_t num_of_diag_events_logs;
|
||||
uint32_t *events_logs_list;
|
||||
struct host_offload_req_param arp_info;
|
||||
#ifdef WLAN_OPEN_SOURCE
|
||||
struct fwdebug dbglog;
|
||||
struct dentry *debugfs_phy;
|
||||
|
@@ -2058,104 +2058,6 @@ QDF_STATUS wmi_unified_link_status_req_cmd(void *wmi_hdl,
|
||||
return QDF_STATUS_E_FAILURE;
|
||||
}
|
||||
|
||||
#ifdef FEATURE_WLAN_LPHB
|
||||
|
||||
/**
|
||||
* wmi_unified_lphb_config_hbenable_cmd() - enable command of LPHB configuration requests
|
||||
* @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_t wmi_handle = (wmi_unified_t) wmi_hdl;
|
||||
|
||||
if (wmi_handle->ops->send_lphb_config_hbenable_cmd)
|
||||
return wmi_handle->ops->send_lphb_config_hbenable_cmd(wmi_handle,
|
||||
params);
|
||||
|
||||
return QDF_STATUS_E_FAILURE;
|
||||
}
|
||||
|
||||
/**
|
||||
* wmi_unified_lphb_config_tcp_params_cmd() - set tcp params of LPHB configuration requests
|
||||
* @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_t wmi_handle = (wmi_unified_t) wmi_hdl;
|
||||
|
||||
if (wmi_handle->ops->send_lphb_config_tcp_params_cmd)
|
||||
return wmi_handle->ops->send_lphb_config_tcp_params_cmd(wmi_handle,
|
||||
lphb_conf_req);
|
||||
|
||||
return QDF_STATUS_E_FAILURE;
|
||||
}
|
||||
|
||||
/**
|
||||
* wmi_unified_lphb_config_tcp_pkt_filter_cmd() - configure tcp packet filter command of LPHB
|
||||
* @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_t wmi_handle = (wmi_unified_t) wmi_hdl;
|
||||
|
||||
if (wmi_handle->ops->send_lphb_config_tcp_pkt_filter_cmd)
|
||||
return wmi_handle->ops->send_lphb_config_tcp_pkt_filter_cmd(wmi_handle,
|
||||
g_hb_tcp_filter_fp);
|
||||
|
||||
return QDF_STATUS_E_FAILURE;
|
||||
}
|
||||
|
||||
/**
|
||||
* wmi_unified_lphb_config_udp_params_cmd() - configure udp param command of LPHB
|
||||
* @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_t wmi_handle = (wmi_unified_t) wmi_hdl;
|
||||
|
||||
if (wmi_handle->ops->send_lphb_config_udp_params_cmd)
|
||||
return wmi_handle->ops->send_lphb_config_udp_params_cmd(wmi_handle,
|
||||
lphb_conf_req);
|
||||
|
||||
return QDF_STATUS_E_FAILURE;
|
||||
}
|
||||
|
||||
/**
|
||||
* wmi_unified_lphb_config_udp_pkt_filter_cmd() - configure udp pkt filter command of LPHB
|
||||
* @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)
|
||||
{
|
||||
wmi_unified_t wmi_handle = (wmi_unified_t) wmi_hdl;
|
||||
|
||||
if (wmi_handle->ops->send_lphb_config_udp_pkt_filter_cmd)
|
||||
return wmi_handle->ops->send_lphb_config_udp_pkt_filter_cmd(wmi_handle,
|
||||
lphb_conf_req);
|
||||
|
||||
return QDF_STATUS_E_FAILURE;
|
||||
}
|
||||
#endif /* FEATURE_WLAN_LPHB */
|
||||
|
||||
/**
|
||||
* wmi_unified_process_dhcp_ind() - process dhcp indication from SME
|
||||
* @wmi_handle: wmi handle
|
||||
@@ -2216,26 +2118,6 @@ QDF_STATUS wmi_unified_egap_conf_params_cmd(void *wmi_hdl,
|
||||
|
||||
#endif
|
||||
|
||||
/**
|
||||
* wmi_unified_action_frame_patterns_cmd() - send wmi cmd of action filter params
|
||||
* @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 action_wakeup_set_param *action_params)
|
||||
{
|
||||
wmi_unified_t wmi_handle = (wmi_unified_t) wmi_hdl;
|
||||
|
||||
if (wmi_handle->ops->send_action_frame_patterns_cmd)
|
||||
return wmi_handle->ops->send_action_frame_patterns_cmd(
|
||||
wmi_handle,
|
||||
action_params);
|
||||
|
||||
return QDF_STATUS_E_FAILURE;
|
||||
}
|
||||
|
||||
/**
|
||||
* wmi_unified_fw_profiling_data_cmd() - send FW profiling cmd to WLAN FW
|
||||
* @wmi_handl: wmi handle
|
||||
@@ -2257,30 +2139,6 @@ QDF_STATUS wmi_unified_fw_profiling_data_cmd(void *wmi_hdl,
|
||||
return QDF_STATUS_E_FAILURE;
|
||||
}
|
||||
|
||||
#ifdef FEATURE_WLAN_RA_FILTERING
|
||||
/**
|
||||
* 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_t wmi_handle = (wmi_unified_t) wmi_hdl;
|
||||
|
||||
if (wmi_handle->ops->send_wow_sta_ra_filter_cmd)
|
||||
return wmi_handle->ops->send_wow_sta_ra_filter_cmd(wmi_handle,
|
||||
vdev_id, default_pattern, rate_limit_interval);
|
||||
|
||||
return QDF_STATUS_E_FAILURE;
|
||||
|
||||
}
|
||||
#endif /* FEATURE_WLAN_RA_FILTERING */
|
||||
|
||||
/**
|
||||
* wmi_unified_nat_keepalive_en_cmd() - enable NAT keepalive filter
|
||||
* @wmi_handle: wmi handle
|
||||
@@ -2387,62 +2245,6 @@ QDF_STATUS wmi_unified_pktlog_wmi_send_cmd(void *wmi_hdl,
|
||||
#endif
|
||||
#endif /* REMOVE_PKT_LOG */
|
||||
|
||||
/**
|
||||
* 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_t wmi_handle = (wmi_unified_t) wmi_hdl;
|
||||
|
||||
if (wmi_handle->ops->send_add_wow_wakeup_event_cmd)
|
||||
return wmi_handle->ops->send_add_wow_wakeup_event_cmd(
|
||||
wmi_handle, vdev_id, bitmap, enable);
|
||||
|
||||
return QDF_STATUS_E_FAILURE;
|
||||
}
|
||||
|
||||
/**
|
||||
* 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_t wmi_handle = (wmi_unified_t) wmi_hdl;
|
||||
|
||||
if (wmi_handle->ops->send_wow_patterns_to_fw_cmd)
|
||||
return wmi_handle->ops->send_wow_patterns_to_fw_cmd(wmi_handle,
|
||||
vdev_id, ptrn_id, ptrn,
|
||||
ptrn_len, ptrn_offset, mask,
|
||||
mask_len, user, default_patterns);
|
||||
|
||||
return QDF_STATUS_E_FAILURE;
|
||||
}
|
||||
|
||||
/**
|
||||
* wmi_unified_wow_delete_pattern_cmd() - delete wow pattern in target
|
||||
* @wmi_handle: wmi handle
|
||||
@@ -2587,73 +2389,6 @@ QDF_STATUS wmi_unified_config_packet_filter_cmd(void *wmi_hdl,
|
||||
return QDF_STATUS_E_FAILURE;
|
||||
}
|
||||
|
||||
/**
|
||||
* 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_t wmi_handle = (wmi_unified_t) wmi_hdl;
|
||||
|
||||
if (wmi_handle->ops->send_add_clear_mcbc_filter_cmd)
|
||||
return wmi_handle->ops->send_add_clear_mcbc_filter_cmd(wmi_handle,
|
||||
vdev_id, multicast_addr, clearList);
|
||||
|
||||
return QDF_STATUS_E_FAILURE;
|
||||
}
|
||||
|
||||
/**
|
||||
* 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 gtk_offload_params *params,
|
||||
bool enable_offload,
|
||||
uint32_t gtk_offload_opcode)
|
||||
{
|
||||
wmi_unified_t wmi_handle = (wmi_unified_t) wmi_hdl;
|
||||
|
||||
if (wmi_handle->ops->send_gtk_offload_cmd)
|
||||
return wmi_handle->ops->send_gtk_offload_cmd(wmi_handle,
|
||||
vdev_id, params,
|
||||
enable_offload, gtk_offload_opcode);
|
||||
|
||||
return QDF_STATUS_E_FAILURE;
|
||||
}
|
||||
|
||||
/**
|
||||
* 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_t wmi_handle = (wmi_unified_t) wmi_hdl;
|
||||
|
||||
if (wmi_handle->ops->send_process_gtk_offload_getinfo_cmd)
|
||||
return wmi_handle->ops->send_process_gtk_offload_getinfo_cmd(wmi_handle,
|
||||
vdev_id,
|
||||
offload_req_opcode);
|
||||
|
||||
return QDF_STATUS_E_FAILURE;
|
||||
}
|
||||
|
||||
/**
|
||||
* wmi_unified_process_add_periodic_tx_ptrn_cmd - add periodic tx ptrn
|
||||
* @wmi_handle: wmi handle
|
||||
@@ -3190,33 +2925,6 @@ QDF_STATUS wmi_unified_pdev_set_dual_mac_config_cmd(void *wmi_hdl,
|
||||
return QDF_STATUS_E_FAILURE;
|
||||
}
|
||||
|
||||
/**
|
||||
* wmi_unified_enable_arp_ns_offload_cmd() - enable ARP NS offload
|
||||
* @wmi_hdl: wmi handle
|
||||
* @param: offload request
|
||||
* @arp_only: flag
|
||||
*
|
||||
* 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 host_offload_req_param *arp_offload_req,
|
||||
struct host_offload_req_param *ns_offload_req,
|
||||
bool arp_only,
|
||||
uint8_t vdev_id)
|
||||
{
|
||||
wmi_unified_t wmi_handle = (wmi_unified_t) wmi_hdl;
|
||||
|
||||
if (wmi_handle->ops->send_enable_arp_ns_offload_cmd)
|
||||
return wmi_handle->ops->send_enable_arp_ns_offload_cmd(wmi_handle,
|
||||
arp_offload_req, ns_offload_req, arp_only,
|
||||
vdev_id);
|
||||
|
||||
return QDF_STATUS_E_FAILURE;
|
||||
}
|
||||
|
||||
QDF_STATUS wmi_unified_configure_broadcast_filter_cmd(void *wmi_hdl,
|
||||
uint8_t vdev_id, bool bc_filter)
|
||||
{
|
||||
|
233
wmi/src/wmi_unified_pmo_api.c
Normal file
233
wmi/src/wmi_unified_pmo_api.c
Normal file
@@ -0,0 +1,233 @@
|
||||
/*
|
||||
* 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: Implement API's specific to PMO component.
|
||||
*/
|
||||
|
||||
#include "ol_if_athvar.h"
|
||||
#include "ol_defines.h"
|
||||
#include "wmi_unified_priv.h"
|
||||
#include "wmi_unified_pmo_api.h"
|
||||
|
||||
QDF_STATUS wmi_unified_add_wow_wakeup_event_cmd(void *wmi_hdl,
|
||||
uint32_t vdev_id,
|
||||
uint32_t bitmap,
|
||||
bool enable)
|
||||
{
|
||||
struct wmi_unified *wmi_handle = (struct wmi_unified *) wmi_hdl;
|
||||
|
||||
if (wmi_handle->ops->send_add_wow_wakeup_event_cmd)
|
||||
return wmi_handle->ops->send_add_wow_wakeup_event_cmd(
|
||||
wmi_handle, vdev_id, bitmap, enable);
|
||||
|
||||
return QDF_STATUS_E_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)
|
||||
{
|
||||
struct wmi_unified *wmi_handle = (struct wmi_unified *) wmi_hdl;
|
||||
|
||||
if (wmi_handle->ops->send_wow_patterns_to_fw_cmd)
|
||||
return wmi_handle->ops->send_wow_patterns_to_fw_cmd(wmi_handle,
|
||||
vdev_id, ptrn_id, ptrn,
|
||||
ptrn_len, ptrn_offset, mask,
|
||||
mask_len, user, default_patterns);
|
||||
|
||||
return QDF_STATUS_E_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)
|
||||
{
|
||||
struct wmi_unified *wmi_handle = (struct wmi_unified *)wmi_hdl;
|
||||
|
||||
if (wmi_handle->ops->send_add_clear_mcbc_filter_cmd)
|
||||
return wmi_handle->ops->send_add_clear_mcbc_filter_cmd(
|
||||
wmi_handle, vdev_id, multicast_addr, clearList);
|
||||
|
||||
return QDF_STATUS_E_FAILURE;
|
||||
}
|
||||
|
||||
|
||||
#ifdef FEATURE_WLAN_RA_FILTERING
|
||||
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)
|
||||
{
|
||||
|
||||
struct wmi_unified *wmi_handle = (struct wmi_unified *)wmi_hdl;
|
||||
|
||||
if (wmi_handle->ops->send_wow_sta_ra_filter_cmd)
|
||||
return wmi_handle->ops->send_wow_sta_ra_filter_cmd(wmi_handle,
|
||||
vdev_id, default_pattern, rate_limit_interval);
|
||||
|
||||
return QDF_STATUS_E_FAILURE;
|
||||
|
||||
}
|
||||
#endif /* FEATURE_WLAN_RA_FILTERING */
|
||||
|
||||
QDF_STATUS wmi_unified_enable_enhance_multicast_offload_cmd(
|
||||
void *wmi_hdl, uint8_t vdev_id, bool action)
|
||||
{
|
||||
struct wmi_unified *wmi_handle = (struct wmi_unified *)wmi_hdl;
|
||||
struct wmi_ops *ops;
|
||||
|
||||
ops = wmi_handle->ops;
|
||||
if (ops && ops->send_enable_enhance_multicast_offload_cmd)
|
||||
return ops->send_enable_enhance_multicast_offload_cmd(
|
||||
wmi_handle, vdev_id, action);
|
||||
|
||||
return QDF_STATUS_E_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)
|
||||
{
|
||||
struct wmi_unified *wmi_handle = (struct wmi_unified *)wmi_hdl;
|
||||
|
||||
if (wmi_handle->ops->extract_gtk_rsp_event)
|
||||
return wmi_handle->ops->extract_gtk_rsp_event(wmi_handle,
|
||||
evt_buf, gtk_rsp_param, len);
|
||||
|
||||
return QDF_STATUS_E_FAILURE;
|
||||
}
|
||||
|
||||
|
||||
QDF_STATUS wmi_unified_process_gtk_offload_getinfo_cmd(void *wmi_hdl,
|
||||
uint8_t vdev_id,
|
||||
uint64_t offload_req_opcode)
|
||||
{
|
||||
struct wmi_unified *wmi_handle = (struct wmi_unified *)wmi_hdl;
|
||||
|
||||
if (wmi_handle->ops->send_process_gtk_offload_getinfo_cmd)
|
||||
return wmi_handle->ops->send_process_gtk_offload_getinfo_cmd(
|
||||
wmi_handle, vdev_id, offload_req_opcode);
|
||||
|
||||
return QDF_STATUS_E_FAILURE;
|
||||
}
|
||||
|
||||
QDF_STATUS wmi_unified_action_frame_patterns_cmd(void *wmi_hdl,
|
||||
struct pmo_action_wakeup_set_params *action_params)
|
||||
{
|
||||
struct wmi_unified *wmi_handle = (struct wmi_unified *)wmi_hdl;
|
||||
|
||||
if (wmi_handle->ops->send_action_frame_patterns_cmd)
|
||||
return wmi_handle->ops->send_action_frame_patterns_cmd(
|
||||
wmi_handle, action_params);
|
||||
|
||||
return QDF_STATUS_E_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)
|
||||
{
|
||||
struct wmi_unified *wmi_handle = (struct wmi_unified *)wmi_hdl;
|
||||
|
||||
if (wmi_handle->ops->send_gtk_offload_cmd)
|
||||
return wmi_handle->ops->send_gtk_offload_cmd(wmi_handle,
|
||||
vdev_id, params, enable_offload,
|
||||
gtk_offload_opcode);
|
||||
|
||||
return QDF_STATUS_E_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)
|
||||
{
|
||||
struct wmi_unified *wmi_handle = (struct wmi_unified *)wmi_hdl;
|
||||
|
||||
if (wmi_handle->ops->send_enable_arp_ns_offload_cmd)
|
||||
return wmi_handle->ops->send_enable_arp_ns_offload_cmd(
|
||||
wmi_handle,
|
||||
arp_offload_req, ns_offload_req, vdev_id);
|
||||
|
||||
return QDF_STATUS_E_FAILURE;
|
||||
}
|
||||
|
||||
#ifdef FEATURE_WLAN_LPHB
|
||||
QDF_STATUS wmi_unified_lphb_config_hbenable_cmd(void *wmi_hdl,
|
||||
wmi_hb_set_enable_cmd_fixed_param *params)
|
||||
{
|
||||
struct wmi_unified *wmi_handle = (struct wmi_unified *)wmi_hdl;
|
||||
|
||||
if (wmi_handle->ops->send_lphb_config_hbenable_cmd)
|
||||
return wmi_handle->ops->send_lphb_config_hbenable_cmd(
|
||||
wmi_handle, params);
|
||||
|
||||
return QDF_STATUS_E_FAILURE;
|
||||
}
|
||||
|
||||
QDF_STATUS wmi_unified_lphb_config_tcp_params_cmd(void *wmi_hdl,
|
||||
wmi_hb_set_tcp_params_cmd_fixed_param *lphb_conf_req)
|
||||
{
|
||||
struct wmi_unified *wmi_handle = (struct wmi_unified *)wmi_hdl;
|
||||
|
||||
if (wmi_handle->ops->send_lphb_config_tcp_params_cmd)
|
||||
return wmi_handle->ops->send_lphb_config_tcp_params_cmd(
|
||||
wmi_handle, lphb_conf_req);
|
||||
|
||||
return QDF_STATUS_E_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)
|
||||
{
|
||||
struct wmi_unified *wmi_handle = (struct wmi_unified *)wmi_hdl;
|
||||
|
||||
if (wmi_handle->ops->send_lphb_config_tcp_pkt_filter_cmd)
|
||||
return wmi_handle->ops->send_lphb_config_tcp_pkt_filter_cmd(
|
||||
wmi_handle, g_hb_tcp_filter_fp);
|
||||
|
||||
return QDF_STATUS_E_FAILURE;
|
||||
}
|
||||
|
||||
QDF_STATUS wmi_unified_lphb_config_udp_params_cmd(void *wmi_hdl,
|
||||
wmi_hb_set_udp_params_cmd_fixed_param *lphb_conf_req)
|
||||
{
|
||||
struct wmi_unified *wmi_handle = (struct wmi_unified *)wmi_hdl;
|
||||
|
||||
if (wmi_handle->ops->send_lphb_config_udp_params_cmd)
|
||||
return wmi_handle->ops->send_lphb_config_udp_params_cmd(
|
||||
wmi_handle, lphb_conf_req);
|
||||
|
||||
return QDF_STATUS_E_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)
|
||||
{
|
||||
struct wmi_unified *wmi_handle = (struct wmi_unified *)wmi_hdl;
|
||||
|
||||
if (wmi_handle->ops->send_lphb_config_udp_pkt_filter_cmd)
|
||||
return wmi_handle->ops->send_lphb_config_udp_pkt_filter_cmd(
|
||||
wmi_handle, lphb_conf_req);
|
||||
|
||||
return QDF_STATUS_E_FAILURE;
|
||||
}
|
||||
#endif /* FEATURE_WLAN_LPHB */
|
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user