mirror of https://github.com/OpenIPC/firmware.git
				
				
				
			
		
			
				
	
	
		
			569 lines
		
	
	
		
			18 KiB
		
	
	
	
		
			Diff
		
	
	
			
		
		
	
	
			569 lines
		
	
	
		
			18 KiB
		
	
	
	
		
			Diff
		
	
	
| diff -Naur a/drivers/net/wireless/ath/ath9k/eeprom_4k.c b/drivers/net/wireless/ath/ath9k/eeprom_4k.c
 | |
| --- a/drivers/net/wireless/ath/ath9k/eeprom_4k.c	2013-10-01 19:18:05.000000000 +0300
 | |
| +++ b/drivers/net/wireless/ath/ath9k/eeprom_4k.c	2023-02-17 19:23:40.559618818 +0200
 | |
| @@ -18,6 +18,9 @@
 | |
|  #include "hw.h"
 | |
|  #include "ar9002_phy.h"
 | |
|  
 | |
| +extern u8 tx_power_man;
 | |
| +extern u8 thresh62_man;
 | |
| +
 | |
|  static int ath9k_hw_4k_get_eeprom_ver(struct ath_hw *ah)
 | |
|  {
 | |
|  	return ((ah->eeprom.map4k.baseEepHeader.version >> 12) & 0xF);
 | |
| @@ -681,7 +684,10 @@
 | |
|  	    return;
 | |
|  
 | |
|  	for (i = 0; i < Ar5416RateSize; i++)
 | |
| -		ratesArray[i] -= AR5416_PWR_TABLE_OFFSET_DB * 2;
 | |
| +		//ratesArray[i] -= AR5416_PWR_TABLE_OFFSET_DB * 2;
 | |
| +		ratesArray[i] = tx_power_man;
 | |
| +
 | |
| +	printk("ATH: TX Power set: %d\n",tx_power_man);
 | |
|  
 | |
|  	ENABLE_REGWRITE_BUFFER(ah);
 | |
|  
 | |
| @@ -1018,10 +1024,8 @@
 | |
|  	if (AR_SREV_9271_10(ah))
 | |
|  		REG_RMW_FIELD(ah, AR_PHY_RF_CTL3, AR_PHY_TX_END_TO_A2_RX_ON,
 | |
|  			      pModal->txEndToRxOn);
 | |
| -	REG_RMW_FIELD(ah, AR_PHY_CCA, AR9280_PHY_CCA_THRESH62,
 | |
| -		      pModal->thresh62);
 | |
| -	REG_RMW_FIELD(ah, AR_PHY_EXT_CCA0, AR_PHY_EXT_CCA0_THRESH62,
 | |
| -		      pModal->thresh62);
 | |
| +	REG_RMW_FIELD(ah, AR_PHY_CCA, AR9280_PHY_CCA_THRESH62, thresh62_man);
 | |
| +	REG_RMW_FIELD(ah, AR_PHY_EXT_CCA0, AR_PHY_EXT_CCA0_THRESH62, thresh62_man);
 | |
|  
 | |
|  	if ((eep->baseEepHeader.version & AR5416_EEP_VER_MINOR_MASK) >=
 | |
|  						AR5416_EEP_MINOR_VER_2) {
 | |
| diff -Naur a/drivers/net/wireless/ath/ath9k/eeprom_9287.c b/drivers/net/wireless/ath/ath9k/eeprom_9287.c
 | |
| --- a/drivers/net/wireless/ath/ath9k/eeprom_9287.c	2013-10-01 19:18:05.000000000 +0300
 | |
| +++ b/drivers/net/wireless/ath/ath9k/eeprom_9287.c	2023-02-17 19:28:18.994342197 +0200
 | |
| @@ -18,6 +18,8 @@
 | |
|  #include "hw.h"
 | |
|  #include "ar9002_phy.h"
 | |
|  
 | |
| +extern u8 tx_power_man;
 | |
| +
 | |
|  #define SIZE_EEPROM_AR9287 (sizeof(struct ar9287_eeprom) / sizeof(u16))
 | |
|  
 | |
|  static int ath9k_hw_ar9287_get_eeprom_ver(struct ath_hw *ah)
 | |
| @@ -799,8 +801,10 @@
 | |
|  		return;
 | |
|  
 | |
|  	for (i = 0; i < Ar5416RateSize; i++)
 | |
| -		ratesArray[i] -= AR9287_PWR_TABLE_OFFSET_DB * 2;
 | |
| +		//ratesArray[i] -= AR9287_PWR_TABLE_OFFSET_DB * 2;
 | |
| +		ratesArray[i] = tx_power_man;
 | |
|  
 | |
| +	printk("ATH: TX Power set: %d\n",tx_power_man);
 | |
|  	ENABLE_REGWRITE_BUFFER(ah);
 | |
|  
 | |
|  	/* OFDM power per rate */
 | |
| diff -Naur a/drivers/net/wireless/ath/ath9k/hif_usb.h b/drivers/net/wireless/ath/ath9k/hif_usb.h
 | |
| --- a/drivers/net/wireless/ath/ath9k/hif_usb.h	2013-10-01 19:18:05.000000000 +0300
 | |
| +++ b/drivers/net/wireless/ath/ath9k/hif_usb.h	2023-02-17 19:29:03.261158446 +0200
 | |
| @@ -43,7 +43,7 @@
 | |
|  #define MAX_PKT_NUM_IN_TRANSFER 10
 | |
|  
 | |
|  #define MAX_REG_OUT_URB_NUM  1
 | |
| -#define MAX_REG_IN_URB_NUM   64
 | |
| +#define MAX_REG_IN_URB_NUM   8
 | |
|  
 | |
|  #define MAX_REG_IN_BUF_SIZE 64
 | |
|  
 | |
| diff -Naur a/drivers/net/wireless/ath/ath9k/htc_drv_init.c b/drivers/net/wireless/ath/ath9k/htc_drv_init.c
 | |
| --- a/drivers/net/wireless/ath/ath9k/htc_drv_init.c	2013-10-01 19:18:05.000000000 +0300
 | |
| +++ b/drivers/net/wireless/ath/ath9k/htc_drv_init.c	2023-02-17 19:39:56.867254378 +0200
 | |
| @@ -37,17 +37,38 @@
 | |
|  #define CHAN2G(_freq, _idx)  { \
 | |
|  	.center_freq = (_freq), \
 | |
|  	.hw_value = (_idx), \
 | |
| -	.max_power = 20, \
 | |
| +	.max_power = 30, \
 | |
|  }
 | |
|  
 | |
|  #define CHAN5G(_freq, _idx) { \
 | |
|  	.band = IEEE80211_BAND_5GHZ, \
 | |
|  	.center_freq = (_freq), \
 | |
|  	.hw_value = (_idx), \
 | |
| -	.max_power = 20, \
 | |
| +	.max_power = 30, \
 | |
|  }
 | |
