Lines Matching refs:dfs_pd
165 struct mt76x2_dfs_pattern_detector *dfs_pd = &dev->dfs_pd; in mt76x2_dfs_seq_pool_put() local
167 list_add(&seq->head, &dfs_pd->seq_pool); in mt76x2_dfs_seq_pool_put()
169 dfs_pd->seq_stats.seq_pool_len++; in mt76x2_dfs_seq_pool_put()
170 dfs_pd->seq_stats.seq_len--; in mt76x2_dfs_seq_pool_put()
176 struct mt76x2_dfs_pattern_detector *dfs_pd = &dev->dfs_pd; in mt76x2_dfs_seq_pool_get() local
179 if (list_empty(&dfs_pd->seq_pool)) { in mt76x2_dfs_seq_pool_get()
182 seq = list_first_entry(&dfs_pd->seq_pool, in mt76x2_dfs_seq_pool_get()
186 dfs_pd->seq_stats.seq_pool_len--; in mt76x2_dfs_seq_pool_get()
189 dfs_pd->seq_stats.seq_len++; in mt76x2_dfs_seq_pool_get()
218 struct mt76x2_dfs_pattern_detector *dfs_pd = &dev->dfs_pd; in mt76x2_dfs_detector_reset() local
226 for (i = 0; i < ARRAY_SIZE(dfs_pd->event_rb); i++) { in mt76x2_dfs_detector_reset()
227 dfs_pd->event_rb[i].h_rb = 0; in mt76x2_dfs_detector_reset()
228 dfs_pd->event_rb[i].t_rb = 0; in mt76x2_dfs_detector_reset()
231 list_for_each_entry_safe(seq, tmp_seq, &dfs_pd->sequences, head) { in mt76x2_dfs_detector_reset()
241 struct mt76x2_dfs_pattern_detector *dfs_pd = &dev->dfs_pd; in mt76x2_dfs_check_chirp() local
244 delta_ts = current_ts - dfs_pd->chirp_pulse_ts; in mt76x2_dfs_check_chirp()
245 dfs_pd->chirp_pulse_ts = current_ts; in mt76x2_dfs_check_chirp()
249 if (++dfs_pd->chirp_pulse_cnt > 8) in mt76x2_dfs_check_chirp()
252 dfs_pd->chirp_pulse_cnt = 1; in mt76x2_dfs_check_chirp()
286 switch (dev->dfs_pd.region) { in mt76x2_dfs_check_hw_pulse()
404 struct mt76x2_dfs_pattern_detector *dfs_pd = &dev->dfs_pd; in mt76x2_dfs_check_event() local
405 struct mt76x2_dfs_event_rb *event_buff = &dfs_pd->event_rb[1]; in mt76x2_dfs_check_event()
422 struct mt76x2_dfs_pattern_detector *dfs_pd = &dev->dfs_pd; in mt76x2_dfs_queue_event() local
426 event_buff = event->engine == 2 ? &dfs_pd->event_rb[1] in mt76x2_dfs_queue_event()
427 : &dfs_pd->event_rb[0]; in mt76x2_dfs_queue_event()
441 struct mt76x2_dfs_pattern_detector *dfs_pd = &dev->dfs_pd; in mt76x2_dfs_create_sequence() local
449 event_rb = event->engine == 2 ? &dfs_pd->event_rb[1] in mt76x2_dfs_create_sequence()
450 : &dfs_pd->event_rb[0]; in mt76x2_dfs_create_sequence()
459 sw_params = &dfs_pd->sw_dpd_params; in mt76x2_dfs_create_sequence()
460 switch (dev->dfs_pd.region) { in mt76x2_dfs_create_sequence()
517 list_add(&seq_p->head, &dfs_pd->sequences); in mt76x2_dfs_create_sequence()
527 struct mt76x2_dfs_pattern_detector *dfs_pd = &dev->dfs_pd; in mt76x2_dfs_add_event_to_sequence() local
533 sw_params = &dfs_pd->sw_dpd_params; in mt76x2_dfs_add_event_to_sequence()
534 list_for_each_entry_safe(seq, tmp_seq, &dfs_pd->sequences, head) { in mt76x2_dfs_add_event_to_sequence()
558 struct mt76x2_dfs_pattern_detector *dfs_pd = &dev->dfs_pd; in mt76x2_dfs_check_detection() local
561 if (list_empty(&dfs_pd->sequences)) in mt76x2_dfs_check_detection()
564 list_for_each_entry(seq, &dfs_pd->sequences, head) { in mt76x2_dfs_check_detection()
566 dfs_pd->stats[seq->engine].sw_pattern++; in mt76x2_dfs_check_detection()
575 struct mt76x2_dfs_pattern_detector *dfs_pd = &dev->dfs_pd; in mt76x2_dfs_add_events() local
585 if (dfs_pd->last_event_ts > event.ts) in mt76x2_dfs_add_events()
587 dfs_pd->last_event_ts = event.ts; in mt76x2_dfs_add_events()
602 struct mt76x2_dfs_pattern_detector *dfs_pd = &dev->dfs_pd; in mt76x2_dfs_check_event_window() local
607 for (i = 0; i < ARRAY_SIZE(dfs_pd->event_rb); i++) { in mt76x2_dfs_check_event_window()
608 event_buff = &dfs_pd->event_rb[i]; in mt76x2_dfs_check_event_window()
626 struct mt76x2_dfs_pattern_detector *dfs_pd = &dev->dfs_pd; in mt76x2_dfs_tasklet() local
633 if (time_is_before_jiffies(dfs_pd->last_sw_check + in mt76x2_dfs_tasklet()
637 dfs_pd->last_sw_check = jiffies; in mt76x2_dfs_tasklet()
665 dfs_pd->stats[i].hw_pulse_discarded++; in mt76x2_dfs_tasklet()
670 dfs_pd->stats[i].hw_pattern++; in mt76x2_dfs_tasklet()
686 struct mt76x2_dfs_pattern_detector *dfs_pd = &dev->dfs_pd; in mt76x2_dfs_init_sw_detector() local
688 switch (dev->dfs_pd.region) { in mt76x2_dfs_init_sw_detector()
690 dfs_pd->sw_dpd_params.max_pri = MT_DFS_FCC_MAX_PRI; in mt76x2_dfs_init_sw_detector()
691 dfs_pd->sw_dpd_params.min_pri = MT_DFS_FCC_MIN_PRI; in mt76x2_dfs_init_sw_detector()
692 dfs_pd->sw_dpd_params.pri_margin = MT_DFS_PRI_MARGIN; in mt76x2_dfs_init_sw_detector()
695 dfs_pd->sw_dpd_params.max_pri = MT_DFS_ETSI_MAX_PRI; in mt76x2_dfs_init_sw_detector()
696 dfs_pd->sw_dpd_params.min_pri = MT_DFS_ETSI_MIN_PRI; in mt76x2_dfs_init_sw_detector()
697 dfs_pd->sw_dpd_params.pri_margin = MT_DFS_PRI_MARGIN << 2; in mt76x2_dfs_init_sw_detector()
700 dfs_pd->sw_dpd_params.max_pri = MT_DFS_JP_MAX_PRI; in mt76x2_dfs_init_sw_detector()
701 dfs_pd->sw_dpd_params.min_pri = MT_DFS_JP_MIN_PRI; in mt76x2_dfs_init_sw_detector()
702 dfs_pd->sw_dpd_params.pri_margin = MT_DFS_PRI_MARGIN; in mt76x2_dfs_init_sw_detector()
728 switch (dev->dfs_pd.region) { in mt76x2_dfs_set_bbp_params()
831 dev->dfs_pd.region != NL80211_DFS_UNSET) { in mt76x2_dfs_init_params()
855 struct mt76x2_dfs_pattern_detector *dfs_pd = &dev->dfs_pd; in mt76x2_dfs_init_detector() local
857 INIT_LIST_HEAD(&dfs_pd->sequences); in mt76x2_dfs_init_detector()
858 INIT_LIST_HEAD(&dfs_pd->seq_pool); in mt76x2_dfs_init_detector()
859 dfs_pd->region = NL80211_DFS_UNSET; in mt76x2_dfs_init_detector()
860 dfs_pd->last_sw_check = jiffies; in mt76x2_dfs_init_detector()
861 tasklet_init(&dfs_pd->dfs_tasklet, mt76x2_dfs_tasklet, in mt76x2_dfs_init_detector()
868 struct mt76x2_dfs_pattern_detector *dfs_pd = &dev->dfs_pd; in mt76x2_dfs_set_domain() local
870 if (dfs_pd->region != region) { in mt76x2_dfs_set_domain()
871 tasklet_disable(&dfs_pd->dfs_tasklet); in mt76x2_dfs_set_domain()
872 dfs_pd->region = region; in mt76x2_dfs_set_domain()
874 tasklet_enable(&dfs_pd->dfs_tasklet); in mt76x2_dfs_set_domain()