qcacmn: Add support to get fwr phymode for frequency

Currently, wifi-pos uses channel number to get the fwr phymode.
For adding 6g support wifi-pos need to get the phymode from
frequency instead of channel number
As a part of fix, Add handler for getting phymode based on
frequency

CRs-Fixed: 2617903
Change-Id: I007edebe41bf5ca750a1262c85043f628dc9f89f
This commit is contained in:
Vinay Gannevaram
2020-02-07 20:30:45 +05:30
committed by nshrivas
orang tua f63aaef3d3
melakukan 2250592dcd
3 mengubah file dengan 48 tambahan dan 1 penghapusan

Melihat File

@@ -1,5 +1,5 @@
/*
* Copyright (c) 2017-2019 The Linux Foundation. All rights reserved.
* Copyright (c) 2017-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
@@ -350,6 +350,32 @@ QDF_STATUS wifi_pos_register_get_phy_mode_cb(
return QDF_STATUS_SUCCESS;
}
QDF_STATUS wifi_pos_register_get_fw_phy_mode_for_freq_cb(
struct wlan_objmgr_psoc *psoc,
void (*handler)(uint32_t, uint32_t, uint32_t *))
{
struct wifi_pos_psoc_priv_obj *wifi_pos_psoc;
if (!psoc) {
wifi_pos_err("psoc is null");
return QDF_STATUS_E_NULL_VALUE;
}
if (!handler) {
wifi_pos_err("Null callback");
return QDF_STATUS_E_NULL_VALUE;
}
wifi_pos_psoc = wifi_pos_get_psoc_priv_obj(psoc);
if (!wifi_pos_psoc) {
wifi_pos_err("wifi_pos priv obj is null");
return QDF_STATUS_E_NULL_VALUE;
}
wifi_pos_psoc->wifi_pos_get_fw_phy_mode_for_freq = handler;
return QDF_STATUS_SUCCESS;
}
QDF_STATUS wifi_pos_register_send_action(
struct wlan_objmgr_psoc *psoc,
void (*handler)(struct wlan_objmgr_psoc *psoc,

Melihat File

@@ -304,6 +304,12 @@ struct wifi_pos_dma_rings_cfg {
* @oem_6g_support_disable: oem target 6ghz support is disabled if set
* @wifi_pos_req_handler: function pointer to handle TLV or non-TLV
* @wifi_pos_send_rsp: function pointer to send msg to userspace APP
* @wifi_pos_get_phy_mode: function pointer to get wlan phymode for given
* channel, channel width
* @wifi_pos_get_fw_phy_mode_for_freq: function pointer to get fw phymode
* for given freq and channel width
* @wifi_pos_send_action: function pointer to send registered action frames
* to userspace APP
*
* wifi pos request messages
* <----- fine_time_meas_cap (in bits) ----->
@@ -344,6 +350,8 @@ struct wifi_pos_psoc_priv_obj {
struct wifi_pos_req_msg *req);
void (*wifi_pos_send_rsp)(uint32_t, uint32_t, 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);