|  
 | |
|  static struct ieee80211_channel ath9k_2ghz_channels[] = {
 | |
| +	CHAN2G(2312, 34), /* Channel XX */
 | |
| +	CHAN2G(2317, 35), /* Channel XX */
 | |
| +	CHAN2G(2322, 36), /* Channel XX */
 | |
| +	CHAN2G(2327, 37), /* Channel XX */
 | |
| +	CHAN2G(2332, 38), /* Channel XX */
 | |
| +	CHAN2G(2337, 39), /* Channel XX */
 | |
| +	CHAN2G(2342, 40), /* Channel XX */
 | |
| +	CHAN2G(2347, 41), /* Channel XX */
 | |
| +	CHAN2G(2352, 42), /* Channel XX */
 | |
| +	CHAN2G(2357, 43), /* Channel XX */
 | |
| +	CHAN2G(2362, 44), /* Channel XX */
 | |
| +	CHAN2G(2367, 45), /* Channel XX */
 | |
| +	CHAN2G(2372, 46), /* Channel XX */
 | |
| +	CHAN2G(2377, 47), /* Channel XX */
 | |
| +	CHAN2G(2382, 48), /* Channel XX */
 | |
| +	CHAN2G(2387, 49), /* Channel XX */
 | |
| +	CHAN2G(2392, 50), /* Channel XX */
 | |
| +	CHAN2G(2397, 51), /* Channel XX */
 | |
| +	CHAN2G(2402, 52), /* Channel XX */
 | |
| +	CHAN2G(2407, 53), /* Channel XX */
 | |
| +
 | |
|  	CHAN2G(2412, 0), /* Channel 1 */
 | |
|  	CHAN2G(2417, 1), /* Channel 2 */
 | |
|  	CHAN2G(2422, 2), /* Channel 3 */
 | |
| @@ -61,38 +82,68 @@
 | |
|  	CHAN2G(2462, 10), /* Channel 11 */
 | |
|  	CHAN2G(2467, 11), /* Channel 12 */
 | |
|  	CHAN2G(2472, 12), /* Channel 13 */
 | |
| -	CHAN2G(2484, 13), /* Channel 14 */
 | |
| +	//CHAN2G(2484, 13), /* Channel 14 */
 | |
| +
 | |
| +	CHAN2G(2477, 13), /* Channel XX */
 | |
| +	CHAN2G(2478, 14), /* Channel XX */
 | |
| +	CHAN2G(2482, 15), /* Channel XX */
 | |
| +
 | |
| +	CHAN2G(2484, 16), /* Channel 14 */
 | |
| +
 | |
| +	CHAN2G(2487, 17), /* Channel XX */
 | |
| +	CHAN2G(2489, 18), /* Channel XX */
 | |
| +	CHAN2G(2492, 19), /* Channel XX */
 | |
| +	CHAN2G(2494, 20), /* Channel XX */
 | |
| +	CHAN2G(2497, 21), /* Channel XX */
 | |
| +	CHAN2G(2499, 22), /* Channel XX */
 | |
| +	CHAN2G(2512, 23), /* Channel XX */
 | |
| +	CHAN2G(2532, 24), /* Channel XX */
 | |
| +	CHAN2G(2572, 25), /* Channel XX */
 | |
| +	CHAN2G(2592, 26), /* Channel XX */
 | |
| +	CHAN2G(2612, 27), /* Channel XX */
 | |
| +	CHAN2G(2632, 28), /* Channel XX */
 | |
| +	CHAN2G(2652, 29), /* Channel XX */
 | |
| +	CHAN2G(2672, 30), /* Channel XX */
 | |
| +	CHAN2G(2692, 31), /* Channel XX */
 | |
| +	CHAN2G(2712, 32), /* Channel XX */
 | |
| +	CHAN2G(2732, 33), /* Channel XX */	
 | |
| +
 | |
|  };
 | |
