1*5113495bSYour Name /* 2*5113495bSYour Name * Copyright (c) 2016-2018 The Linux Foundation. All rights reserved. 3*5113495bSYour Name * 4*5113495bSYour Name * Permission to use, copy, modify, and/or distribute this software for 5*5113495bSYour Name * any purpose with or without fee is hereby granted, provided that the 6*5113495bSYour Name * above copyright notice and this permission notice appear in all 7*5113495bSYour Name * copies. 8*5113495bSYour Name * 9*5113495bSYour Name * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL 10*5113495bSYour Name * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED 11*5113495bSYour Name * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE 12*5113495bSYour Name * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL 13*5113495bSYour Name * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR 14*5113495bSYour Name * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER 15*5113495bSYour Name * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR 16*5113495bSYour Name * PERFORMANCE OF THIS SOFTWARE. 17*5113495bSYour Name */ 18*5113495bSYour Name 19*5113495bSYour Name #ifndef _WMI_UNIFIED_APF_TLV_H_ 20*5113495bSYour Name #define _WMI_UNIFIED_APF_TLV_H_ 21*5113495bSYour Name 22*5113495bSYour Name #ifdef FEATURE_WLAN_APF 23*5113495bSYour Name 24*5113495bSYour Name #include "wmi_unified.h" 25*5113495bSYour Name #include "wmi_unified_api.h" 26*5113495bSYour Name #include "wmi_unified_param.h" 27*5113495bSYour Name 28*5113495bSYour Name /** 29*5113495bSYour Name * wmi_send_set_active_apf_mode_cmd_tlv() - configure active APF mode in FW 30*5113495bSYour Name * @wmi_handle: the WMI handle 31*5113495bSYour Name * @vdev_id: the Id of the vdev to apply the configuration to 32*5113495bSYour Name * @ucast_mode: the active APF mode to configure for unicast packets 33*5113495bSYour Name * @mcast_bcast_mode: the active APF mode to configure for multicast/broadcast 34*5113495bSYour Name * packets 35*5113495bSYour Name * 36*5113495bSYour Name * Return: QDF status 37*5113495bSYour Name */ 38*5113495bSYour Name QDF_STATUS 39*5113495bSYour Name wmi_send_set_active_apf_mode_cmd_tlv(wmi_unified_t wmi_handle, 40*5113495bSYour Name uint8_t vdev_id, 41*5113495bSYour Name enum wmi_host_active_apf_mode ucast_mode, 42*5113495bSYour Name enum wmi_host_active_apf_mode 43*5113495bSYour Name mcast_bcast_mode); 44*5113495bSYour Name 45*5113495bSYour Name /** 46*5113495bSYour Name * wmi_send_apf_enable_cmd_tlv() - send cmd to enable/disable APF interpreter 47*5113495bSYour Name * @wmi_handle: the WMI handle 48*5113495bSYour Name * @vdev_id: VDEV on which APF interpreter is to be enabled/disabled 49*5113495bSYour Name * @enable: true: enable, false: disable 50*5113495bSYour Name * 51*5113495bSYour Name * Return: QDF status 52*5113495bSYour Name */ 53*5113495bSYour Name QDF_STATUS 54*5113495bSYour Name wmi_send_apf_enable_cmd_tlv(wmi_unified_t wmi_handle, uint32_t vdev_id, 55*5113495bSYour Name bool enable); 56*5113495bSYour Name 57*5113495bSYour Name /** 58*5113495bSYour Name * wmi_send_apf_write_work_memory_cmd_tlv() - send cmd to write into the APF 59*5113495bSYour Name * work 60*5113495bSYour Name * memory 61*5113495bSYour Name * @wmi_handle: the WMI handle 62*5113495bSYour Name * @apf_write_params: parameters and buffer pointer for the write 63*5113495bSYour Name * 64*5113495bSYour Name * Return: QDF status 65*5113495bSYour Name */ 66*5113495bSYour Name QDF_STATUS 67*5113495bSYour Name wmi_send_apf_write_work_memory_cmd_tlv(wmi_unified_t wmi_handle, 68*5113495bSYour Name struct wmi_apf_write_memory_params 69*5113495bSYour Name *apf_write_params); 70*5113495bSYour Name 71*5113495bSYour Name /** 72*5113495bSYour Name * wmi_send_apf_read_work_memory_cmd_tlv() - send cmd to read part of APF 73*5113495bSYour Name * work memory 74*5113495bSYour Name * @wmi_handle: the WMI handle 75*5113495bSYour Name * @apf_read_params: contains relative address and length to read from 76*5113495bSYour Name * 77*5113495bSYour Name * Return: QDF status 78*5113495bSYour Name */ 79*5113495bSYour Name QDF_STATUS 80*5113495bSYour Name wmi_send_apf_read_work_memory_cmd_tlv(wmi_unified_t wmi_handle, 81*5113495bSYour Name struct wmi_apf_read_memory_params 82*5113495bSYour Name *apf_read_params); 83*5113495bSYour Name 84*5113495bSYour Name /** 85*5113495bSYour Name * wmi_extract_apf_read_memory_resp_event_tlv() - extract read memory response 86*5113495bSYour Name * event into the given structure pointer 87*5113495bSYour Name * @wmi_handle: the WMI handle 88*5113495bSYour Name * @evt_buf: Pointer to the event buffer 89*5113495bSYour Name * @resp: pointer to memory to extract event parameters into 90*5113495bSYour Name * 91*5113495bSYour Name * Return: QDF status 92*5113495bSYour Name */ 93*5113495bSYour Name QDF_STATUS 94*5113495bSYour Name wmi_extract_apf_read_memory_resp_event_tlv(wmi_unified_t wmi_handle, 95*5113495bSYour Name void *evt_buf, 96*5113495bSYour Name struct wmi_apf_read_memory_resp_event_params 97*5113495bSYour Name *resp); 98*5113495bSYour Name #endif /* FEATURE_WLAN_APF */ 99*5113495bSYour Name 100*5113495bSYour Name #endif /* _WMI_UNIFIED_APF_TLV_H_ */ 101