qcacld-3.0: Add 11K offload param to converged CFG component
Update driver to move 11K offload params to converged CFG component and remove redundant entries from HDD config. Change-Id: I7703ca5b23d5fa95a3b5dc5ccd9690771a4bf43d CRs-fixed: 2357708
This commit is contained in:

committed by
nshrivas

parent
7165bc3ab0
commit
06d38d8c48
@@ -26,8 +26,10 @@
|
||||
#include "cfg_thermal_temp.h"
|
||||
#include "cfg_ie_whitelist.h"
|
||||
#include "cfg_fwol_generic.h"
|
||||
#include "cfg_neighbor_roam.h"
|
||||
|
||||
#define CFG_FWOL_ALL \
|
||||
CFG_11K_ALL \
|
||||
CFG_COEX_ALL \
|
||||
CFG_FWOL_GENERIC_ALL \
|
||||
CFG_IE_WHITELIST \
|
||||
|
225
components/fw_offload/dispatcher/inc/cfg_neighbor_roam.h
Normal file
225
components/fw_offload/dispatcher/inc/cfg_neighbor_roam.h
Normal file
@@ -0,0 +1,225 @@
|
||||
/*
|
||||
* Copyright (c) 2012 - 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.
|
||||
*/
|
||||
|
||||
/**
|
||||
* DOC: This file contains centralized definitions of converged configuration.
|
||||
*/
|
||||
|
||||
#ifndef __CFG_NR_H
|
||||
#define __CFG_NR_H
|
||||
|
||||
/*
|
||||
* <ini>
|
||||
* 11k_offload_enable_bitmask - 11K offload bitmask feature control
|
||||
* @Min: 0
|
||||
* @Max: 1
|
||||
* @Default: 1
|
||||
*
|
||||
* Disabled when 0 and enabled when 1
|
||||
* Usage: External
|
||||
*
|
||||
* </ini>
|
||||
*/
|
||||
#define CFG_OFFLOAD_11K_ENABLE_BITMASK CFG_INI_BOOL( \
|
||||
"11k_offload_enable_bitmask", \
|
||||
1, \
|
||||
"11K offload bitmask feature control")
|
||||
|
||||
/*
|
||||
* <ini>
|
||||
* nr_offload_params_bitmask - bitmask to specify which of the
|
||||
* neighbor report offload params are valid in the ini
|
||||
* frame
|
||||
* @Min: 0
|
||||
* @Max: 63
|
||||
* @Default: 63
|
||||
*
|
||||
* This ini specifies which of the neighbor report offload params are valid
|
||||
* and should be considered by the FW. The bitmask is as follows
|
||||
* B0: nr_offload_time_offset
|
||||
* B1: nr_offload_low_rssi_offset
|
||||
* B2: nr_offload_bmiss_count_trigger
|
||||
* B3: nr_offload_per_threshold_offset
|
||||
* B4: nr_offload_cache_timeout
|
||||
* B5: nr_offload_max_req_cap
|
||||
* B6-B7: Reserved
|
||||
*
|
||||
* Related : 11k_offload_enable_bitmask
|
||||
*
|
||||
* Usage: External
|
||||
*
|
||||
* </ini>
|
||||
*/
|
||||
#define CFG_OFFLOAD_NEIGHBOR_REPORT_PARAMS_BITMASK CFG_INI_UINT( \
|
||||
"nr_offload_params_bitmask", \
|
||||
0, \
|
||||
63, \
|
||||
63, \
|
||||
CFG_VALUE_OR_DEFAULT, \
|
||||
"Neighbor report offload params validity bitmask")
|
||||
|
||||
#define OFFLOAD_11K_BITMASK_NEIGHBOR_REPORT_REQUEST 0x1
|
||||
|
||||
/*
|
||||
* <ini>
|
||||
* nr_offload_time_offset - time interval in seconds after the
|
||||
* neighbor report offload command to send the first neighbor report request
|
||||
* frame
|
||||
* @Min: 0
|
||||
* @Max: 3600
|
||||
* @Default: 30
|
||||
*
|
||||
* Related : nr_offload_params_bitmask
|
||||
*
|
||||
* Usage: External
|
||||
*
|
||||
* </ini>
|
||||
*/
|
||||
#define CFG_OFFLOAD_NEIGHBOR_REPORT_TIME_OFFSET CFG_INI_UINT( \
|
||||
"nr_offload_time_offset", \
|
||||
0, \
|
||||
3600, \
|
||||
30, \
|
||||
CFG_VALUE_OR_DEFAULT, \
|
||||
"Neighbor report time offset")
|
||||
|
||||
/*
|
||||
* <ini>
|
||||
* nr_offload_low_rssi_offset - offset from the roam RSSI threshold
|
||||
* to trigger the neighbor report request frame (in dBm)
|
||||
* @Min: 4
|
||||
* @Max: 10
|
||||
* @Default: 4
|
||||
*
|
||||
* Related : nr_offload_params_bitmask
|
||||
*
|
||||
* Usage: External
|
||||
*
|
||||
* </ini>
|
||||
*/
|
||||
#define CFG_OFFLOAD_NEIGHBOR_REPORT_LOW_RSSI_OFFSET CFG_INI_UINT( \
|
||||
"nr_offload_low_rssi_offset", \
|
||||
4, \
|
||||
10, \
|
||||
4, \
|
||||
CFG_VALUE_OR_DEFAULT, \
|
||||
"Neighbor report low RSSI offset")
|
||||
|
||||
/*
|
||||
* <ini>
|
||||
* nr_offload_bmiss_count_trigger - Number of beacon miss events to
|
||||
* trigger a neighbor report request frame
|
||||
* @Min: 1
|
||||
* @Max: 5
|
||||
* @Default: 1
|
||||
*
|
||||
* Related : nr_offload_params_bitmask
|
||||
*
|
||||
* Usage: External
|
||||
*
|
||||
* </ini>
|
||||
*/
|
||||
#define CFG_OFFLOAD_NEIGHBOR_REPORT_BMISS_COUNT_TRIGGER CFG_INI_UINT( \
|
||||
"nr_offload_bmiss_count_trigger", \
|
||||
1, \
|
||||
5, \
|
||||
1, \
|
||||
CFG_VALUE_OR_DEFAULT, \
|
||||
"Beacon miss count trigger for neighbor report req frame")
|
||||
|
||||
/*
|
||||
* <ini>
|
||||
* nr_offload_per_threshold_offset - offset from PER threshold to
|
||||
* trigger a neighbor report request frame (in %)
|
||||
* @Min: 5
|
||||
* @Max: 20
|
||||
* @Default: 5
|
||||
*
|
||||
* This ini is used to set the neighbor report offload parameter:
|
||||
*
|
||||
* Related : nr_offload_params_bitmask
|
||||
*
|
||||
* Usage: External
|
||||
*
|
||||
* </ini>
|
||||
*/
|
||||
#define CFG_OFFLOAD_NEIGHBOR_REPORT_PER_THRESHOLD_OFFSET CFG_INI_UINT( \
|
||||
"nr_offload_per_threshold_offset", \
|
||||
5, \
|
||||
20, \
|
||||
5, \
|
||||
CFG_VALUE_OR_DEFAULT, \
|
||||
"PER threshold offset to trigger neighbor report req frame")
|
||||
|
||||
/*
|
||||
* <ini>
|
||||
* nr_offload_cache_timeout - time in seconds after which the
|
||||
* neighbor report cache is marked as timed out and any of the triggers would
|
||||
* cause a neighbor report request frame to be sent.
|
||||
* @Min: 5
|
||||
* @Max: 86400
|
||||
* @Default: 1200
|
||||
*
|
||||
* Related : nr_offload_params_bitmask
|
||||
*
|
||||
* Usage: External
|
||||
*
|
||||
* </ini>
|
||||
*/
|
||||
#define CFG_OFFLOAD_NEIGHBOR_REPORT_CACHE_TIMEOUT CFG_INI_UINT( \
|
||||
"nr_offload_cache_timeout", \
|
||||
5, \
|
||||
86400, \
|
||||
1200, \
|
||||
CFG_VALUE_OR_DEFAULT, \
|
||||
"Neighbor report cache timeout to trigger report req frame")
|
||||
|
||||
/*
|
||||
* <ini>
|
||||
* nr_offload_max_req_cap - Max number of neighbor
|
||||
* report requests that can be sent to a connected peer in the current session.
|
||||
* This counter is reset once a successful roam happens or at cache timeout
|
||||
* @Min: 3
|
||||
* @Max: 300
|
||||
* @Default: 3
|
||||
*
|
||||
* Related : nr_offload_params_bitmask
|
||||
*
|
||||
* Usage: External
|
||||
*
|
||||
* </ini>
|
||||
*/
|
||||
#define CFG_OFFLOAD_NEIGHBOR_REPORT_MAX_REQ_CAP CFG_INI_UINT( \
|
||||
"nr_offload_max_req_cap", \
|
||||
3, \
|
||||
300, \
|
||||
3, \
|
||||
CFG_VALUE_OR_DEFAULT, \
|
||||
"Max neighbor report request to be sent to connected peer")
|
||||
|
||||
#define CFG_11K_ALL \
|
||||
CFG(CFG_OFFLOAD_11K_ENABLE_BITMASK) \
|
||||
CFG(CFG_OFFLOAD_NEIGHBOR_REPORT_PARAMS_BITMASK) \
|
||||
CFG(CFG_OFFLOAD_NEIGHBOR_REPORT_TIME_OFFSET) \
|
||||
CFG(CFG_OFFLOAD_NEIGHBOR_REPORT_LOW_RSSI_OFFSET) \
|
||||
CFG(CFG_OFFLOAD_NEIGHBOR_REPORT_BMISS_COUNT_TRIGGER) \
|
||||
CFG(CFG_OFFLOAD_NEIGHBOR_REPORT_PER_THRESHOLD_OFFSET) \
|
||||
CFG(CFG_OFFLOAD_NEIGHBOR_REPORT_CACHE_TIMEOUT) \
|
||||
CFG(CFG_OFFLOAD_NEIGHBOR_REPORT_MAX_REQ_CAP)
|
||||
|
||||
#endif
|
@@ -27,8 +27,6 @@
|
||||
#include <wlan_cmn.h>
|
||||
#include "wlan_fw_offload_main.h"
|
||||
|
||||
#include "wlan_fw_offload_main.h"
|
||||
|
||||
/**
|
||||
* ucfg_fwol_psoc_open() - FWOL component Open
|
||||
* @psoc: pointer to psoc object
|
||||
@@ -89,6 +87,29 @@ QDF_STATUS
|
||||
ucfg_fwol_get_thermal_temp(struct wlan_objmgr_psoc *psoc,
|
||||
struct wlan_fwol_thermal_temp *thermal_temp);
|
||||
|
||||
/**
|
||||
* ucfg_fwol_get_neighbor_report_cfg() - Get neighbor report config params
|
||||
* @psoc: Pointer to psoc object
|
||||
* @fwol_neighbor_report_cfg: Pointer to return neighbor report config
|
||||
*
|
||||
* Return: QDF Status
|
||||
*/
|
||||
QDF_STATUS
|
||||
ucfg_fwol_get_neighbor_report_cfg(struct wlan_objmgr_psoc *psoc,
|
||||
struct wlan_fwol_neighbor_report_cfg
|
||||
*fwol_neighbor_report_cfg);
|
||||
|
||||
/**
|
||||
* ucfg_fwol_get_neighbor_report_req() - Get neighbor report request bit
|
||||
* @psoc: Pointer to psoc object
|
||||
* @neighbor_report_req: Pointer to return value
|
||||
*
|
||||
* Return: QDF Status
|
||||
*/
|
||||
QDF_STATUS
|
||||
ucfg_fwol_is_neighbor_report_req_supported(struct wlan_objmgr_psoc *psoc,
|
||||
bool *neighbor_report_req);
|
||||
|
||||
/**
|
||||
* ucfg_fwol_get_ie_whitelist() - Get IE whitelist param value
|
||||
* @psoc: Pointer to psoc object
|
||||
|
@@ -182,6 +182,52 @@ ucfg_fwol_get_thermal_temp(struct wlan_objmgr_psoc *psoc,
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
QDF_STATUS
|
||||
ucfg_fwol_get_neighbor_report_cfg(struct wlan_objmgr_psoc *psoc,
|
||||
struct wlan_fwol_neighbor_report_cfg
|
||||
*fwol_neighbor_report_cfg)
|
||||
{
|
||||
struct wlan_fwol_psoc_obj *fwol_obj;
|
||||
QDF_STATUS status = QDF_STATUS_SUCCESS;
|
||||
|
||||
if (!fwol_neighbor_report_cfg)
|
||||
return QDF_STATUS_E_FAILURE;
|
||||
|
||||
fwol_obj = fwol_get_psoc_obj(psoc);
|
||||
if (!fwol_obj) {
|
||||
fwol_err("Failed to get fwol obj");
|
||||
fwol_init_neighbor_report_cfg(psoc, fwol_neighbor_report_cfg);
|
||||
status = QDF_STATUS_E_FAILURE;
|
||||
} else {
|
||||
fwol_neighbor_report_cfg = &fwol_obj->cfg.neighbor_report_cfg;
|
||||
}
|
||||
|
||||
return status;
|
||||
}
|
||||
|
||||
QDF_STATUS
|
||||
ucfg_fwol_is_neighbor_report_req_supported(struct wlan_objmgr_psoc *psoc,
|
||||
bool *neighbor_report_req)
|
||||
{
|
||||
struct wlan_fwol_psoc_obj *fwol_obj;
|
||||
|
||||
fwol_obj = fwol_get_psoc_obj(psoc);
|
||||
if (!fwol_obj) {
|
||||
fwol_err("Failed to get fwol obj");
|
||||
*neighbor_report_req =
|
||||
!!(cfg_get(psoc,
|
||||
CFG_OFFLOAD_11K_ENABLE_BITMASK) &
|
||||
OFFLOAD_11K_BITMASK_NEIGHBOR_REPORT_REQUEST);
|
||||
return QDF_STATUS_E_FAILURE;
|
||||
}
|
||||
|
||||
*neighbor_report_req =
|
||||
!!(fwol_obj->cfg.neighbor_report_cfg.enable_bitmask &
|
||||
OFFLOAD_11K_BITMASK_NEIGHBOR_REPORT_REQUEST);
|
||||
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
QDF_STATUS
|
||||
ucfg_fwol_get_ie_whitelist(struct wlan_objmgr_psoc *psoc, bool *ie_whitelist)
|
||||
{
|
||||
|
Reference in New Issue
Block a user