| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 
 | # 这个补丁的功能是自行选择是使用5GHz还是6GHz,因为默认是 2.4GHz+6GHz 的组合static bool enable_6ghz;			// 静态变量默认值为0即false,就是默认不开启6ghz
 module_param(enable_6ghz, bool, 0644);
 MODULE_PARM_DESC(enable_6ghz, "Enable 6 GHz instead of 5 GHz on hardware that supports both");
 
 # 要从默认的5GHz切换为使用6GHz需在加载mt7915e内核模块时添加 enable_6ghz=1 参数即可,例如:
 # 也可直接 echo "mt7915e enable_6ghz=1" >> /etc/modules-load.d/modules.conf 或 /etc/modules.d/mt7915e
 rmmod mt7915e; insmod mt7915e enable_6ghz=1    或    modprobe -r mt7915e; modprobe mt7915e enable_6ghz=1
 
 cat /sys/module/mt7915e/parameters/enable_6ghz	# 后期要查看当前使用的是5GHz还是6GHz,可这样获取模块参数值,Y 为6GHz N 为5GHz
 
 
 diff -Nur a/drivers/net/wireless/mediatek/mt76/mt7915/init.c b/drivers/net/wireless/mediatek/mt76/mt7915/init.c
 
 
 @@ -1109,14 +1109,14 @@
 if (ret)
 goto unreg_dev;
 
 -	ieee80211_queue_work(mt76_hw(dev), &dev->init_work);
 -
 if (phy2) {
 ret = mt7915_register_ext_phy(dev, phy2);
 if (ret)
 goto unreg_thermal;
 }
 
 +	ieee80211_queue_work(mt76_hw(dev), &dev->init_work);
 +
 mt7915_init_debugfs(&dev->phy);
 
 return 0;
 diff -Nur a/drivers/net/wireless/mediatek/mt76/mt7915/eeprom.c b/drivers/net/wireless/mediatek/mt76/mt7915/eeprom.c
 
 
 @@ -2,9 +2,14 @@
 /* Copyright (C) 2020 MediaTek Inc. */
 
 #include <linux/firmware.h>
 +#include <linux/moduleparam.h>
 #include "mt7915.h"
 #include "eeprom.h"
 
 +static bool enable_6ghz;
 +module_param(enable_6ghz, bool, 0644);
 +MODULE_PARM_DESC(enable_6ghz, "Enable 6 GHz instead of 5 GHz on hardware that supports both");
 +
 static int mt7915_eeprom_load_precal(struct mt7915_dev *dev)
 {
 struct mt76_dev *mdev = &dev->mt76;
 @@ -150,8 +155,20 @@
 phy->mt76->cap.has_6ghz = true;
 return;
 case MT_EE_V2_BAND_SEL_5GHZ_6GHZ:
 -			phy->mt76->cap.has_5ghz = true;
 -			phy->mt76->cap.has_6ghz = true;
 +			if (enable_6ghz) {
 +				phy->mt76->cap.has_6ghz = true;
 +				u8p_replace_bits(&eeprom[MT_EE_WIFI_CONF + phy->band_idx],
 +						 MT_EE_V2_BAND_SEL_6GHZ,
 +						 MT_EE_WIFI_CONF0_BAND_SEL);
 +			} else {
 +				phy->mt76->cap.has_5ghz = true;
 +				u8p_replace_bits(&eeprom[MT_EE_WIFI_CONF + phy->band_idx],
 +						 MT_EE_V2_BAND_SEL_5GHZ,
 +						 MT_EE_WIFI_CONF0_BAND_SEL);
 +			}
 +			/* force to buffer mode */
 +			dev->flash_mode = true;
 +
 return;
 default:
 phy->mt76->cap.has_2ghz = true;
 
 
 |