|  
 | |
|  static struct ieee80211_channel ath9k_5ghz_channels[] = {
 | |
| +	CHAN5G(4920, 54), /* Channel XX */
 | |
| +	CHAN5G(4940, 55), /* Channel XX */
 | |
| +	CHAN5G(4960, 56), /* Channel XX */
 | |
| +	CHAN5G(4980, 57), /* Channel XX */
 | |
| +	
 | |
|  	/* _We_ call this UNII 1 */
 | |
| -	CHAN5G(5180, 14), /* Channel 36 */
 | |
| -	CHAN5G(5200, 15), /* Channel 40 */
 | |
| -	CHAN5G(5220, 16), /* Channel 44 */
 | |
| -	CHAN5G(5240, 17), /* Channel 48 */
 | |
| + 	CHAN5G(5180, 58), /* Channel 36 */
 | |
| + 	CHAN5G(5200, 59), /* Channel 40 */
 | |
| + 	CHAN5G(5220, 60), /* Channel 44 */
 | |
| + 	CHAN5G(5240, 61), /* Channel 48 */
 | |
|  	/* _We_ call this UNII 2 */
 | |
| -	CHAN5G(5260, 18), /* Channel 52 */
 | |
| -	CHAN5G(5280, 19), /* Channel 56 */
 | |
| -	CHAN5G(5300, 20), /* Channel 60 */
 | |
| -	CHAN5G(5320, 21), /* Channel 64 */
 | |
| +	CHAN5G(5260, 62), /* Channel 52 */
 | |
| +	CHAN5G(5280, 63), /* Channel 56 */
 | |
| +	CHAN5G(5300, 64), /* Channel 60 */
 | |
| +	CHAN5G(5320, 65), /* Channel 64 */
 | |
|  	/* _We_ call this "Middle band" */
 | |
| -	CHAN5G(5500, 22), /* Channel 100 */
 | |
| -	CHAN5G(5520, 23), /* Channel 104 */
 | |
| -	CHAN5G(5540, 24), /* Channel 108 */
 | |
| -	CHAN5G(5560, 25), /* Channel 112 */
 | |
| -	CHAN5G(5580, 26), /* Channel 116 */
 | |
| -	CHAN5G(5600, 27), /* Channel 120 */
 | |
| -	CHAN5G(5620, 28), /* Channel 124 */
 | |
| -	CHAN5G(5640, 29), /* Channel 128 */
 | |
| -	CHAN5G(5660, 30), /* Channel 132 */
 | |
| -	CHAN5G(5680, 31), /* Channel 136 */
 | |
| -	CHAN5G(5700, 32), /* Channel 140 */
 | |
| + 	CHAN5G(5500, 66), /* Channel 100 */
 | |
| + 	CHAN5G(5520, 67), /* Channel 104 */
 | |
| + 	CHAN5G(5540, 68), /* Channel 108 */
 | |
| + 	CHAN5G(5560, 69), /* Channel 112 */
 | |
| + 	CHAN5G(5580, 70), /* Channel 116 */
 | |
| + 	CHAN5G(5600, 71), /* Channel 120 */
 | |
| + 	CHAN5G(5620, 72), /* Channel 124 */
 | |
| + 	CHAN5G(5640, 73), /* Channel 128 */
 | |
| + 	CHAN5G(5660, 74), /* Channel 132 */
 | |
| + 	CHAN5G(5680, 75), /* Channel 136 */
 | |
| + 	CHAN5G(5700, 76), /* Channel 140 */
 | |
|  	/* _We_ call this UNII 3 */
 | |
| -	CHAN5G(5745, 33), /* Channel 149 */
 | |
| -	CHAN5G(5765, 34), /* Channel 153 */
 | |
| -	CHAN5G(5785, 35), /* Channel 157 */
 | |
| -	CHAN5G(5805, 36), /* Channel 161 */
 | |
| -	CHAN5G(5825, 37), /* Channel 165 */
 | |
| + 	CHAN5G(5745, 77), /* Channel 149 */
 | |
| + 	CHAN5G(5765, 78), /* Channel 153 */
 | |
| + 	CHAN5G(5785, 79), /* Channel 157 */
 | |
| + 	CHAN5G(5805, 80), /* Channel 161 */
 | |
| + 	CHAN5G(5825, 81), /* Channel 165 */
 | |
|  };
 | |
