mirror of https://gitee.com/openkylin/linux.git
mt76: mt76x02: disable ED/CCA by default
This feature has been reported to cause stability issues on several systems. Disable it until it has been fixed and verified. It can still be enabled through debugfs Signed-off-by: Felix Fietkau <nbd@nbd.name>
This commit is contained in:
parent
ffc9a7ff59
commit
643749d4a8
|
@ -118,6 +118,7 @@ struct mt76x02_dev {
|
|||
unsigned long ed_trigger_timeout;
|
||||
bool ed_tx_blocked;
|
||||
bool ed_monitor;
|
||||
u8 ed_monitor_enabled;
|
||||
u8 ed_monitor_learning;
|
||||
u8 ed_trigger;
|
||||
u8 ed_silent;
|
||||
|
|
|
@ -116,6 +116,32 @@ static int read_agc(struct seq_file *file, void *data)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int
|
||||
mt76_edcca_set(void *data, u64 val)
|
||||
{
|
||||
struct mt76x02_dev *dev = data;
|
||||
enum nl80211_dfs_regions region = dev->dfs_pd.region;
|
||||
|
||||
dev->ed_monitor_enabled = !!val;
|
||||
dev->ed_monitor = dev->ed_monitor_enabled &&
|
||||
region == NL80211_DFS_ETSI;
|
||||
mt76x02_edcca_init(dev, true);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int
|
||||
mt76_edcca_get(void *data, u64 *val)
|
||||
{
|
||||
struct mt76x02_dev *dev = data;
|
||||
|
||||
*val = dev->ed_monitor_enabled;
|
||||
return 0;
|
||||
}
|
||||
|
||||
DEFINE_DEBUGFS_ATTRIBUTE(fops_edcca, mt76_edcca_get, mt76_edcca_set,
|
||||
"%lld\n");
|
||||
|
||||
void mt76x02_init_debugfs(struct mt76x02_dev *dev)
|
||||
{
|
||||
struct dentry *dir;
|
||||
|
@ -127,6 +153,7 @@ void mt76x02_init_debugfs(struct mt76x02_dev *dev)
|
|||
debugfs_create_u8("temperature", 0400, dir, &dev->cal.temp);
|
||||
debugfs_create_bool("tpc", 0600, dir, &dev->enable_tpc);
|
||||
|
||||
debugfs_create_file("edcca", 0400, dir, dev, &fops_edcca);
|
||||
debugfs_create_file("ampdu_stat", 0400, dir, dev, &fops_ampdu_stat);
|
||||
debugfs_create_file("dfs_stats", 0400, dir, dev, &fops_dfs_stat);
|
||||
debugfs_create_devm_seqfile(dev->mt76.dev, "txpower", dir,
|
||||
|
|
|
@ -885,7 +885,8 @@ mt76x02_dfs_set_domain(struct mt76x02_dev *dev,
|
|||
if (dfs_pd->region != region) {
|
||||
tasklet_disable(&dfs_pd->dfs_tasklet);
|
||||
|
||||
dev->ed_monitor = region == NL80211_DFS_ETSI;
|
||||
dev->ed_monitor = dev->ed_monitor_enabled &&
|
||||
region == NL80211_DFS_ETSI;
|
||||
mt76x02_edcca_init(dev, true);
|
||||
|
||||
dfs_pd->region = region;
|
||||
|
|
Loading…
Reference in New Issue