
Add WMI support to send action OUI extensions to firmware. For STA interface, this feature is intended to control mode of connection, connected AP's in-activity time, Tx rate etc., Change-Id: I6a0bc9d3f7f0d57805b872cae4baa1fe84fb8193 CRs-Fixed: 2254509
97 строки
3.3 KiB
C
97 строки
3.3 KiB
C
/*
|
|
* Copyright (c) 2016-2018 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.
|
|
*/
|
|
|
|
#ifndef _WMI_UNIFIED_ACTION_OUI_TLV_H_
|
|
#define _WMI_UNIFIED_ACTION_OUI_TLV_H_
|
|
|
|
#ifdef WLAN_FEATURE_ACTION_OUI
|
|
|
|
#include "wmi.h"
|
|
#include "wmi_unified.h"
|
|
#include "wmi_unified_api.h"
|
|
#include "wmi_unified_param.h"
|
|
|
|
/**
|
|
* wmi_get_action_oui_info_mask() - convert info mask to firmware specific
|
|
* @info_mask: host specific info mask
|
|
*
|
|
* Return: firmware specific information mask
|
|
*/
|
|
uint32_t wmi_get_action_oui_info_mask(uint32_t info_mask);
|
|
|
|
/**
|
|
* wmi_get_action_oui_id() - convert action id to firmware specific
|
|
* @action_id: host specific action id
|
|
* @id: output pointer to hold converted fw specific action id
|
|
*
|
|
* Return: true on conversion else failure
|
|
*/
|
|
bool wmi_get_action_oui_id(enum action_oui_id action_id,
|
|
wmi_vendor_oui_action_id *id);
|
|
|
|
|
|
/**
|
|
* wmi_fill_oui_extensions() - populates wmi_vendor_oui_ext array
|
|
* @extension: pointer to user supplied action oui extensions
|
|
* @no_oui_extns: number of action oui extensions
|
|
* @cmd_ext: output pointer to TLV
|
|
*
|
|
* This function parses the user supplied input data and populates the
|
|
* array of variable structures TLV in WMI_PDEV_CONFIG_VENDOR_OUI_ACTION_CMDID
|
|
*
|
|
* Return: None
|
|
*/
|
|
void wmi_fill_oui_extensions(struct action_oui_extension *extension,
|
|
uint32_t no_oui_extns,
|
|
wmi_vendor_oui_ext *cmd_ext);
|
|
|
|
/**
|
|
* wmi_fill_oui_extensions_buffer() - populates data buffer in action oui cmd
|
|
* @extension: pointer to user supplied action oui extensions
|
|
* @cmd_ext: pointer to vendor_oui_ext TLV in action oui cmd
|
|
* @no_oui_extns: number of action oui extensions
|
|
* @rem_var_buf_len: remaining length of buffer to be populated
|
|
* @var_buf: output pointer to hold variable length data
|
|
*
|
|
* This function parses the user supplied input data and populates the variable
|
|
* buffer of type array byte TLV in WMI_PDEV_CONFIG_VENDOR_OUI_ACTION_CMDID
|
|
*
|
|
* Return: QDF_STATUS_SUCCESS for successful fill else QDF_STATUS_E_INVAL
|
|
*/
|
|
QDF_STATUS
|
|
wmi_fill_oui_extensions_buffer(struct action_oui_extension *extension,
|
|
wmi_vendor_oui_ext *cmd_ext,
|
|
uint32_t no_oui_extns, uint32_t rem_var_buf_len,
|
|
uint8_t *var_buf);
|
|
|
|
/**
|
|
* send_action_oui_cmd_tlv() - send action oui cmd to firmware
|
|
* @wmi_handle: wmi handler
|
|
* @req: pointer to action oui info
|
|
*
|
|
* Return: QDF_STATUS_SUCCESS on successful transmission else
|
|
* QDF_STATUS_E_INVAL or QDF_STATUS_E_NOMEM
|
|
*/
|
|
QDF_STATUS
|
|
send_action_oui_cmd_tlv(wmi_unified_t wmi_handle,
|
|
struct action_oui_request *req);
|
|
|
|
#endif /* WLAN_FEATURE_ACTION_OUI */
|
|
|
|
#endif /* _WMI_UNIFIED_ACTION_OUI_TLV_H_ */
|