|  
 | |
|  /* Atheros hardware rate code addition for short premble */
 | |
| diff -Naur a/drivers/net/wireless/ath/ath9k/hw.c b/drivers/net/wireless/ath/ath9k/hw.c
 | |
| --- a/drivers/net/wireless/ath/ath9k/hw.c	2013-10-01 19:18:05.000000000 +0300
 | |
| +++ b/drivers/net/wireless/ath/ath9k/hw.c	2023-02-17 19:48:47.787252400 +0200
 | |
| @@ -35,6 +35,40 @@
 | |
|  MODULE_SUPPORTED_DEVICE("Atheros 802.11n WLAN cards");
 | |
|  MODULE_LICENSE("Dual BSD/GPL");
 | |
|  
 | |
| +u8 tx_power_man = 58; //manual power
 | |
| +u8 cwmin_man = 7;
 | |
| +u8 cwmax_man = 15;
 | |
| +u8 aifs_man = 2;
 | |
| +u8 cck_sifs_man = 10;
 | |
| +u8 ofdm_sifs_man = 16;
 | |
| +u8 slottime_man = 9;
 | |
| +u8 thresh62_man = 28;
 | |
| +
 | |
| +module_param_named(txpower,tx_power_man,byte,0444);
 | |
| +MODULE_PARM_DESC(txpower,"Manual TX power setting, default 58, max 63");
 | |
| +
 | |
| +module_param_named(cwmin,cwmin_man,byte,0444);
 | |
| +MODULE_PARM_DESC(cwmin,"CWMIN setting, 0-255, default 7");
 | |
| +
 | |
| +module_param_named(cwmax,cwmax_man,byte,0444);
 | |
| +MODULE_PARM_DESC(cwmax,"CWMAX setting, 0-255, default 15");
 | |
| +
 | |
| +module_param_named(aifs,aifs_man,byte,0444);
 | |
| +MODULE_PARM_DESC(aifs,"AIFS setting, default 2");
 | |
| +
 | |
| +module_param_named(cck_sifs,cck_sifs_man,byte,0444);
 | |
| +MODULE_PARM_DESC(cck_sifs,"CCK SIFS setting, default 10");
 | |
| +
 | |
| +module_param_named(ofdm_sifs,ofdm_sifs_man,byte,0444);
 | |
| +MODULE_PARM_DESC(ofdm_sifs,"OFDM SIFS setting, default 16");
 | |
| +
 | |
| +module_param_named(slottime,slottime_man,byte,0444);
 | |
| +MODULE_PARM_DESC(slottime,"Slottime setting, default 9");
 | |
| +
 | |
| +module_param_named(thresh62,thresh62_man,byte,0444);
 | |
| +MODULE_PARM_DESC(thresh62,"CCA THRESH62 setting, default 28");
 | |
| +
 | |
| +
 | |
|  static int __init ath9k_init(void)
 | |
|  {
 | |
|  	return 0;
 | |
| @@ -1100,7 +1134,8 @@
 | |
|  	}
 | |
|  
 | |
|  	/* As defined by IEEE 802.11-2007 17.3.8.6 */
 | |
| -	slottime += 3 * ah->coverage_class;
 | |
| +	//slottime += 3 * ah->coverage_class;
 | |
| +	slottime = slottime_man;
 | |
|  	acktimeout = slottime + sifstime + ack_offset;
 | |
|  	ctstimeout = acktimeout;
 | |
|  
 | |
| diff -Naur a/drivers/net/wireless/ath/ath9k/hw.h b/drivers/net/wireless/ath/ath9k/hw.h
 | |
| --- a/drivers/net/wireless/ath/ath9k/hw.h	2013-10-01 19:18:05.000000000 +0300
 | |
| +++ b/drivers/net/wireless/ath/ath9k/hw.h	2023-02-17 19:32:07.103600256 +0200
 | |
| @@ -69,7 +69,7 @@
 | |
