From 1826d9cbd5f2b41bc650d7defb569fe66beb9a23 Mon Sep 17 00:00:00 2001 From: bings Date: Tue, 23 Jan 2018 16:14:01 +0800 Subject: [PATCH] qcacld-3.0: Move dfs leakage from cld to cmn Move dfs leakage from cld to dfs module of cmn. Change-Id: I17276fedf575f1a4029265be58d8fd088c1d956d CRs-Fixed: 2174457 --- core/sap/inc/sap_api.h | 9 + core/sap/src/sap_ch_select.h | 25 +- core/sap/src/sap_fsm.c | 869 +---------------------------------- core/sap/src/sap_internal.h | 20 - core/sap/src/sap_module.c | 41 +- 5 files changed, 22 insertions(+), 942 deletions(-) diff --git a/core/sap/inc/sap_api.h b/core/sap/inc/sap_api.h index 45f21c118991..fe9a34d964a7 100644 --- a/core/sap/inc/sap_api.h +++ b/core/sap/inc/sap_api.h @@ -1381,6 +1381,15 @@ QDF_STATUS wlansap_acs_chselect(struct sap_context *sap_context, */ uint32_t wlansap_get_chan_width(struct sap_context *sap_ctx); +/** + * wlansap_set_tx_leakage_threshold() - set sap tx leakage threshold. + * @hal: HAL pointer + * @tx_leakage_threshold: sap tx leakage threshold + * + * This function set sap tx leakage threshold. + * + * Return: QDF_STATUS. + */ QDF_STATUS wlansap_set_tx_leakage_threshold(tHalHandle hal, uint16_t tx_leakage_threshold); diff --git a/core/sap/src/sap_ch_select.h b/core/sap/src/sap_ch_select.h index 25def474a12b..7dc451c9b1fd 100644 --- a/core/sap/src/sap_ch_select.h +++ b/core/sap/src/sap_ch_select.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2012-2015, 2017 The Linux Foundation. All rights reserved. + * Copyright (c) 2012-2015, 2017-2018 The Linux Foundation. All rights reserved. * * Previously licensed under the ISC license by Qualcomm Atheros, Inc. * @@ -177,27 +177,4 @@ typedef struct sSapChSelParams { uint16_t numChannels; } tSapChSelParams; -#define SAP_TX_LEAKAGE_THRES 310 -#define SAP_TX_LEAKAGE_MAX 1000 -#define SAP_TX_LEAKAGE_MIN 200 - -/* - * This define is used to block additional channels - * based on the new data gathered on auto platforms - * and to differentiate the leakage data among different - * platforms. - */ - -#define SAP_TX_LEAKAGE_AUTO_MIN 210 - -typedef struct sSapTxLeakInfo { - uint8_t leak_chan; /* leak channel */ - uint32_t leak_lvl; /* tx leakage lvl */ -} tSapTxLeakInfo; - -typedef struct sSapChanMatrixInfo { - uint8_t channel; /* channel to switch from */ - tSapTxLeakInfo chan_matrix[CHAN_ENUM_144 - CHAN_ENUM_36 + 1]; -} tSapChanMatrixInfo; - #endif /* if !defined __SAP_CH_SELECT_H */ diff --git a/core/sap/src/sap_fsm.c b/core/sap/src/sap_fsm.c index a6648999776d..7c2de758fd03 100644 --- a/core/sap/src/sap_fsm.c +++ b/core/sap/src/sap_fsm.c @@ -88,699 +88,6 @@ extern sapSafeChannelType safe_channels[]; * Static Variable Definitions * -------------------------------------------------------------------------*/ -#ifdef WLAN_ENABLE_CHNL_MATRIX_RESTRICTION -/* - * TODO: At present SAP Channel leakage matrix for ch 144 - * is not available from system's team. So to play it safe - * and avoid crash if channel 144 is request, in following - * matix channel 144 is added such that it will cause code - * to avoid selecting channel 144. - * - * THESE ENTRIES SHOULD BE REPLACED WITH CORRECT VALUES AS - * PROVIDED BY SYSTEM'S TEAM. - */ - -/* channel tx leakage table - ht80 */ -tSapChanMatrixInfo ht80_chan[] = { - {52, - {{36, 148}, {40, 199}, - {44, 193}, {48, 197}, - {52, SAP_TX_LEAKAGE_MIN}, {56, 153}, - {60, 137}, {64, 134}, - {100, 358}, {104, 350}, - {108, 404}, {112, 344}, - {116, 424}, {120, 429}, - {124, 437}, {128, 435}, - {132, SAP_TX_LEAKAGE_MAX}, {136, SAP_TX_LEAKAGE_MAX}, - {140, SAP_TX_LEAKAGE_MAX}, - {144, SAP_TX_LEAKAGE_MIN} - } }, - - - {56, - {{36, 171}, {40, 178}, - {44, 171}, {48, 178}, - {52, SAP_TX_LEAKAGE_MIN}, {56, SAP_TX_LEAKAGE_MIN}, - {60, SAP_TX_LEAKAGE_MIN}, {64, 280}, - {100, 351}, {104, 376}, - {108, 362}, {112, 362}, - {116, 403}, {120, 397}, - {124, SAP_TX_LEAKAGE_MAX}, {128, SAP_TX_LEAKAGE_MAX}, - {132, SAP_TX_LEAKAGE_MAX}, {136, SAP_TX_LEAKAGE_MAX}, - {140, SAP_TX_LEAKAGE_MAX}, - {144, SAP_TX_LEAKAGE_MIN} - } }, - - {60, - {{36, 156}, {40, 146}, - {44, SAP_TX_LEAKAGE_MIN}, {48, SAP_TX_LEAKAGE_MIN}, - {52, 180}, {56, SAP_TX_LEAKAGE_MIN}, - {60, SAP_TX_LEAKAGE_MIN}, {64, SAP_TX_LEAKAGE_MIN}, - {100, 376}, {104, 360}, - {108, SAP_TX_LEAKAGE_MAX}, {112, SAP_TX_LEAKAGE_MAX}, - {116, 395}, {120, 399}, - {124, SAP_TX_LEAKAGE_MAX}, {128, SAP_TX_LEAKAGE_MAX}, - {132, SAP_TX_LEAKAGE_MAX}, {136, SAP_TX_LEAKAGE_MAX}, - {140, SAP_TX_LEAKAGE_MAX}, - {144, SAP_TX_LEAKAGE_MIN} - } }, - - {64, - {{36, 217}, {40, 221}, - {44, SAP_TX_LEAKAGE_MIN}, {48, SAP_TX_LEAKAGE_MIN}, - {52, 176}, {56, 176}, - {60, SAP_TX_LEAKAGE_MIN}, {64, SAP_TX_LEAKAGE_MIN}, - {100, 384}, {104, 390}, - {108, SAP_TX_LEAKAGE_MAX}, {112, SAP_TX_LEAKAGE_MAX}, - {116, 375}, {120, 374}, - {124, SAP_TX_LEAKAGE_MAX}, {128, SAP_TX_LEAKAGE_MAX}, - {132, SAP_TX_LEAKAGE_MAX}, {136, SAP_TX_LEAKAGE_MAX}, - {140, SAP_TX_LEAKAGE_MAX}, - {144, SAP_TX_LEAKAGE_MIN} - } }, - - {100, - {{36, 357}, {40, 326}, - {44, 321}, {48, 326}, - {52, 378}, {56, 396}, - {60, SAP_TX_LEAKAGE_MAX}, {64, SAP_TX_LEAKAGE_MAX}, - {100, SAP_TX_LEAKAGE_MIN}, {104, SAP_TX_LEAKAGE_MIN}, - {108, 196}, {112, 116}, - {116, 166}, {120, SAP_TX_LEAKAGE_MIN}, - {124, SAP_TX_LEAKAGE_MIN}, {128, SAP_TX_LEAKAGE_MIN}, - {132, SAP_TX_LEAKAGE_MIN}, {136, SAP_TX_LEAKAGE_MIN}, - {140, SAP_TX_LEAKAGE_MIN}, - {144, SAP_TX_LEAKAGE_MIN} - } }, - - {104, - {{36, 325}, {40, 325}, - {44, 305}, {48, 352}, - {52, 411}, {56, 411}, - {60, SAP_TX_LEAKAGE_MAX}, {64, SAP_TX_LEAKAGE_MAX}, - {100, SAP_TX_LEAKAGE_MIN}, {104, SAP_TX_LEAKAGE_MIN}, - {108, SAP_TX_LEAKAGE_MIN}, {112, 460}, - {116, 198}, {120, SAP_TX_LEAKAGE_MIN}, - {124, SAP_TX_LEAKAGE_MIN}, {128, SAP_TX_LEAKAGE_MIN}, - {132, SAP_TX_LEAKAGE_MIN}, {136, SAP_TX_LEAKAGE_MIN}, - {140, SAP_TX_LEAKAGE_MIN}, - {144, SAP_TX_LEAKAGE_MIN} - } }, - - {108, - {{36, 304}, {40, 332}, - {44, 310}, {48, 335}, - {52, 431}, {56, 391}, - {60, SAP_TX_LEAKAGE_MAX}, {64, SAP_TX_LEAKAGE_MAX}, - {100, 280}, {104, SAP_TX_LEAKAGE_MIN}, - {108, SAP_TX_LEAKAGE_MIN}, {112, SAP_TX_LEAKAGE_MIN}, - {116, 185}, {120, SAP_TX_LEAKAGE_MIN}, - {124, SAP_TX_LEAKAGE_MIN}, {128, SAP_TX_LEAKAGE_MIN}, - {132, SAP_TX_LEAKAGE_MIN}, {136, SAP_TX_LEAKAGE_MIN}, - {140, SAP_TX_LEAKAGE_MIN}, - {144, SAP_TX_LEAKAGE_MIN} - } }, - - {112, - {{36, 327}, {40, 335}, - {44, 331}, {48, 345}, - {52, 367}, {56, 401}, - {60, SAP_TX_LEAKAGE_MAX}, {64, SAP_TX_LEAKAGE_MAX}, - {100, 131}, {104, 132}, - {108, SAP_TX_LEAKAGE_MIN}, {112, SAP_TX_LEAKAGE_MIN}, - {116, 189}, {120, SAP_TX_LEAKAGE_MIN}, - {124, SAP_TX_LEAKAGE_MIN}, {128, SAP_TX_LEAKAGE_MIN}, - {132, SAP_TX_LEAKAGE_MIN}, {136, SAP_TX_LEAKAGE_MIN}, - {140, SAP_TX_LEAKAGE_MIN}, - {144, SAP_TX_LEAKAGE_MIN} - } }, - - {116, - {{36, 384}, {40, 372}, - {44, 389}, {48, 396}, - {52, 348}, {56, 336}, - {60, SAP_TX_LEAKAGE_MAX}, {64, SAP_TX_LEAKAGE_MAX}, - {100, 172}, {104, 169}, - {108, SAP_TX_LEAKAGE_MIN}, {112, SAP_TX_LEAKAGE_MIN}, - {116, SAP_TX_LEAKAGE_MIN}, {120, SAP_TX_LEAKAGE_MIN}, - {124, SAP_TX_LEAKAGE_MIN}, {128, SAP_TX_LEAKAGE_MIN}, - {132, SAP_TX_LEAKAGE_MIN}, {136, SAP_TX_LEAKAGE_MIN}, - {140, SAP_TX_LEAKAGE_MIN}, - {144, SAP_TX_LEAKAGE_MIN} - } }, - - {120, - {{36, 395}, {40, 419}, - {44, 439}, {48, 407}, - {52, 321}, {56, 334}, - {60, SAP_TX_LEAKAGE_MAX}, {64, SAP_TX_LEAKAGE_MAX}, - {100, 134}, {104, 186}, - {108, SAP_TX_LEAKAGE_MIN}, {112, SAP_TX_LEAKAGE_MIN}, - {116, SAP_TX_LEAKAGE_MIN}, {120, SAP_TX_LEAKAGE_MIN}, - {124, SAP_TX_LEAKAGE_MIN}, {128, 159}, - {132, SAP_TX_LEAKAGE_MIN}, {136, SAP_TX_LEAKAGE_MIN}, - {140, SAP_TX_LEAKAGE_MIN}, - {144, SAP_TX_LEAKAGE_MIN} - } }, - - {124, - {{36, 469}, {40, 433}, - {44, 434}, {48, 435}, - {52, 332}, {56, 345}, - {60, SAP_TX_LEAKAGE_MAX}, {64, SAP_TX_LEAKAGE_MAX}, - {100, 146}, {104, 177}, - {108, SAP_TX_LEAKAGE_MIN}, {112, SAP_TX_LEAKAGE_MIN}, - {116, 350}, {120, SAP_TX_LEAKAGE_MIN}, - {124, SAP_TX_LEAKAGE_MIN}, {128, 138}, - {132, SAP_TX_LEAKAGE_MIN}, {136, SAP_TX_LEAKAGE_MIN}, - {140, SAP_TX_LEAKAGE_MIN}, - {144, SAP_TX_LEAKAGE_MIN} - } }, - - {128, - {{36, 408}, {40, 434}, - {44, 449}, {48, 444}, - {52, 341}, {56, 374}, - {60, SAP_TX_LEAKAGE_MAX}, {64, SAP_TX_LEAKAGE_MAX}, - {100, 205}, {104, 208}, - {108, SAP_TX_LEAKAGE_MIN}, {112, SAP_TX_LEAKAGE_MIN}, - {116, 142}, {120, SAP_TX_LEAKAGE_MIN}, - {124, SAP_TX_LEAKAGE_MIN}, {128, SAP_TX_LEAKAGE_MIN}, - {132, SAP_TX_LEAKAGE_MIN}, {136, SAP_TX_LEAKAGE_MIN}, - {140, SAP_TX_LEAKAGE_MIN}, - {144, SAP_TX_LEAKAGE_MIN} - } }, - - {132, - {{36, SAP_TX_LEAKAGE_MAX}, {40, SAP_TX_LEAKAGE_MAX}, - {44, SAP_TX_LEAKAGE_MAX}, {48, SAP_TX_LEAKAGE_MAX}, - {52, SAP_TX_LEAKAGE_MAX}, {56, SAP_TX_LEAKAGE_MAX}, - {60, SAP_TX_LEAKAGE_MIN}, {64, SAP_TX_LEAKAGE_MIN}, - {100, SAP_TX_LEAKAGE_MIN}, {104, SAP_TX_LEAKAGE_MIN}, - {108, SAP_TX_LEAKAGE_MIN}, {112, SAP_TX_LEAKAGE_MIN}, - {116, SAP_TX_LEAKAGE_MIN}, {120, SAP_TX_LEAKAGE_MIN}, - {124, SAP_TX_LEAKAGE_MIN}, {128, SAP_TX_LEAKAGE_MIN}, - {132, SAP_TX_LEAKAGE_MIN}, {136, SAP_TX_LEAKAGE_MIN}, - {140, SAP_TX_LEAKAGE_MIN}, - {144, SAP_TX_LEAKAGE_MIN} - } }, - - {136, - {{36, SAP_TX_LEAKAGE_MAX}, {40, SAP_TX_LEAKAGE_MAX}, - {44, SAP_TX_LEAKAGE_MAX}, {48, SAP_TX_LEAKAGE_MAX}, - {52, SAP_TX_LEAKAGE_MAX}, {56, SAP_TX_LEAKAGE_MAX}, - {60, SAP_TX_LEAKAGE_MIN}, {64, SAP_TX_LEAKAGE_MIN}, - {100, SAP_TX_LEAKAGE_MIN}, {104, SAP_TX_LEAKAGE_MIN}, - {108, SAP_TX_LEAKAGE_MIN}, {112, SAP_TX_LEAKAGE_MIN}, - {116, SAP_TX_LEAKAGE_MIN}, {120, SAP_TX_LEAKAGE_MIN}, - {124, SAP_TX_LEAKAGE_MIN}, {128, SAP_TX_LEAKAGE_MIN}, - {132, SAP_TX_LEAKAGE_MIN}, {136, SAP_TX_LEAKAGE_MIN}, - {140, SAP_TX_LEAKAGE_MIN}, - {144, SAP_TX_LEAKAGE_MIN} - } }, - - {140, - {{36, SAP_TX_LEAKAGE_MAX}, {40, SAP_TX_LEAKAGE_MAX}, - {44, SAP_TX_LEAKAGE_MAX}, {48, SAP_TX_LEAKAGE_MAX}, - {52, SAP_TX_LEAKAGE_MAX}, {56, SAP_TX_LEAKAGE_MAX}, - {60, SAP_TX_LEAKAGE_MIN}, {64, SAP_TX_LEAKAGE_MIN}, - {100, SAP_TX_LEAKAGE_MIN}, {104, SAP_TX_LEAKAGE_MIN}, - {108, SAP_TX_LEAKAGE_MIN}, {112, SAP_TX_LEAKAGE_MIN}, - {116, SAP_TX_LEAKAGE_MIN}, {120, SAP_TX_LEAKAGE_MIN}, - {124, SAP_TX_LEAKAGE_MIN}, {128, SAP_TX_LEAKAGE_MIN}, - {132, SAP_TX_LEAKAGE_MIN}, {136, SAP_TX_LEAKAGE_MIN}, - {144, SAP_TX_LEAKAGE_MIN} - } }, - - {144, - {{36, SAP_TX_LEAKAGE_MAX}, {40, SAP_TX_LEAKAGE_MAX}, - {44, SAP_TX_LEAKAGE_MAX}, {48, SAP_TX_LEAKAGE_MAX}, - {52, SAP_TX_LEAKAGE_MAX}, {56, SAP_TX_LEAKAGE_MAX}, - {60, SAP_TX_LEAKAGE_MIN}, {64, SAP_TX_LEAKAGE_MIN}, - {100, SAP_TX_LEAKAGE_MIN}, {104, SAP_TX_LEAKAGE_MIN}, - {108, SAP_TX_LEAKAGE_MIN}, {112, SAP_TX_LEAKAGE_MIN}, - {116, SAP_TX_LEAKAGE_MIN}, {120, SAP_TX_LEAKAGE_MIN}, - {124, SAP_TX_LEAKAGE_MIN}, {128, SAP_TX_LEAKAGE_MIN}, - {132, SAP_TX_LEAKAGE_MIN}, {136, SAP_TX_LEAKAGE_MIN}, - {144, SAP_TX_LEAKAGE_MIN} - } }, -}; - -/* channel tx leakage table - ht40 */ -tSapChanMatrixInfo ht40_chan[] = { - {52, - {{36, SAP_TX_LEAKAGE_AUTO_MIN}, {40, SAP_TX_LEAKAGE_AUTO_MIN}, - {44, 230}, {48, 230}, - {52, SAP_TX_LEAKAGE_MIN}, {56, SAP_TX_LEAKAGE_MIN}, - {60, SAP_TX_LEAKAGE_AUTO_MIN}, {64, SAP_TX_LEAKAGE_AUTO_MIN}, - {100, 625}, {104, 323}, - {108, 646}, {112, 646}, - {116, SAP_TX_LEAKAGE_MAX}, {120, SAP_TX_LEAKAGE_MAX}, - {124, SAP_TX_LEAKAGE_MAX}, {128, SAP_TX_LEAKAGE_MAX}, - {132, SAP_TX_LEAKAGE_MAX}, {136, SAP_TX_LEAKAGE_MAX}, - {140, SAP_TX_LEAKAGE_MAX}, - {144, SAP_TX_LEAKAGE_MIN} - } }, - - {56, - {{36, SAP_TX_LEAKAGE_AUTO_MIN}, {40, SAP_TX_LEAKAGE_AUTO_MIN}, - {44, SAP_TX_LEAKAGE_AUTO_MIN}, {48, SAP_TX_LEAKAGE_AUTO_MIN}, - {52, SAP_TX_LEAKAGE_MIN}, {56, SAP_TX_LEAKAGE_MIN}, - {60, SAP_TX_LEAKAGE_MIN}, {64, SAP_TX_LEAKAGE_MIN}, - {100, 611}, {104, 611}, - {108, 617}, {112, 617}, - {116, SAP_TX_LEAKAGE_MAX}, {120, SAP_TX_LEAKAGE_MAX}, - {124, SAP_TX_LEAKAGE_MAX}, {128, SAP_TX_LEAKAGE_MAX}, - {132, SAP_TX_LEAKAGE_MAX}, {136, SAP_TX_LEAKAGE_MAX}, - {140, SAP_TX_LEAKAGE_MAX}, - {144, SAP_TX_LEAKAGE_MIN} - } }, - - {60, - {{36, SAP_TX_LEAKAGE_AUTO_MIN}, {40, SAP_TX_LEAKAGE_AUTO_MIN}, - {44, SAP_TX_LEAKAGE_AUTO_MIN}, {48, SAP_TX_LEAKAGE_AUTO_MIN}, - {52, 190}, {56, 190}, - {60, SAP_TX_LEAKAGE_MIN}, {64, SAP_TX_LEAKAGE_MIN}, - {100, 608}, {104, 608}, - {108, 623}, {112, 623}, - {116, SAP_TX_LEAKAGE_MAX}, {120, SAP_TX_LEAKAGE_MAX}, - {124, SAP_TX_LEAKAGE_MAX}, {128, SAP_TX_LEAKAGE_MAX}, - {132, SAP_TX_LEAKAGE_MAX}, {136, SAP_TX_LEAKAGE_MAX}, - {140, SAP_TX_LEAKAGE_MAX}, - {144, SAP_TX_LEAKAGE_MIN} - } }, - - {64, - {{36, SAP_TX_LEAKAGE_AUTO_MIN}, {40, SAP_TX_LEAKAGE_AUTO_MIN}, - {44, SAP_TX_LEAKAGE_AUTO_MIN}, {48, SAP_TX_LEAKAGE_AUTO_MIN}, - {52, 295}, {56, 295}, - {60, SAP_TX_LEAKAGE_MIN}, {64, SAP_TX_LEAKAGE_MIN}, - {100, 594}, {104, 594}, - {108, 625}, {112, 625}, - {116, SAP_TX_LEAKAGE_MAX}, {120, SAP_TX_LEAKAGE_MAX}, - {124, SAP_TX_LEAKAGE_MAX}, {128, SAP_TX_LEAKAGE_MAX}, - {132, SAP_TX_LEAKAGE_MAX}, {136, SAP_TX_LEAKAGE_MAX}, - {140, SAP_TX_LEAKAGE_MAX}, - {144, SAP_TX_LEAKAGE_MIN} - } }, - - {100, - {{36, 618}, {40, 618}, - {44, 604}, {48, 604}, - {52, 596}, {56, 596}, - {60, 584}, {64, 584}, - {100, SAP_TX_LEAKAGE_MIN}, {104, SAP_TX_LEAKAGE_MIN}, - {108, 299}, {112, 299}, - {116, SAP_TX_LEAKAGE_AUTO_MIN}, {120, SAP_TX_LEAKAGE_AUTO_MIN}, - {124, SAP_TX_LEAKAGE_AUTO_MIN}, {128, SAP_TX_LEAKAGE_AUTO_MIN}, - {132, 538}, {136, 538}, - {140, 598}, - {144, SAP_TX_LEAKAGE_MIN} - } }, - - {104, - {{36, 636}, {40, 636}, - {44, 601}, {48, 601}, - {52, 616}, {56, 616}, - {60, 584}, {64, 584}, - {100, SAP_TX_LEAKAGE_MIN}, {104, SAP_TX_LEAKAGE_MIN}, - {108, SAP_TX_LEAKAGE_MIN}, {112, SAP_TX_LEAKAGE_MIN}, - {116, SAP_TX_LEAKAGE_AUTO_MIN}, {120, SAP_TX_LEAKAGE_AUTO_MIN}, - {124, SAP_TX_LEAKAGE_AUTO_MIN}, {128, SAP_TX_LEAKAGE_AUTO_MIN}, - {132, 553}, {136, 553}, - {140, 568}, - {144, SAP_TX_LEAKAGE_MIN} - } }, - - {108, - {{36, 600}, {40, 600}, - {44, 627}, {48, 627}, - {52, 611}, {56, 611}, - {60, 611}, {64, 611}, - {100, 214}, {104, 214}, - {108, SAP_TX_LEAKAGE_MIN}, {112, SAP_TX_LEAKAGE_MIN}, - {116, SAP_TX_LEAKAGE_AUTO_MIN}, {120, SAP_TX_LEAKAGE_AUTO_MIN}, - {124, SAP_TX_LEAKAGE_AUTO_MIN}, {128, SAP_TX_LEAKAGE_AUTO_MIN}, - {132, SAP_TX_LEAKAGE_AUTO_MIN}, {136, SAP_TX_LEAKAGE_AUTO_MIN}, - {140, 534}, - {144, SAP_TX_LEAKAGE_MIN} - } }, - - {112, - {{36, 645}, {40, 645}, - {44, 641}, {48, 641}, - {52, 618}, {56, 618}, - {60, 612}, {64, 612}, - {100, 293}, {104, 293}, - {108, SAP_TX_LEAKAGE_MIN}, {112, SAP_TX_LEAKAGE_MIN}, - {116, SAP_TX_LEAKAGE_MIN}, {120, SAP_TX_LEAKAGE_MIN}, - {124, SAP_TX_LEAKAGE_AUTO_MIN}, {128, SAP_TX_LEAKAGE_AUTO_MIN}, - {132, SAP_TX_LEAKAGE_AUTO_MIN}, {136, SAP_TX_LEAKAGE_AUTO_MIN}, - {140, 521}, - {144, SAP_TX_LEAKAGE_MIN} - } }, - - {116, - {{36, 661}, {40, 661}, - {44, 624}, {48, 624}, - {52, 634}, {56, 634}, - {60, 611}, {64, 611}, - {100, SAP_TX_LEAKAGE_AUTO_MIN}, {104, SAP_TX_LEAKAGE_AUTO_MIN}, - {108, 217}, {112, 217}, - {116, SAP_TX_LEAKAGE_MIN}, {120, SAP_TX_LEAKAGE_MIN}, - {124, SAP_TX_LEAKAGE_AUTO_MIN}, {128, SAP_TX_LEAKAGE_AUTO_MIN}, - {132, SAP_TX_LEAKAGE_AUTO_MIN}, {136, SAP_TX_LEAKAGE_AUTO_MIN}, - {140, SAP_TX_LEAKAGE_AUTO_MIN}, - {144, SAP_TX_LEAKAGE_MIN} - } }, - - {120, - {{36, 667}, {40, 667}, - {44, 645}, {48, 645}, - {52, 633}, {56, 633}, - {60, 619}, {64, 619}, - {100, SAP_TX_LEAKAGE_AUTO_MIN}, {104, SAP_TX_LEAKAGE_AUTO_MIN}, - {108, 291}, {112, 291}, - {116, SAP_TX_LEAKAGE_MIN}, {120, SAP_TX_LEAKAGE_MIN}, - {124, SAP_TX_LEAKAGE_MIN}, {128, SAP_TX_LEAKAGE_MIN}, - {132, SAP_TX_LEAKAGE_AUTO_MIN}, {136, SAP_TX_LEAKAGE_AUTO_MIN}, - {140, SAP_TX_LEAKAGE_AUTO_MIN}, - {144, SAP_TX_LEAKAGE_MIN} - } }, - - {124, - {{36, 676}, {40, 676}, - {44, 668}, {48, 668}, - {52, 595}, {56, 595}, - {60, 622}, {64, 622}, - {100, SAP_TX_LEAKAGE_AUTO_MIN}, {104, SAP_TX_LEAKAGE_AUTO_MIN}, - {108, SAP_TX_LEAKAGE_AUTO_MIN}, {112, SAP_TX_LEAKAGE_AUTO_MIN}, - {116, 225}, {120, 225}, - {124, SAP_TX_LEAKAGE_MIN}, {128, SAP_TX_LEAKAGE_MIN}, - {132, SAP_TX_LEAKAGE_AUTO_MIN}, {136, SAP_TX_LEAKAGE_AUTO_MIN}, - {140, SAP_TX_LEAKAGE_AUTO_MIN}, - {144, SAP_TX_LEAKAGE_MIN} - } }, - - {128, - {{36, 678}, {40, 678}, - {44, 664}, {48, 664}, - {52, 651}, {56, 651}, - {60, 643}, {64, 643}, - {100, SAP_TX_LEAKAGE_AUTO_MIN}, {104, SAP_TX_LEAKAGE_AUTO_MIN}, - {108, SAP_TX_LEAKAGE_AUTO_MIN}, {112, SAP_TX_LEAKAGE_AUTO_MIN}, - {116, 293}, {120, 293}, - {124, SAP_TX_LEAKAGE_MIN}, {128, SAP_TX_LEAKAGE_MIN}, - {132, SAP_TX_LEAKAGE_MIN}, {136, SAP_TX_LEAKAGE_MIN}, - {140, SAP_TX_LEAKAGE_AUTO_MIN}, - {144, SAP_TX_LEAKAGE_MIN} - } }, - - {132, - {{36, 689}, {40, 689}, - {44, 669}, {48, 669}, - {52, 662}, {56, 662}, - {60, 609}, {64, 609}, - {100, 538}, {104, 538}, - {108, SAP_TX_LEAKAGE_AUTO_MIN}, {112, SAP_TX_LEAKAGE_AUTO_MIN}, - {116, SAP_TX_LEAKAGE_AUTO_MIN}, {120, SAP_TX_LEAKAGE_AUTO_MIN}, - {124, 247}, {128, 247}, - {132, SAP_TX_LEAKAGE_MIN}, {136, SAP_TX_LEAKAGE_MIN}, - {140, SAP_TX_LEAKAGE_MIN}, - {144, SAP_TX_LEAKAGE_MIN} - } }, - - {136, - {{36, 703}, {40, 703}, - {44, 688}, {48, SAP_TX_LEAKAGE_MIN}, - {52, 671}, {56, 671}, - {60, 658}, {64, 658}, - {100, 504}, {104, 504}, - {108, SAP_TX_LEAKAGE_AUTO_MIN}, {112, SAP_TX_LEAKAGE_AUTO_MIN}, - {116, SAP_TX_LEAKAGE_AUTO_MIN}, {120, SAP_TX_LEAKAGE_AUTO_MIN}, - {124, 289}, {128, 289}, - {132, SAP_TX_LEAKAGE_MIN}, {136, SAP_TX_LEAKAGE_MIN}, - {140, SAP_TX_LEAKAGE_MIN}, - {144, SAP_TX_LEAKAGE_MIN} - } }, - - {140, - {{36, 695}, {40, 695}, - {44, 684}, {48, 684}, - {52, 664}, {56, 664}, - {60, 658}, {64, 658}, - {100, 601}, {104, 601}, - {108, 545}, {112, 545}, - {116, SAP_TX_LEAKAGE_AUTO_MIN}, {120, SAP_TX_LEAKAGE_AUTO_MIN}, - {124, SAP_TX_LEAKAGE_AUTO_MIN}, {128, SAP_TX_LEAKAGE_AUTO_MIN}, - {132, 262}, {136, 262}, - {140, SAP_TX_LEAKAGE_MIN}, - {144, SAP_TX_LEAKAGE_MIN} - } }, - - {144, - {{36, 695}, {40, 695}, - {44, 684}, {48, 684}, - {52, 664}, {56, 664}, - {60, 658}, {64, 658}, - {100, 601}, {104, 601}, - {108, 545}, {112, 545}, - {116, SAP_TX_LEAKAGE_AUTO_MIN}, {120, SAP_TX_LEAKAGE_AUTO_MIN}, - {124, SAP_TX_LEAKAGE_AUTO_MIN}, {128, SAP_TX_LEAKAGE_AUTO_MIN}, - {132, 262}, {136, 262}, - {140, SAP_TX_LEAKAGE_MIN}, - {144, SAP_TX_LEAKAGE_MIN} - } }, -}; - -/* channel tx leakage table - ht20 */ -tSapChanMatrixInfo ht20_chan[] = { - {52, - {{36, SAP_TX_LEAKAGE_AUTO_MIN}, {40, 286}, - {44, 225}, {48, 121}, - {52, SAP_TX_LEAKAGE_MIN}, {56, SAP_TX_LEAKAGE_MIN}, - {60, 300}, {64, SAP_TX_LEAKAGE_AUTO_MIN}, - {100, 637}, {104, SAP_TX_LEAKAGE_MAX}, - {108, SAP_TX_LEAKAGE_MAX}, {112, SAP_TX_LEAKAGE_MAX}, - {116, SAP_TX_LEAKAGE_MAX}, {120, SAP_TX_LEAKAGE_MAX}, - {124, SAP_TX_LEAKAGE_MAX}, {128, SAP_TX_LEAKAGE_MAX}, - {132, SAP_TX_LEAKAGE_MAX}, {136, SAP_TX_LEAKAGE_MAX}, - {140, SAP_TX_LEAKAGE_MAX}, - {144, SAP_TX_LEAKAGE_MIN} - } }, - - {56, - {{36, 468}, {40, SAP_TX_LEAKAGE_AUTO_MIN}, - {44, SAP_TX_LEAKAGE_AUTO_MIN}, {48, 206}, - {52, SAP_TX_LEAKAGE_MIN}, {56, SAP_TX_LEAKAGE_MIN}, - {60, SAP_TX_LEAKAGE_MIN}, {64, SAP_TX_LEAKAGE_MIN}, - {100, SAP_TX_LEAKAGE_MAX}, {104, SAP_TX_LEAKAGE_MAX}, - {108, SAP_TX_LEAKAGE_MAX}, {112, SAP_TX_LEAKAGE_MAX}, - {116, SAP_TX_LEAKAGE_MAX}, {120, SAP_TX_LEAKAGE_MAX}, - {124, SAP_TX_LEAKAGE_MAX}, {128, SAP_TX_LEAKAGE_MAX}, - {132, SAP_TX_LEAKAGE_MAX}, {136, SAP_TX_LEAKAGE_MAX}, - {140, SAP_TX_LEAKAGE_MAX}, - {144, SAP_TX_LEAKAGE_MIN} - } }, - - {60, - {{36, 507}, {40, 440}, - {44, SAP_TX_LEAKAGE_AUTO_MIN}, {48, 313}, - {52, SAP_TX_LEAKAGE_MIN}, {56, SAP_TX_LEAKAGE_MIN}, - {60, SAP_TX_LEAKAGE_MIN}, {64, SAP_TX_LEAKAGE_MIN}, - {100, SAP_TX_LEAKAGE_MAX}, {104, SAP_TX_LEAKAGE_MAX}, - {108, SAP_TX_LEAKAGE_MAX}, {112, SAP_TX_LEAKAGE_MAX}, - {116, SAP_TX_LEAKAGE_MAX}, {120, SAP_TX_LEAKAGE_MAX}, - {124, SAP_TX_LEAKAGE_MAX}, {128, SAP_TX_LEAKAGE_MAX}, - {132, SAP_TX_LEAKAGE_MAX}, {136, SAP_TX_LEAKAGE_MAX}, - {140, SAP_TX_LEAKAGE_MAX}, - {144, SAP_TX_LEAKAGE_MIN} - } }, - - {64, - {{36, 516}, {40, 520}, - {44, 506}, {48, SAP_TX_LEAKAGE_AUTO_MIN}, - {52, 301}, {56, 258}, - {60, SAP_TX_LEAKAGE_MIN}, {64, SAP_TX_LEAKAGE_MIN}, - {100, 620}, {104, 617}, - {108, SAP_TX_LEAKAGE_MAX}, {112, SAP_TX_LEAKAGE_MAX}, - {116, SAP_TX_LEAKAGE_MAX}, {120, SAP_TX_LEAKAGE_MAX}, - {124, SAP_TX_LEAKAGE_MAX}, {128, SAP_TX_LEAKAGE_MAX}, - {132, SAP_TX_LEAKAGE_MAX}, {136, SAP_TX_LEAKAGE_MAX}, - {140, SAP_TX_LEAKAGE_MAX}, - {144, SAP_TX_LEAKAGE_MIN} - } }, - - {100, - {{36, 616}, {40, 601}, - {44, 604}, {48, 589}, - {52, 612}, {56, 592}, - {60, 590}, {64, 582}, - {100, SAP_TX_LEAKAGE_MIN}, {104, 131}, - {108, SAP_TX_LEAKAGE_AUTO_MIN}, {112, SAP_TX_LEAKAGE_AUTO_MIN}, - {116, SAP_TX_LEAKAGE_AUTO_MIN}, {120, 522}, - {124, 571}, {128, 589}, - {132, 593}, {136, 598}, - {140, 594}, - {144, SAP_TX_LEAKAGE_MIN}, - } }, - - {104, - {{36, 622}, {40, 624}, - {44, 618}, {48, 610}, - {52, SAP_TX_LEAKAGE_MAX}, {56, SAP_TX_LEAKAGE_MAX}, - {60, SAP_TX_LEAKAGE_MAX}, {64, SAP_TX_LEAKAGE_MAX}, - {100, SAP_TX_LEAKAGE_MIN}, {104, SAP_TX_LEAKAGE_MIN}, - {108, SAP_TX_LEAKAGE_MIN}, {112, 463}, - {116, 483}, {120, 503}, - {124, 523}, {128, 565}, - {132, 570}, {136, 588}, - {140, 585}, - {144, SAP_TX_LEAKAGE_MIN}, - } }, - - {108, - {{36, 620}, {40, 638}, - {44, 611}, {48, 614}, - {52, SAP_TX_LEAKAGE_MAX}, {56, SAP_TX_LEAKAGE_MAX}, - {60, SAP_TX_LEAKAGE_MAX}, {64, SAP_TX_LEAKAGE_MAX}, - {100, 477}, {104, SAP_TX_LEAKAGE_MIN}, - {108, SAP_TX_LEAKAGE_MIN}, {112, SAP_TX_LEAKAGE_MIN}, - {116, 477}, {120, 497}, - {124, 517}, {128, 537}, - {132, 557}, {136, 577}, - {140, 603}, - {144, SAP_TX_LEAKAGE_MIN}, - } }, - - {112, - {{36, 636}, {40, 623}, - {44, 638}, {48, 628}, - {52, SAP_TX_LEAKAGE_MAX}, {56, SAP_TX_LEAKAGE_MAX}, - {60, SAP_TX_LEAKAGE_MAX}, {64, 606}, - {100, 501}, {104, 481}, - {108, SAP_TX_LEAKAGE_MIN}, {112, SAP_TX_LEAKAGE_MIN}, - {116, SAP_TX_LEAKAGE_MIN}, {120, 481}, - {124, 501}, {128, 421}, - {132, 541}, {136, 561}, - {140, 583}, - {144, SAP_TX_LEAKAGE_MIN}, - } }, - - {116, - {{36, 646}, {40, 648}, - {44, 633}, {48, 634}, - {52, SAP_TX_LEAKAGE_MAX}, {56, SAP_TX_LEAKAGE_MAX}, - {60, 615}, {64, 594}, - {100, 575}, {104, 554}, - {108, 534}, {112, SAP_TX_LEAKAGE_MIN}, - {116, SAP_TX_LEAKAGE_MIN}, {120, SAP_TX_LEAKAGE_MIN}, - {124, SAP_TX_LEAKAGE_MIN}, {128, SAP_TX_LEAKAGE_MIN}, - {132, 534}, {136, 554}, - {140, 574}, - {144, SAP_TX_LEAKAGE_MIN}, - } }, - - {120, - {{36, 643}, {40, 649}, - {44, 654}, {48, 629}, - {52, SAP_TX_LEAKAGE_MAX}, {56, 621}, - {60, SAP_TX_LEAKAGE_MAX}, {64, SAP_TX_LEAKAGE_MAX}, - {100, 565}, {104, 545}, - {108, 525}, {112, 505}, - {116, SAP_TX_LEAKAGE_MIN}, {120, SAP_TX_LEAKAGE_MIN}, - {124, SAP_TX_LEAKAGE_MIN}, {128, 505}, - {132, 525}, {136, 545}, - {140, 565}, - {144, SAP_TX_LEAKAGE_MIN}, - } }, - - {124, - {{36, 638}, {40, 657}, - {44, 663}, {48, 649}, - {52, SAP_TX_LEAKAGE_MAX}, {56, SAP_TX_LEAKAGE_MAX}, - {60, SAP_TX_LEAKAGE_MAX}, {64, SAP_TX_LEAKAGE_MAX}, - {100, 581}, {104, 561}, - {108, 541}, {112, 521}, - {116, 499}, {120, SAP_TX_LEAKAGE_MIN}, - {124, SAP_TX_LEAKAGE_MIN}, {128, SAP_TX_LEAKAGE_MIN}, - {132, 499}, {136, 519}, - {140, 539}, - {144, SAP_TX_LEAKAGE_MIN} - } }, - - {128, - {{36, 651}, {40, 651}, - {44, 674}, {48, 640}, - {52, SAP_TX_LEAKAGE_MAX}, {56, SAP_TX_LEAKAGE_MAX}, - {60, SAP_TX_LEAKAGE_MAX}, {64, SAP_TX_LEAKAGE_MAX}, - {100, 603}, {104, 560}, - {108, 540}, {112, 520}, - {116, 499}, {120, 479}, - {124, SAP_TX_LEAKAGE_MIN}, {128, SAP_TX_LEAKAGE_MIN}, - {132, SAP_TX_LEAKAGE_MIN}, {136, 479}, - {140, 499}, - {144, SAP_TX_LEAKAGE_MIN} - } }, - - {132, - {{36, 643}, {40, 668}, - {44, 651}, {48, 657}, - {52, SAP_TX_LEAKAGE_MAX}, {56, SAP_TX_LEAKAGE_MAX}, - {60, SAP_TX_LEAKAGE_MAX}, {64, SAP_TX_LEAKAGE_MAX}, - {100, SAP_TX_LEAKAGE_MAX}, {104, 602}, - {108, 578}, {112, 570}, - {116, 550}, {120, 530}, - {124, 510}, {128, SAP_TX_LEAKAGE_MIN}, - {132, SAP_TX_LEAKAGE_MIN}, {136, SAP_TX_LEAKAGE_MIN}, - {140, 490}, - {144, SAP_TX_LEAKAGE_MIN} - } }, - - {136, - {{36, 654}, {40, 667}, - {44, 666}, {48, 642}, - {52, SAP_TX_LEAKAGE_MAX}, {56, SAP_TX_LEAKAGE_MAX}, - {60, SAP_TX_LEAKAGE_MAX}, {64, SAP_TX_LEAKAGE_MAX}, - {100, SAP_TX_LEAKAGE_MAX}, {104, SAP_TX_LEAKAGE_MAX}, - {108, SAP_TX_LEAKAGE_MAX}, {112, 596}, - {116, 555}, {120, 535}, - {124, 515}, {128, 495}, - {132, SAP_TX_LEAKAGE_MIN}, {136, SAP_TX_LEAKAGE_MIN}, - {140, SAP_TX_LEAKAGE_MIN}, - {144, SAP_TX_LEAKAGE_MIN} - } }, - - {140, - {{36, 679}, {40, 673}, - {44, 667}, {48, 656}, - {52, 634}, {56, 663}, - {60, 662}, {64, 660}, - {100, SAP_TX_LEAKAGE_MAX}, {104, SAP_TX_LEAKAGE_MAX}, - {108, SAP_TX_LEAKAGE_MAX}, {112, 590}, - {116, 573}, {120, 553}, - {124, 533}, {128, 513}, - {132, 490}, {136, SAP_TX_LEAKAGE_MIN}, - {140, SAP_TX_LEAKAGE_MIN}, - {144, SAP_TX_LEAKAGE_MIN} - } }, - - {144, - {{36, 679}, {40, 673}, - {44, 667}, {48, 656}, - {52, 634}, {56, 663}, - {60, 662}, {64, 660}, - {100, SAP_TX_LEAKAGE_MAX}, {104, SAP_TX_LEAKAGE_MAX}, - {108, SAP_TX_LEAKAGE_MAX}, {112, 590}, - {116, 573}, {120, 553}, - {124, 533}, {128, 513}, - {132, 490}, {136, SAP_TX_LEAKAGE_MIN}, - {140, SAP_TX_LEAKAGE_MIN}, - {144, SAP_TX_LEAKAGE_MIN} - } }, -}; -#endif /* WLAN_ENABLE_CHNL_MATRIX_RESTRICTION */ - /*---------------------------------------------------------------------------- * Static Function Declarations and Definitions * -------------------------------------------------------------------------*/ @@ -982,170 +289,6 @@ static uint8_t sap_random_channel_sel(struct sap_context *sap_ctx) return ch; } -#ifdef WLAN_ENABLE_CHNL_MATRIX_RESTRICTION -/* - * sap_find_target_channel_in_channel_matrix() - finds the leakage matrix - * @sapContext: Pointer to vos global context structure - * @ch_width: target channel width - * @NOL_channel: the NOL channel whose leakage matrix is required - * @pTarget_chnl_mtrx: pointer to target channel matrix returned. - * - * This function gives the leakage matrix for given NOL channel and ch_width - * - * Return: TRUE or FALSE - */ -static bool -sap_find_target_channel_in_channel_matrix(struct sap_context *sapContext, - enum phy_ch_width ch_width, - uint8_t NOL_channel, - tSapTxLeakInfo **pTarget_chnl_mtrx) -{ - tSapTxLeakInfo *target_chan_matrix = NULL; - tSapChanMatrixInfo *pchan_matrix = NULL; - uint32_t nchan_matrix; - int i = 0; - - switch (ch_width) { - case CH_WIDTH_20MHZ: - /* HT20 */ - pchan_matrix = ht20_chan; - nchan_matrix = QDF_ARRAY_SIZE(ht20_chan); - break; - case CH_WIDTH_40MHZ: - /* HT40 */ - pchan_matrix = ht40_chan; - nchan_matrix = QDF_ARRAY_SIZE(ht40_chan); - break; - case CH_WIDTH_80MHZ: - /* HT80 */ - pchan_matrix = ht80_chan; - nchan_matrix = QDF_ARRAY_SIZE(ht80_chan); - break; - default: - /* handle exception and fall back to HT20 table */ - pchan_matrix = ht20_chan; - nchan_matrix = QDF_ARRAY_SIZE(ht20_chan); - break; - } - - for (i = 0; i < nchan_matrix; i++) { - /* find the SAP channel to map the leakage matrix */ - if (NOL_channel == pchan_matrix[i].channel) { - target_chan_matrix = pchan_matrix[i].chan_matrix; - break; - } - } - - if (NULL == target_chan_matrix) { - return false; - } else { - *pTarget_chnl_mtrx = target_chan_matrix; - return true; - } -} - -/** - * sap_mark_leaking_ch() - to mark channel leaking in to nol - * @sap_ctx: pointer to SAP context - * @ch_width: channel width - * @nol: nol info - * @temp_ch_lst_sz: the target channel list - * @temp_ch_lst: the target channel list - * - * This function removes the channels from temp channel list that - * (if selected as target channel) will cause leakage in one of - * the NOL channels - * - * Return: QDF_STATUS - */ - -QDF_STATUS -sap_mark_leaking_ch(struct sap_context *sap_ctx, - enum phy_ch_width ch_width, - tSapDfsNolInfo *nol, - uint8_t temp_ch_lst_sz, - uint8_t *temp_ch_lst) -{ - tSapTxLeakInfo *target_chan_matrix = NULL; - uint32_t num_channel = (CHAN_ENUM_144 - CHAN_ENUM_36) + 1; - uint32_t i = 0; - uint32_t j = 0; - uint32_t k = 0; - uint8_t dfs_nol_channel; - tHalHandle hal = CDS_GET_HAL_CB(); - tpAniSirGlobal mac; - - if (NULL == hal) { - QDF_TRACE(QDF_MODULE_ID_SAP, QDF_TRACE_LEVEL_ERROR, - "%s: Invalid hal pointer", __func__); - return QDF_STATUS_E_FAULT; - } - - mac = PMAC_STRUCT(hal); - - - /* traverse target_chan_matrix and */ - for (i = 0; i < NUM_5GHZ_CHANNELS ; i++) { - dfs_nol_channel = nol[i].dfs_channel_number; - if (nol[i].radar_status_flag == eSAP_DFS_CHANNEL_USABLE || - nol[i].radar_status_flag == eSAP_DFS_CHANNEL_AVAILABLE) { - /* not present in NOL */ - continue; - } - QDF_TRACE(QDF_MODULE_ID_SAP, QDF_TRACE_LEVEL_DEBUG, - FL("sapdfs: processing NOL channel: %d"), - dfs_nol_channel); - if (false == sap_find_target_channel_in_channel_matrix( - sap_ctx, ch_width, dfs_nol_channel, - &target_chan_matrix)) { - /* - * should never happen, we should always find a table - * here, if we don't, need a fix here! - */ - QDF_TRACE(QDF_MODULE_ID_SAP, QDF_TRACE_LEVEL_ERROR, - FL("Couldn't find target channel matrix!")); - QDF_ASSERT(0); - return QDF_STATUS_E_FAILURE; - } - /* - * following is based on assumption that both temp_ch_lst - * and target channel matrix are in increasing order of - * ch_id - */ - for (j = 0, k = 0; j < temp_ch_lst_sz && k < num_channel;) { - if (temp_ch_lst[j] == 0) { - j++; - continue; - } - if (target_chan_matrix[k].leak_chan != temp_ch_lst[j]) { - k++; - continue; - } - /* - * check leakage from candidate channel - * to NOL channel - */ - if (target_chan_matrix[k].leak_lvl <= - mac->sap.SapDfsInfo.tx_leakage_threshold) { - /* - * candidate channel will have - * bad leakage in NOL channel, - * remove from temp list - */ - QDF_TRACE(QDF_MODULE_ID_SAP, - QDF_TRACE_LEVEL_INFO_LOW, - FL("sapdfs: channel: %d will have bad leakage due to channel: %d\n"), - dfs_nol_channel, temp_ch_lst[j]); - temp_ch_lst[j] = 0; - } - j++; - k++; - } - } /* end of loop that selects each NOL */ - return QDF_STATUS_SUCCESS; -} -#endif /* end of WLAN_ENABLE_CHNL_MATRIX_RESTRICTION */ - /** * sap_is_channel_bonding_etsi_weather_channel() - check weather chan bonding. * @sap_ctx: sap context @@ -3058,25 +2201,19 @@ static QDF_STATUS sap_fsm_state_ch_select(struct sap_context *sap_ctx, uint32_t msg = sap_event->event; QDF_STATUS qdf_status = QDF_STATUS_E_FAILURE; bool b_leak_chan = false; -#ifdef WLAN_ENABLE_CHNL_MATRIX_RESTRICTION uint8_t temp_chan; - tSapDfsNolInfo *p_nol; -#endif if (msg == eSAP_MAC_SCAN_COMPLETE) { -#ifdef WLAN_ENABLE_CHNL_MATRIX_RESTRICTION temp_chan = sap_ctx->channel; - p_nol = mac_ctx->sap.SapDfsInfo.sapDfsChannelNolList; - - sap_mark_leaking_ch(sap_ctx, - sap_ctx->ch_params.ch_width, p_nol, 1, &temp_chan); + utils_dfs_mark_leaking_ch(mac_ctx->pdev, + sap_ctx->ch_params.ch_width, + 1, &temp_chan); /* * if selelcted channel has leakage to channels * in NOL, the temp_chan will be reset */ b_leak_chan = (temp_chan != sap_ctx->channel); -#endif /* * check if channel is in DFS_NOL or if the channel * has leakage to the channels in NOL diff --git a/core/sap/src/sap_internal.h b/core/sap/src/sap_internal.h index e51bac813073..12d14eaf51c8 100644 --- a/core/sap/src/sap_internal.h +++ b/core/sap/src/sap_internal.h @@ -438,26 +438,6 @@ QDF_STATUS sap_set_session_param(tHalHandle hal, struct sap_context *sapctx, */ QDF_STATUS sap_clear_session_param(tHalHandle hal, struct sap_context *sapctx, uint32_t session_id); -/** - * sap_mark_leaking_ch() - to mark channel leaking in to nol - * @sap_ctx: pointer to SAP context - * @ch_width: channel width - * @nol: nol info - * @temp_ch_lst_sz: the target channel list - * @temp_ch_lst: the target channel list - * - * This function removes the channels from temp channel list that - * (if selected as target channel) will cause leakage in one of - * the NOL channels - * - * Return: QDF_STATUS - */ -QDF_STATUS -sap_mark_leaking_ch(struct sap_context *sap_ctx, - enum phy_ch_width ch_width, - tSapDfsNolInfo *nol, - uint8_t temp_ch_lst_sz, - uint8_t *temp_ch_lst); void sap_scan_event_callback(struct wlan_objmgr_vdev *vdev, struct scan_event *event, void *arg); diff --git a/core/sap/src/sap_module.c b/core/sap/src/sap_module.c index 2d17e0b0e0ce..1f7acf0b1f4a 100644 --- a/core/sap/src/sap_module.c +++ b/core/sap/src/sap_module.c @@ -410,25 +410,14 @@ bool wlansap_is_channel_in_nol_list(struct sap_context *sap_ctx, chanBondState); } -#ifdef WLAN_ENABLE_CHNL_MATRIX_RESTRICTION -static QDF_STATUS wlansap_mark_leaking_channel(struct sap_context *sap_ctx, - tSapDfsNolInfo *nol, +static QDF_STATUS wlansap_mark_leaking_channel(struct wlan_objmgr_pdev *pdev, uint8_t *leakage_adjusted_lst, uint8_t chan_bw) { - return sap_mark_leaking_ch(sap_ctx, chan_bw, nol, 1, + return utils_dfs_mark_leaking_ch(pdev, chan_bw, 1, leakage_adjusted_lst); } -#else -static QDF_STATUS wlansap_mark_leaking_channel(struct sap_context *sap_ctx, - tSapDfsNolInfo *nol, - uint8_t *leakage_adjusted_lst, - uint8_t chan_bw) -{ - return QDF_STATUS_SUCCESS; -} -#endif bool wlansap_is_channel_leaking_in_nol(struct sap_context *sap_ctx, uint8_t channel, @@ -437,7 +426,6 @@ bool wlansap_is_channel_leaking_in_nol(struct sap_context *sap_ctx, tpAniSirGlobal mac_ctx; uint8_t leakage_adjusted_lst[1]; void *handle = NULL; - tSapDfsNolInfo *nol; leakage_adjusted_lst[0] = channel; handle = CDS_GET_HAL_CB(); @@ -447,15 +435,13 @@ bool wlansap_is_channel_leaking_in_nol(struct sap_context *sap_ctx, "%s: Invalid mac pointer", __func__); return QDF_STATUS_E_FAULT; } - nol = mac_ctx->sap.SapDfsInfo.sapDfsChannelNolList; - QDF_TRACE(QDF_MODULE_ID_SAP, QDF_TRACE_LEVEL_ERROR, - FL("sapdfs: Processing current chan against NOL.")); - if (wlansap_mark_leaking_channel(sap_ctx, nol, - leakage_adjusted_lst, chan_bw) != QDF_STATUS_SUCCESS) { + if (QDF_IS_STATUS_ERROR(wlansap_mark_leaking_channel(mac_ctx->pdev, + leakage_adjusted_lst, chan_bw))) return true; - } - if (leakage_adjusted_lst[0] == 0) + + if (!leakage_adjusted_lst[0]) return true; + return false; } @@ -2548,15 +2534,6 @@ uint32_t wlansap_get_chan_width(struct sap_context *sap_ctx) return wlan_sap_get_vht_ch_width(sap_ctx); } -/** - * wlansap_set_tx_leakage_threshold() - set sap tx leakage threshold. - * @hal: HAL pointer - * @tx_leakage_threshold: sap tx leakage threshold - * - * This function set sap tx leakage threshold. - * - * Return: QDF_STATUS. - */ QDF_STATUS wlansap_set_tx_leakage_threshold(tHalHandle hal, uint16_t tx_leakage_threshold) { @@ -2569,10 +2546,10 @@ QDF_STATUS wlansap_set_tx_leakage_threshold(tHalHandle hal, } mac = PMAC_STRUCT(hal); - mac->sap.SapDfsInfo.tx_leakage_threshold = tx_leakage_threshold; + tgt_dfs_set_tx_leakage_threshold(mac->pdev, tx_leakage_threshold); QDF_TRACE(QDF_MODULE_ID_SAP, QDF_TRACE_LEVEL_INFO, "%s: leakage_threshold %d", __func__, - mac->sap.SapDfsInfo.tx_leakage_threshold); + tx_leakage_threshold); return QDF_STATUS_SUCCESS; }