Browse Source

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
bings 7 years ago
parent
commit
1826d9cbd5
5 changed files with 22 additions and 942 deletions
  1. 9 0
      core/sap/inc/sap_api.h
  2. 1 24
      core/sap/src/sap_ch_select.h
  3. 3 866
      core/sap/src/sap_fsm.c
  4. 0 20
      core/sap/src/sap_internal.h
  5. 9 32
      core/sap/src/sap_module.c

+ 9 - 0
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);
 

+ 1 - 24
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 */

+ 3 - 866
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

+ 0 - 20
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);

+ 9 - 32
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;
 }