|  
 | |
|  #define ATH9K_RSSI_BAD			-128
 | |
|  
 | |
| -#define ATH9K_NUM_CHANNELS	38
 | |
| +#define ATH9K_NUM_CHANNELS	82
 | |
|  
 | |
|  /* Register read/write primitives */
 | |
|  #define REG_WRITE(_ah, _reg, _val) \
 | |
| diff -Naur a/drivers/net/wireless/ath/ath9k/init.c b/drivers/net/wireless/ath/ath9k/init.c
 | |
| --- a/drivers/net/wireless/ath/ath9k/init.c	2013-10-01 19:18:05.000000000 +0300
 | |
| +++ b/drivers/net/wireless/ath/ath9k/init.c	2023-02-17 19:45:32.152850755 +0200
 | |
| @@ -63,14 +63,14 @@
 | |
|  	.band = IEEE80211_BAND_2GHZ, \
 | |
|  	.center_freq = (_freq), \
 | |
|  	.hw_value = (_idx), \
 | |
| -	.max_power = 20, \
 | |
| +	.max_power = 30, \
 | |
|  }
 | |
|  
 | |
|  #define CHAN5G(_freq, _idx) { \
 | |
|  	.band = IEEE80211_BAND_5GHZ, \
 | |
|  	.center_freq = (_freq), \
 | |
|  	.hw_value = (_idx), \
 | |
| -	.max_power = 20, \
 | |
| +	.max_power = 30, \
 | |
|  }
 | |
|  
 | |
|  /* Some 2 GHz radios are actually tunable on 2312-2732
 | |
| @@ -78,6 +78,28 @@
 | |
|   * we have calibration data for all cards though to make
 | |
|   * this static */
 | |
|  static const struct ieee80211_channel ath9k_2ghz_chantable[] = {
 | |
| +
 | |
| +CHAN2G(2312, 34), /* Channel XX */
 | |
| +	CHAN2G(2317, 35), /* Channel XX */
 | |
| +	CHAN2G(2322, 36), /* Channel XX */
 | |
| +	CHAN2G(2327, 37), /* Channel XX */
 | |
| +	CHAN2G(2332, 38), /* Channel XX */
 | |
| +	CHAN2G(2337, 39), /* Channel XX */
 | |
| +	CHAN2G(2342, 40), /* Channel XX */
 | |
| +	CHAN2G(2347, 41), /* Channel XX */
 | |
| +	CHAN2G(2352, 42), /* Channel XX */
 | |
| +	CHAN2G(2357, 43), /* Channel XX */
 | |
| +	CHAN2G(2362, 44), /* Channel XX */
 | |
| +	CHAN2G(2367, 45), /* Channel XX */
 | |
| +	CHAN2G(2372, 46), /* Channel XX */
 | |
| +	CHAN2G(2377, 47), /* Channel XX */
 | |
| +	CHAN2G(2382, 48), /* Channel XX */
 | |
| +	CHAN2G(2387, 49), /* Channel XX */
 | |
| +	CHAN2G(2392, 50), /* Channel XX */
 | |
| +	CHAN2G(2397, 51), /* Channel XX */
 | |
| +	CHAN2G(2402, 52), /* Channel XX */
 | |
| +	CHAN2G(2407, 53), /* Channel XX */
 | |
| +
 | |
|  	CHAN2G(2412, 0), /* Channel 1 */
 | |
|  	CHAN2G(2417, 1), /* Channel 2 */
 | |
|  	CHAN2G(2422, 2), /* Channel 3 */
 | |
| @@ -91,7 +113,32 @@
 | |
|  	CHAN2G(2462, 10), /* Channel 11 */
 | |
|  	CHAN2G(2467, 11), /* Channel 12 */
 | |
|  	CHAN2G(2472, 12), /* Channel 13 */
 | |
| -	CHAN2G(2484, 13), /* Channel 14 */
 | |
| +	//CHAN2G(2484, 13), /* Channel 14 */
 | |
| +
 | |
| +	CHAN2G(2477, 13), /* Channel XX */
 | |
| +	CHAN2G(2478, 14), /* Channel XX */
 | |
| +	CHAN2G(2482, 15), /* Channel XX */
 | |
| +
 | |
| +	CHAN2G(2484, 16), /* Channel 14 */
 | |
| +
 | |
| +	CHAN2G(2487, 17), /* Channel XX */
 | |
| +	CHAN2G(2489, 18), /* Channel XX */
 | |
| +	CHAN2G(2492, 19), /* Channel XX */
 | |
| +	CHAN2G(2494, 20), /* Channel XX */
 | |
| +	CHAN2G(2497, 21), /* Channel XX */
 | |
| +	CHAN2G(2499, 22), /* Channel XX */
 | |
| +	CHAN2G(2512, 23), /* Channel XX */
 | |
| +	CHAN2G(2532, 24), /* Channel XX */
 | |
| +	CHAN2G(2572, 25), /* Channel XX */
 | |
| +	CHAN2G(2592, 26), /* Channel XX */
 | |
| +	CHAN2G(2612, 27), /* Channel XX */
 | |
| +	CHAN2G(2632, 28), /* Channel XX */
 | |
| +	CHAN2G(2652, 29), /* Channel XX */
 | |
| +	CHAN2G(2672, 30), /* Channel XX */
 | |
| +	CHAN2G(2692, 31), /* Channel XX */
 | |
| +	CHAN2G(2712, 32), /* Channel XX */
 | |
| +	CHAN2G(2732, 33), /* Channel XX */	
 | |
| +	 
 | |
|  };
 | |
