qcacmn: Add support for NLA type CAP_RESP in LOWI
Host driver processes cld80211 vendor sub command CLD80211_VENDOR_SUB_CMD_GET_CAPS and respond with NLA type CAP response CRs-Fixed: 2595140 Change-Id: I5a6aa1fac537ca618404520b81c541a20dafd6fb
This commit is contained in:

committed by
nshrivas

vanhempi
644413b274
commit
23a3603951
@@ -24,9 +24,7 @@
|
||||
#define _WIFI_POS_API_H_
|
||||
|
||||
/* Include files */
|
||||
#include "qdf_types.h"
|
||||
#include "qdf_status.h"
|
||||
#include "qdf_trace.h"
|
||||
#include "wifi_pos_utils_pub.h"
|
||||
|
||||
/* forward reference */
|
||||
struct wlan_objmgr_psoc;
|
||||
@@ -113,7 +111,7 @@ struct qdf_packed wifi_pos_ch_info_rsp {
|
||||
};
|
||||
|
||||
/**
|
||||
* struct wmi_pos_peer_status_info - Status information for a given peer
|
||||
* struct wifi_pos_peer_status_info - Status information for a given peer
|
||||
* @peer_mac_addr: peer mac address
|
||||
* @peer_status: peer status: 1: CONNECTED, 2: DISCONNECTED
|
||||
* @vdev_id: vdev_id for the peer mac
|
||||
@@ -121,7 +119,7 @@ struct qdf_packed wifi_pos_ch_info_rsp {
|
||||
* @reserved0: reserved0
|
||||
* @peer_chan_info: channel info on which peer is connected
|
||||
*/
|
||||
struct qdf_packed wmi_pos_peer_status_info {
|
||||
struct qdf_packed wifi_pos_peer_status_info {
|
||||
uint8_t peer_mac_addr[ETH_ALEN];
|
||||
uint8_t peer_status;
|
||||
uint8_t vdev_id;
|
||||
@@ -138,15 +136,17 @@ struct qdf_packed wmi_pos_peer_status_info {
|
||||
* @buf_len: request buffer length
|
||||
* @field_info_buf: buffer containing field info
|
||||
* @field_info_buf_len: length of field info buffer
|
||||
* @rsp_version: nl type or ani type
|
||||
*
|
||||
*/
|
||||
struct wifi_pos_req_msg {
|
||||
uint32_t msg_type;
|
||||
enum wifi_pos_cmd_ids msg_type;
|
||||
uint32_t pid;
|
||||
uint8_t *buf;
|
||||
uint32_t buf_len;
|
||||
struct wifi_pos_field_info *field_info_buf;
|
||||
uint32_t field_info_buf_len;
|
||||
uint32_t rsp_version;
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -340,6 +340,14 @@ void ucfg_wifi_pos_set_ftm_cap(struct wlan_objmgr_psoc *psoc, uint32_t val);
|
||||
void ucfg_wifi_pos_set_oem_6g_supported(struct wlan_objmgr_psoc *psoc,
|
||||
bool val);
|
||||
|
||||
/**
|
||||
* ucfg_wifi_pos_is_nl_rsp: API to check if response is nl or ani type
|
||||
* @psoc: psoc object
|
||||
*
|
||||
* Return: true if response is nl type
|
||||
*/
|
||||
bool ucfg_wifi_pos_is_nl_rsp(struct wlan_objmgr_psoc *psoc);
|
||||
|
||||
/**
|
||||
* wifi_pos_get_app_pid: returns oem app pid.
|
||||
* @psoc: pointer to psoc object
|
||||
|
129
umac/wifi_pos/inc/wifi_pos_utils_pub.h
Normal file
129
umac/wifi_pos/inc/wifi_pos_utils_pub.h
Normal file
@@ -0,0 +1,129 @@
|
||||
/*
|
||||
* Copyright (c) 2020, 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: wifi_pos_utils_pub.h
|
||||
* This file declares public utils of wifi positioning component
|
||||
*/
|
||||
#ifndef _WIFI_POS_UTILS_PUB_H_
|
||||
#define _WIFI_POS_UTILS_PUB_H_
|
||||
|
||||
/* Include files */
|
||||
#include "qdf_types.h"
|
||||
#include "qdf_status.h"
|
||||
#include "qdf_trace.h"
|
||||
|
||||
#define WIFIPOS_RESERVE_BYTES 100
|
||||
#define OEM_TARGET_SIGNATURE_LEN 8
|
||||
#define OEM_TARGET_SIGNATURE "QUALCOMM"
|
||||
|
||||
#define OEM_CAP_MAX_NUM_CHANNELS 128
|
||||
|
||||
#define WIFI_POS_RSP_V1_FLAT_MEMORY 0x00000001
|
||||
#define WIFI_POS_RSP_V2_NL 0x00000002
|
||||
|
||||
/**
|
||||
* enum wifi_pos_cmd_ids
|
||||
* @WIFI_POS_CMD_REGISTRATION: app registration
|
||||
* @WIFI_POS_CMD_GET_CAPS: get driver capabilities
|
||||
* @WIFI_POS_CMD_GET_CH_INFO: get channel info
|
||||
* @WIFI_POS_CMD_OEM_DATA: oem data req/rsp
|
||||
* @WIFI_POS_CMD_MAX: Max cld80211 vendor sub cmds
|
||||
*/
|
||||
|
||||
enum wifi_pos_cmd_ids {
|
||||
WIFI_POS_CMD_INVALID = 0,
|
||||
WIFI_POS_CMD_REGISTRATION = 1,
|
||||
WIFI_POS_CMD_SET_CAPS = 2,
|
||||
WIFI_POS_CMD_GET_CAPS = 3,
|
||||
WIFI_POS_CMD_GET_CH_INFO = 4,
|
||||
WIFI_POS_CMD_OEM_DATA = 5,
|
||||
WIFI_POS_CMD_ERROR = 6,
|
||||
WIFI_POS_PEER_STATUS_IND = 7,
|
||||
/* keep last */
|
||||
WIFI_POS_CMD__AFTER_LAST,
|
||||
WIFI_POS_CMD_MAX =
|
||||
WIFI_POS_CMD__AFTER_LAST - 1
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* struct wifi_pos_driver_version - Driver version identifier (w.x.y.z)
|
||||
* @major: Version ID major number
|
||||
* @minor: Version ID minor number
|
||||
* @patch: Version ID patch number
|
||||
* @build: Version ID build number
|
||||
*/
|
||||
struct qdf_packed wifi_pos_driver_version {
|
||||
uint8_t major;
|
||||
uint8_t minor;
|
||||
uint8_t patch;
|
||||
uint8_t build;
|
||||
};
|
||||
|
||||
/**
|
||||
* struct wifi_pos_driver_caps - OEM Data Capabilities
|
||||
* @oem_target_signature: Signature of chipset vendor
|
||||
* @oem_target_type: Chip type
|
||||
* @oem_fw_version: Firmware version
|
||||
* @driver_version: Host software version
|
||||
* @allowed_dwell_time_min: Channel dwell time - allowed minimum
|
||||
* @allowed_dwell_time_max: Channel dwell time - allowed maximum
|
||||
* @curr_dwell_time_min: Channel dwell time - current minimim
|
||||
* @curr_dwell_time_max: Channel dwell time - current maximum
|
||||
* @supported_bands: Supported bands, 2.4G or 5G Hz
|
||||
* @num_channels: Num of channels IDs to follow
|
||||
* @channel_list: List of channel IDs
|
||||
*/
|
||||
struct qdf_packed wifi_pos_driver_caps {
|
||||
uint8_t oem_target_signature[OEM_TARGET_SIGNATURE_LEN];
|
||||
uint32_t oem_target_type;
|
||||
uint32_t oem_fw_version;
|
||||
struct wifi_pos_driver_version driver_version;
|
||||
uint16_t allowed_dwell_time_min;
|
||||
uint16_t allowed_dwell_time_max;
|
||||
uint16_t curr_dwell_time_min;
|
||||
uint16_t curr_dwell_time_max;
|
||||
uint16_t supported_bands;
|
||||
uint16_t num_channels;
|
||||
uint8_t channel_list[OEM_CAP_MAX_NUM_CHANNELS];
|
||||
};
|
||||
|
||||
/**
|
||||
* struct wifi_pos_user_defined_caps - OEM capability to be exchanged between
|
||||
* host and userspace
|
||||
* @ftm_rr: FTM range report capability bit
|
||||
* @lci_capability: LCI capability bit
|
||||
* @reserved1: reserved
|
||||
* @reserved2: reserved
|
||||
*/
|
||||
struct wifi_pos_user_defined_caps {
|
||||
uint32_t ftm_rr:1;
|
||||
uint32_t lci_capability:1;
|
||||
uint32_t reserved1:30;
|
||||
uint32_t reserved2;
|
||||
};
|
||||
|
||||
/**
|
||||
* struct wifi_pos_oem_get_cap_rsp - capabilities set by userspace and target.
|
||||
* @driver_cap: target capabilities
|
||||
* @user_defined_cap: capabilities set by userspace via set request
|
||||
*/
|
||||
struct qdf_packed wifi_pos_oem_get_cap_rsp {
|
||||
struct wifi_pos_driver_caps driver_cap;
|
||||
struct wifi_pos_user_defined_caps user_defined_cap;
|
||||
};
|
||||
#endif
|
@@ -216,7 +216,7 @@ static QDF_STATUS wifi_pos_process_set_cap_req(struct wlan_objmgr_psoc *psoc,
|
||||
wifi_pos_obj->lci_capability = caps->lci_capability;
|
||||
error_code = qdf_status_to_os_return(QDF_STATUS_SUCCESS);
|
||||
wifi_pos_obj->wifi_pos_send_rsp(wifi_pos_obj->app_pid,
|
||||
ANI_MSG_SET_OEM_CAP_RSP,
|
||||
WIFI_POS_CMD_SET_CAPS,
|
||||
sizeof(error_code),
|
||||
(uint8_t *)&error_code);
|
||||
|
||||
@@ -236,13 +236,14 @@ static QDF_STATUS wifi_pos_process_get_cap_req(struct wlan_objmgr_psoc *psoc,
|
||||
}
|
||||
|
||||
wifi_pos_debug("Received get cap req pid(%d), len(%d)",
|
||||
req->pid, req->buf_len);
|
||||
req->pid, req->buf_len);
|
||||
|
||||
wifi_pos_populate_caps(psoc, &cap_rsp.driver_cap);
|
||||
cap_rsp.user_defined_cap.ftm_rr = wifi_pos_obj->ftm_rr;
|
||||
cap_rsp.user_defined_cap.lci_capability = wifi_pos_obj->lci_capability;
|
||||
|
||||
wifi_pos_obj->wifi_pos_send_rsp(wifi_pos_obj->app_pid,
|
||||
ANI_MSG_GET_OEM_CAP_RSP,
|
||||
WIFI_POS_CMD_GET_CAPS,
|
||||
sizeof(cap_rsp),
|
||||
(uint8_t *)&cap_rsp);
|
||||
|
||||
@@ -276,7 +277,7 @@ QDF_STATUS wifi_pos_send_report_resp(struct wlan_objmgr_psoc *psoc,
|
||||
memcpy(&err_report.err_rpt.dest_mac, dest_mac, QDF_MAC_ADDR_SIZE);
|
||||
|
||||
wifi_pos_obj->wifi_pos_send_rsp(wifi_pos_obj->app_pid,
|
||||
ANI_MSG_OEM_DATA_RSP,
|
||||
WIFI_POS_CMD_OEM_DATA,
|
||||
sizeof(err_report),
|
||||
(uint8_t *)&err_report);
|
||||
|
||||
@@ -548,7 +549,7 @@ static QDF_STATUS wifi_pos_process_app_reg_req(struct wlan_objmgr_psoc *psoc,
|
||||
wifi_pos_debug("no active vdev");
|
||||
|
||||
vdev_idx = 0;
|
||||
wifi_pos_obj->wifi_pos_send_rsp(req->pid, ANI_MSG_APP_REG_RSP,
|
||||
wifi_pos_obj->wifi_pos_send_rsp(req->pid, WIFI_POS_CMD_REGISTRATION,
|
||||
rsp_len, (uint8_t *)app_reg_rsp);
|
||||
|
||||
qdf_mem_free(app_reg_rsp);
|
||||
@@ -556,7 +557,7 @@ static QDF_STATUS wifi_pos_process_app_reg_req(struct wlan_objmgr_psoc *psoc,
|
||||
|
||||
app_reg_failed:
|
||||
|
||||
wifi_pos_obj->wifi_pos_send_rsp(req->pid, ANI_MSG_OEM_ERROR,
|
||||
wifi_pos_obj->wifi_pos_send_rsp(req->pid, WIFI_POS_CMD_ERROR,
|
||||
sizeof(err), &err);
|
||||
return ret;
|
||||
}
|
||||
@@ -572,15 +573,15 @@ static QDF_STATUS wifi_pos_tlv_callback(struct wlan_objmgr_psoc *psoc,
|
||||
{
|
||||
wifi_pos_debug("enter: msg_type: %d", req->msg_type);
|
||||
switch (req->msg_type) {
|
||||
case ANI_MSG_APP_REG_REQ:
|
||||
case WIFI_POS_CMD_REGISTRATION:
|
||||
return wifi_pos_process_app_reg_req(psoc, req);
|
||||
case ANI_MSG_OEM_DATA_REQ:
|
||||
case WIFI_POS_CMD_OEM_DATA:
|
||||
return wifi_pos_process_data_req(psoc, req);
|
||||
case ANI_MSG_CHANNEL_INFO_REQ:
|
||||
case WIFI_POS_CMD_GET_CH_INFO:
|
||||
return wifi_pos_process_ch_info_req(psoc, req);
|
||||
case ANI_MSG_SET_OEM_CAP_REQ:
|
||||
case WIFI_POS_CMD_SET_CAPS:
|
||||
return wifi_pos_process_set_cap_req(psoc, req);
|
||||
case ANI_MSG_GET_OEM_CAP_REQ:
|
||||
case WIFI_POS_CMD_GET_CAPS:
|
||||
return wifi_pos_process_get_cap_req(psoc, req);
|
||||
default:
|
||||
wifi_pos_err("invalid request type");
|
||||
@@ -740,10 +741,10 @@ int wifi_pos_oem_rsp_handler(struct wlan_objmgr_psoc *psoc,
|
||||
qdf_mem_copy(&data[oem_rsp->rsp_len_1 + oem_rsp->dma_len],
|
||||
oem_rsp->data_2, oem_rsp->rsp_len_2);
|
||||
|
||||
wifi_pos_send_rsp(app_pid, ANI_MSG_OEM_DATA_RSP, len, data);
|
||||
wifi_pos_send_rsp(app_pid, WIFI_POS_CMD_OEM_DATA, len, data);
|
||||
qdf_mem_free(data);
|
||||
} else {
|
||||
wifi_pos_send_rsp(app_pid, ANI_MSG_OEM_DATA_RSP,
|
||||
wifi_pos_send_rsp(app_pid, WIFI_POS_CMD_OEM_DATA,
|
||||
oem_rsp->rsp_len_1, oem_rsp->data_1);
|
||||
}
|
||||
|
||||
|
@@ -27,7 +27,8 @@
|
||||
|
||||
QDF_STATUS ucfg_wifi_pos_process_req(struct wlan_objmgr_psoc *psoc,
|
||||
struct wifi_pos_req_msg *req,
|
||||
void (*send_rsp_cb)(uint32_t, uint32_t, uint32_t, uint8_t *))
|
||||
void (*send_rsp_cb)(uint32_t, enum wifi_pos_cmd_ids,
|
||||
uint32_t, uint8_t *))
|
||||
{
|
||||
uint8_t err;
|
||||
uint32_t app_pid;
|
||||
@@ -46,21 +47,22 @@ QDF_STATUS ucfg_wifi_pos_process_req(struct wlan_objmgr_psoc *psoc,
|
||||
wifi_pos_psoc_obj->wifi_pos_send_rsp = send_rsp_cb;
|
||||
is_app_registered = wifi_pos_psoc_obj->is_app_registered;
|
||||
app_pid = wifi_pos_psoc_obj->app_pid;
|
||||
wifi_pos_psoc_obj->rsp_version = req->rsp_version;
|
||||
qdf_spin_unlock_bh(&wifi_pos_psoc_obj->wifi_pos_lock);
|
||||
|
||||
if (!wifi_pos_psoc_obj->wifi_pos_req_handler) {
|
||||
wifi_pos_err("wifi_pos_psoc_obj->wifi_pos_req_handler is null");
|
||||
err = OEM_ERR_NULL_CONTEXT;
|
||||
send_rsp_cb(app_pid, ANI_MSG_OEM_ERROR, sizeof(err), &err);
|
||||
send_rsp_cb(app_pid, WIFI_POS_CMD_ERROR, sizeof(err), &err);
|
||||
return QDF_STATUS_E_NULL_VALUE;
|
||||
}
|
||||
|
||||
if (req->msg_type != ANI_MSG_APP_REG_REQ &&
|
||||
if (req->msg_type != WIFI_POS_CMD_REGISTRATION &&
|
||||
(!is_app_registered || app_pid != req->pid)) {
|
||||
wifi_pos_err("requesting app is not registered, app_registered: %d, requesting pid: %d, stored pid: %d",
|
||||
is_app_registered, req->pid, app_pid);
|
||||
err = OEM_ERR_APP_NOT_REGISTERED;
|
||||
send_rsp_cb(app_pid, ANI_MSG_OEM_ERROR, sizeof(err), &err);
|
||||
send_rsp_cb(app_pid, WIFI_POS_CMD_ERROR, sizeof(err), &err);
|
||||
return QDF_STATUS_E_INVAL;
|
||||
}
|
||||
|
||||
@@ -115,3 +117,26 @@ void ucfg_wifi_pos_set_oem_6g_supported(struct wlan_objmgr_psoc *psoc,
|
||||
wifi_pos_psoc->oem_6g_support_disable = val;
|
||||
qdf_spin_unlock_bh(&wifi_pos_psoc->wifi_pos_lock);
|
||||
}
|
||||
|
||||
bool ucfg_wifi_pos_is_nl_rsp(struct wlan_objmgr_psoc *psoc)
|
||||
{
|
||||
uint32_t val = 0;
|
||||
struct wifi_pos_psoc_priv_obj *wifi_pos_psoc =
|
||||
wifi_pos_get_psoc_priv_obj(psoc);
|
||||
|
||||
if (!wifi_pos_psoc) {
|
||||
wifi_pos_alert("unable to get wifi_pos psoc obj");
|
||||
return false;
|
||||
}
|
||||
|
||||
qdf_spin_lock_bh(&wifi_pos_psoc->wifi_pos_lock);
|
||||
val = wifi_pos_psoc->rsp_version;
|
||||
qdf_spin_unlock_bh(&wifi_pos_psoc->wifi_pos_lock);
|
||||
|
||||
if (val == WIFI_POS_RSP_V2_NL)
|
||||
return true;
|
||||
else
|
||||
return false;
|
||||
|
||||
}
|
||||
|
||||
|
@@ -31,6 +31,7 @@
|
||||
#include "ol_defines.h"
|
||||
#include "qdf_trace.h"
|
||||
#include "qdf_module.h"
|
||||
#include "wifi_pos_utils_pub.h"
|
||||
|
||||
struct wlan_objmgr_psoc;
|
||||
struct wifi_pos_req_msg;
|
||||
@@ -60,11 +61,6 @@ struct wifi_pos_req_msg;
|
||||
#define OEM_APP_SIGNATURE_LEN 16
|
||||
#define OEM_APP_SIGNATURE_STR "QUALCOMM-OEM-APP"
|
||||
|
||||
#define OEM_TARGET_SIGNATURE_LEN 8
|
||||
#define OEM_TARGET_SIGNATURE "QUALCOMM"
|
||||
|
||||
#define OEM_CAP_MAX_NUM_CHANNELS 128
|
||||
|
||||
#ifndef OEM_DATA_RSP_SIZE
|
||||
#define OEM_DATA_RSP_SIZE 1724
|
||||
#endif
|
||||
@@ -121,73 +117,6 @@ struct oem_data_rsp {
|
||||
void *vaddr;
|
||||
};
|
||||
|
||||
/**
|
||||
* struct wifi_pos_driver_version - Driver version identifier (w.x.y.z)
|
||||
* @major: Version ID major number
|
||||
* @minor: Version ID minor number
|
||||
* @patch: Version ID patch number
|
||||
* @build: Version ID build number
|
||||
*/
|
||||
struct qdf_packed wifi_pos_driver_version {
|
||||
uint8_t major;
|
||||
uint8_t minor;
|
||||
uint8_t patch;
|
||||
uint8_t build;
|
||||
};
|
||||
|
||||
/**
|
||||
* struct wifi_pos_driver_caps - OEM Data Capabilities
|
||||
* @oem_target_signature: Signature of chipset vendor, e.g. QUALCOMM
|
||||
* @oem_target_type: Chip type
|
||||
* @oem_fw_version: Firmware version
|
||||
* @driver_version: Host software version
|
||||
* @allowed_dwell_time_min: Channel dwell time - allowed minimum
|
||||
* @allowed_dwell_time_max: Channel dwell time - allowed maximum
|
||||
* @curr_dwell_time_min: Channel dwell time - current minimim
|
||||
* @curr_dwell_time_max: Channel dwell time - current maximum
|
||||
* @supported_bands: Supported bands, 2.4G or 5G Hz
|
||||
* @num_channels: Num of channels IDs to follow
|
||||
* @channel_list: List of channel IDs
|
||||
*/
|
||||
struct qdf_packed wifi_pos_driver_caps {
|
||||
uint8_t oem_target_signature[OEM_TARGET_SIGNATURE_LEN];
|
||||
uint32_t oem_target_type;
|
||||
uint32_t oem_fw_version;
|
||||
struct wifi_pos_driver_version driver_version;
|
||||
uint16_t allowed_dwell_time_min;
|
||||
uint16_t allowed_dwell_time_max;
|
||||
uint16_t curr_dwell_time_min;
|
||||
uint16_t curr_dwell_time_max;
|
||||
uint16_t supported_bands;
|
||||
uint16_t num_channels;
|
||||
uint8_t channel_list[OEM_CAP_MAX_NUM_CHANNELS];
|
||||
};
|
||||
|
||||
/**
|
||||
* struct wifi_pos_user_defined_caps - OEM capability to be exchanged between
|
||||
* host and userspace
|
||||
* @ftm_rr: FTM range report capability bit
|
||||
* @lci_capability: LCI capability bit
|
||||
* @reserved1: reserved
|
||||
* @reserved2: reserved
|
||||
*/
|
||||
struct wifi_pos_user_defined_caps {
|
||||
uint32_t ftm_rr:1;
|
||||
uint32_t lci_capability:1;
|
||||
uint32_t reserved1:30;
|
||||
uint32_t reserved2;
|
||||
};
|
||||
|
||||
/**
|
||||
* struct wifi_pos_oem_get_cap_rsp - capabilities set by userspace and target.
|
||||
* @driver_cap: target capabilities
|
||||
* @user_defined_cap: capabilities set by userspace via set request
|
||||
*/
|
||||
struct qdf_packed wifi_pos_oem_get_cap_rsp {
|
||||
struct wifi_pos_driver_caps driver_cap;
|
||||
struct wifi_pos_user_defined_caps user_defined_cap;
|
||||
};
|
||||
|
||||
/**
|
||||
* struct wifi_pos_err_rpt - Error report response for userspace.
|
||||
* @tag_len: tlv header of the message.
|
||||
@@ -310,6 +239,7 @@ struct wifi_pos_dma_rings_cfg {
|
||||
* for given freq and channel width
|
||||
* @wifi_pos_send_action: function pointer to send registered action frames
|
||||
* to userspace APP
|
||||
* @rsp_version: rsp version
|
||||
*
|
||||
* wifi pos request messages
|
||||
* <----- fine_time_meas_cap (in bits) ----->
|
||||
@@ -348,13 +278,15 @@ struct wifi_pos_psoc_priv_obj {
|
||||
bool oem_6g_support_disable;
|
||||
QDF_STATUS (*wifi_pos_req_handler)(struct wlan_objmgr_psoc *psoc,
|
||||
struct wifi_pos_req_msg *req);
|
||||
void (*wifi_pos_send_rsp)(uint32_t, uint32_t, uint32_t, uint8_t *);
|
||||
void (*wifi_pos_send_rsp)(uint32_t, enum wifi_pos_cmd_ids,
|
||||
uint32_t, uint8_t *);
|
||||
void (*wifi_pos_get_phy_mode)(uint8_t, uint32_t, uint32_t *);
|
||||
void (*wifi_pos_get_fw_phy_mode_for_freq)(uint32_t, uint32_t,
|
||||
uint32_t *);
|
||||
void (*wifi_pos_send_action)(struct wlan_objmgr_psoc *psoc,
|
||||
uint32_t oem_subtype, uint8_t *buf,
|
||||
uint32_t len);
|
||||
uint32_t rsp_version;
|
||||
};
|
||||
|
||||
/**
|
||||
|
Viittaa uudesa ongelmassa
Block a user