|  
 | |
|  /* Some 5 GHz radios are actually tunable on XXXX-YYYY
 | |
| @@ -99,34 +146,39 @@
 | |
|   * we have calibration data for all cards though to make
 | |
|   * this static */
 | |
|  static const struct ieee80211_channel ath9k_5ghz_chantable[] = {
 | |
| +    CHAN5G(4920, 54), /* Channel XX */
 | |
| +	CHAN5G(4940, 55), /* Channel XX */
 | |
| +	CHAN5G(4960, 56), /* Channel XX */
 | |
| +	CHAN5G(4980, 57), /* Channel XX */
 | |
| +	
 | |
|  	/* _We_ call this UNII 1 */
 | |
| -	CHAN5G(5180, 14), /* Channel 36 */
 | |
| -	CHAN5G(5200, 15), /* Channel 40 */
 | |
| -	CHAN5G(5220, 16), /* Channel 44 */
 | |
| -	CHAN5G(5240, 17), /* Channel 48 */
 | |
| + 	CHAN5G(5180, 58), /* Channel 36 */
 | |
| + 	CHAN5G(5200, 59), /* Channel 40 */
 | |
| + 	CHAN5G(5220, 60), /* Channel 44 */
 | |
| + 	CHAN5G(5240, 61), /* Channel 48 */
 | |
|  	/* _We_ call this UNII 2 */
 | |
| -	CHAN5G(5260, 18), /* Channel 52 */
 | |
| -	CHAN5G(5280, 19), /* Channel 56 */
 | |
| -	CHAN5G(5300, 20), /* Channel 60 */
 | |
| -	CHAN5G(5320, 21), /* Channel 64 */
 | |
| +	CHAN5G(5260, 62), /* Channel 52 */
 | |
| +	CHAN5G(5280, 63), /* Channel 56 */
 | |
| +	CHAN5G(5300, 64), /* Channel 60 */
 | |
| +	CHAN5G(5320, 65), /* Channel 64 */
 | |
|  	/* _We_ call this "Middle band" */
 | |
| -	CHAN5G(5500, 22), /* Channel 100 */
 | |
| -	CHAN5G(5520, 23), /* Channel 104 */
 | |
| -	CHAN5G(5540, 24), /* Channel 108 */
 | |
| -	CHAN5G(5560, 25), /* Channel 112 */
 | |
| -	CHAN5G(5580, 26), /* Channel 116 */
 | |
| -	CHAN5G(5600, 27), /* Channel 120 */
 | |
| -	CHAN5G(5620, 28), /* Channel 124 */
 | |
| -	CHAN5G(5640, 29), /* Channel 128 */
 | |
| -	CHAN5G(5660, 30), /* Channel 132 */
 | |
| -	CHAN5G(5680, 31), /* Channel 136 */
 | |
| -	CHAN5G(5700, 32), /* Channel 140 */
 | |
| + 	CHAN5G(5500, 66), /* Channel 100 */
 | |
| + 	CHAN5G(5520, 67), /* Channel 104 */
 | |
| + 	CHAN5G(5540, 68), /* Channel 108 */
 | |
| + 	CHAN5G(5560, 69), /* Channel 112 */
 | |
| + 	CHAN5G(5580, 70), /* Channel 116 */
 | |
| + 	CHAN5G(5600, 71), /* Channel 120 */
 | |
| + 	CHAN5G(5620, 72), /* Channel 124 */
 | |
| + 	CHAN5G(5640, 73), /* Channel 128 */
 | |
| + 	CHAN5G(5660, 74), /* Channel 132 */
 | |
| + 	CHAN5G(5680, 75), /* Channel 136 */
 | |
| + 	CHAN5G(5700, 76), /* Channel 140 */
 | |
|  	/* _We_ call this UNII 3 */
 | |
| -	CHAN5G(5745, 33), /* Channel 149 */
 | |
| -	CHAN5G(5765, 34), /* Channel 153 */
 | |
| -	CHAN5G(5785, 35), /* Channel 157 */
 | |
| -	CHAN5G(5805, 36), /* Channel 161 */
 | |
| -	CHAN5G(5825, 37), /* Channel 165 */
 | |
| + 	CHAN5G(5745, 77), /* Channel 149 */
 | |
| + 	CHAN5G(5765, 78), /* Channel 153 */
 | |
| + 	CHAN5G(5785, 79), /* Channel 157 */
 | |
| + 	CHAN5G(5805, 80), /* Channel 161 */
 | |
| + 	CHAN5G(5825, 81), /* Channel 165 */
 | |
|  };
 | |
|  
 | |
|  /* Atheros hardware rate code addition for short premble */
 | |
| diff -Naur a/drivers/net/wireless/ath/ath9k/mac.c b/drivers/net/wireless/ath/ath9k/mac.c
 | |
| --- a/drivers/net/wireless/ath/ath9k/mac.c	2013-10-01 19:18:05.000000000 +0300
 | |
| +++ b/drivers/net/wireless/ath/ath9k/mac.c	2023-02-17 19:50:43.485002190 +0200
 | |
| @@ -18,6 +18,12 @@
 | |
|  #include "hw-ops.h"
 | |
|  #include <linux/export.h>
 | |
|  
 | |
| +extern u8 cwmin_man;
 | |
| +extern u8 cwmax_man;
 | |
| +extern u8 aifs_man;
 | |
| +extern u8 cck_sifs;
 | |
| +extern u8 ofdm_sifs;
 | |
| +
 | |
|  static void ath9k_hw_set_txq_interrupts(struct ath_hw *ah,
 | |
|  					struct ath9k_tx_queue_info *qi)
 | |
|  {
 | |
| @@ -216,7 +222,9 @@
 | |
|  	if (qinfo->tqi_aifs != ATH9K_TXQ_USEDEFAULT)
 | |
|  		qi->tqi_aifs = min(qinfo->tqi_aifs, 255U);
 | |
|  	else
 | |
| -		qi->tqi_aifs = INIT_AIFS;
 | |
| +		//qi->tqi_aifs = INIT_AIFS;
 | |
| +		qi->tqi_aifs = aifs_man;
 | |
| +		
 | |
|  	if (qinfo->tqi_cwmin != ATH9K_TXQ_USEDEFAULT) {
 | |
|  		cw = min(qinfo->tqi_cwmin, 1024U);
 | |
|  		qi->tqi_cwmin = 1;
 | |
| diff -Naur a/drivers/net/wireless/ath/regd.c b/drivers/net/wireless/ath/regd.c
 | |
| --- a/drivers/net/wireless/ath/regd.c	2013-10-01 19:18:05.000000000 +0300
 | |
| +++ b/drivers/net/wireless/ath/regd.c	2023-02-17 19:08:53.671454735 +0200
 | |
| @@ -33,21 +33,16 @@
 | |
|   */
 | |
|  
 | |
|  /* Only these channels all allow active scan on all world regulatory domains */
 | |
| -#define ATH9K_2GHZ_CH01_11	REG_RULE(2412-10, 2462+10, 40, 0, 20, 0)
 | |
| +#define ATH9K_2GHZ_CH01_11	REG_RULE(2312-10, 2462+10, 40, 0, 30, 0) //tisho
 | |
|  
 | |
|  /* We enable active scan on these a case by case basis by regulatory domain */
 | |
| -#define ATH9K_2GHZ_CH12_13	REG_RULE(2467-10, 2472+10, 40, 0, 20,\
 | |
| -					NL80211_RRF_PASSIVE_SCAN)
 | |
| -#define ATH9K_2GHZ_CH14		REG_RULE(2484-10, 2484+10, 40, 0, 20,\
 | |
| -				NL80211_RRF_PASSIVE_SCAN | NL80211_RRF_NO_OFDM)
 | |
| +#define ATH9K_2GHZ_CH12_13	REG_RULE(2467-10, 2472+10, 40, 0, 30, 0)
 | |
| +#define ATH9K_2GHZ_CH14		REG_RULE(2484-10, 2732+10, 40, 0, 30, 0)
 | |
|  
 | |
|  /* We allow IBSS on these on a case by case basis by regulatory domain */
 | |
| -#define ATH9K_5GHZ_5150_5350	REG_RULE(5150-10, 5350+10, 40, 0, 30,\
 | |
| -				NL80211_RRF_PASSIVE_SCAN | NL80211_RRF_NO_IBSS)
 | |
| -#define ATH9K_5GHZ_5470_5850	REG_RULE(5470-10, 5850+10, 40, 0, 30,\
 | |
| -				NL80211_RRF_PASSIVE_SCAN | NL80211_RRF_NO_IBSS)
 | |
| -#define ATH9K_5GHZ_5725_5850	REG_RULE(5725-10, 5850+10, 40, 0, 30,\
 | |
| -				NL80211_RRF_PASSIVE_SCAN | NL80211_RRF_NO_IBSS)
 | |
| +#define ATH9K_5GHZ_5150_5350	REG_RULE(4920-10, 5350+10, 80, 0, 30, 0)
 | |
| +#define ATH9K_5GHZ_5470_5850	REG_RULE(5470-10, 6100+10, 80, 0, 30, 0)
 | |
| +#define ATH9K_5GHZ_5725_5850	REG_RULE(5725-10, 6100+10, 80, 0, 30, 0)
 | |
|  
 | |
|  #define ATH9K_2GHZ_ALL		ATH9K_2GHZ_CH01_11, \
 | |
|  				ATH9K_2GHZ_CH12_13, \
 | |
| @@ -76,9 +71,8 @@
 | |
|  	.n_reg_rules = 4,
 | |
|  	.alpha2 =  "99",
 | |
|  	.reg_rules = {
 | |
| -		ATH9K_2GHZ_CH01_11,
 | |
| -		ATH9K_2GHZ_CH12_13,
 | |
| -		ATH9K_5GHZ_NO_MIDBAND,
 | |
| +		ATH9K_2GHZ_ALL,
 | |
| +		ATH9K_5GHZ_ALL,
 | |
|  	}
 | |
|  };
 | |
|  
 | |
| @@ -87,8 +81,8 @@
 | |
|  	.n_reg_rules = 3,
 | |
|  	.alpha2 =  "99",
 | |
|  	.reg_rules = {
 | |
| -		ATH9K_2GHZ_CH01_11,
 | |
| -		ATH9K_5GHZ_NO_MIDBAND,
 | |
| +		ATH9K_2GHZ_ALL,
 | |
| +		ATH9K_5GHZ_ALL,
 | |
|  	}
 | |
|  };
 | |
|  
 | |
| @@ -97,7 +91,7 @@
 | |
|  	.n_reg_rules = 3,
 | |
|  	.alpha2 =  "99",
 | |
|  	.reg_rules = {
 | |
| -		ATH9K_2GHZ_CH01_11,
 | |
| +		ATH9K_2GHZ_ALL,
 | |
|  		ATH9K_5GHZ_ALL,
 | |
|  	}
 | |
|  };
 | |
| @@ -107,8 +101,7 @@
 | |
|  	.n_reg_rules = 4,
 | |
|  	.alpha2 =  "99",
 | |
|  	.reg_rules = {
 | |
| -		ATH9K_2GHZ_CH01_11,
 | |
| -		ATH9K_2GHZ_CH12_13,
 | |
| +		ATH9K_2GHZ_ALL,
 | |
|  		ATH9K_5GHZ_ALL,
 | |
|  	}
 | |
|  };
 | |
| @@ -174,7 +167,8 @@
 | |
|  /* Frequency is one where radar detection is required */
 | |
|  static bool ath_is_radar_freq(u16 center_freq)
 | |
|  {
 | |
| -	return (center_freq >= 5260 && center_freq <= 5700);
 | |
| +//	return (center_freq >= 5260 && center_freq <= 5700);
 | |
| +	return 0;
 | |
|  }
 | |
|  
 | |
|  
 | |
| @@ -196,6 +190,8 @@
 | |
|  	struct ieee80211_channel *ch;
 | |
|  	unsigned int i;
 | |
|  
 | |
| +	return;
 | |
| +
 | |
|  	for (band = 0; band < IEEE80211_NUM_BANDS; band++) {
 | |
|  
 | |
|  		if (!wiphy->bands[band])
 | |
| @@ -250,6 +246,7 @@
 | |
|  	struct ieee80211_channel *ch;
 | |
|  	const struct ieee80211_reg_rule *reg_rule;
 | |
|  
 | |
| +return;
 | |
|  	sband = wiphy->bands[IEEE80211_BAND_2GHZ];
 | |
|  	if (!sband)
 | |
|  		return;
 | |
| @@ -299,6 +296,7 @@
 | |
|  	struct ieee80211_channel *ch;
 | |
|  	unsigned int i;
 | |
|  
 | |
| +return;
 | |
|  	if (!wiphy->bands[IEEE80211_BAND_5GHZ])
 | |
|  		return;
 | |
|  
 | |
| @@ -503,6 +501,8 @@
 | |
|  {
 | |
|  	const struct ieee80211_regdomain *regd;
 | |
|  
 | |
| +return 0;
 | |
| +
 | |
|  	wiphy->reg_notifier = reg_notifier;
 | |
|  	wiphy->flags |= WIPHY_FLAG_STRICT_REGULATORY;
 |