• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /asuswrt-rt-n18u-9.0.0.4.380.2695/release/src-rt-6.x.4708/linux/linux-2.6.36/drivers/net/wireless/iwlwifi/

Lines Matching defs:lq_sta

82 				   struct iwl_lq_sta *lq_sta);
84 struct iwl_lq_sta *lq_sta, u32 rate_n_flags);
88 static void rs_dbgfs_set_mcs(struct iwl_lq_sta *lq_sta,
91 static void rs_dbgfs_set_mcs(struct iwl_lq_sta *lq_sta,
604 static u16 rs_get_supported_rates(struct iwl_lq_sta *lq_sta,
609 return lq_sta->active_legacy_rate;
612 return lq_sta->active_siso_rate;
614 return lq_sta->active_mimo2_rate;
616 return lq_sta->active_mimo3_rate;
676 static u32 rs_get_lower_rate(struct iwl_lq_sta *lq_sta,
684 u8 is_green = lq_sta->is_green;
685 struct iwl_priv *priv = lq_sta->drv;
693 if (lq_sta->band == IEEE80211_BAND_5GHZ)
707 rate_mask = rs_get_supported_rates(lq_sta, NULL, tbl->lq_type);
712 if (lq_sta->band == IEEE80211_BAND_5GHZ)
714 (lq_sta->supp_rates << IWL_FIRST_OFDM_RATE));
716 rate_mask = (u16)(rate_mask & lq_sta->supp_rates);
725 high_low = rs_get_adjacent_rate(lq_sta->drv, scale_index, rate_mask,
733 return rate_n_flags_from_tbl(lq_sta->drv, tbl, low, is_green);
756 struct iwl_lq_sta *lq_sta = priv_sta;
769 if (!lq_sta) {
772 } else if (!lq_sta->drv) {
794 table = &lq_sta->lq;
828 lq_sta->missed_rate_counter++;
829 if (lq_sta->missed_rate_counter > IWL_MISSED_RATE_MAX) {
830 lq_sta->missed_rate_counter = 0;
831 iwl_send_lq_cmd(priv, &lq_sta->lq, CMD_ASYNC, false);
837 lq_sta->missed_rate_counter = 0;
841 &(lq_sta->lq_info[lq_sta->active_tbl]))) {
842 curr_tbl = &(lq_sta->lq_info[lq_sta->active_tbl]);
843 other_tbl = &(lq_sta->lq_info[1 - lq_sta->active_tbl]);
845 &lq_sta->lq_info[1 - lq_sta->active_tbl])) {
846 curr_tbl = &(lq_sta->lq_info[1 - lq_sta->active_tbl]);
847 other_tbl = &(lq_sta->lq_info[lq_sta->active_tbl]);
869 if (lq_sta->stay_in_tbl) {
870 lq_sta->total_success += info->status.ampdu_ack_len;
871 lq_sta->total_failed += (info->status.ampdu_len -
904 if (lq_sta->stay_in_tbl) {
905 lq_sta->total_success += legacy_success;
906 lq_sta->total_failed += retries + (1 - legacy_success);
909 /* The last TX rate is cached in lq_sta; it's set in if/else above */
910 lq_sta->last_rate_n_flags = tx_rate;
914 rs_rate_scale_perform(priv, skb, sta, lq_sta);
926 struct iwl_lq_sta *lq_sta)
929 lq_sta->stay_in_tbl = 1; /* only place this gets set */
931 lq_sta->table_count_limit = IWL_LEGACY_TABLE_COUNT;
932 lq_sta->max_failure_limit = IWL_LEGACY_FAILURE_LIMIT;
933 lq_sta->max_success_limit = IWL_LEGACY_SUCCESS_LIMIT;
935 lq_sta->table_count_limit = IWL_NONE_LEGACY_TABLE_COUNT;
936 lq_sta->max_failure_limit = IWL_NONE_LEGACY_FAILURE_LIMIT;
937 lq_sta->max_success_limit = IWL_NONE_LEGACY_SUCCESS_LIMIT;
939 lq_sta->table_count = 0;
940 lq_sta->total_failed = 0;
941 lq_sta->total_success = 0;
942 lq_sta->flush_timer = jiffies;
943 lq_sta->action_counter = 0;
949 static void rs_set_expected_tpt_table(struct iwl_lq_sta *lq_sta,
970 if (is_siso(tbl->lq_type) && (!tbl->is_ht40 || lq_sta->is_dup))
974 else if (is_mimo2(tbl->lq_type) && (!tbl->is_ht40 || lq_sta->is_dup))
978 else if (is_mimo3(tbl->lq_type) && (!tbl->is_ht40 || lq_sta->is_dup))
983 if (!tbl->is_SGI && !lq_sta->is_agg) /* Normal */
985 else if (tbl->is_SGI && !lq_sta->is_agg) /* SGI */
987 else if (!tbl->is_SGI && lq_sta->is_agg) /* AGG */
1006 struct iwl_lq_sta *lq_sta,
1012 &(lq_sta->lq_info[lq_sta->active_tbl]);
1047 if ((((100 * tpt_tbl[rate]) > lq_sta->last_tpt) &&
1100 struct iwl_lq_sta *lq_sta,
1107 s8 is_green = lq_sta->is_green;
1123 tbl->is_dup = lq_sta->is_dup;
1126 rate_mask = lq_sta->active_mimo2_rate;
1133 rs_set_expected_tpt_table(lq_sta, tbl);
1135 rate = rs_get_best_rate(priv, lq_sta, tbl, rate_mask, index);
1154 struct iwl_lq_sta *lq_sta,
1161 s8 is_green = lq_sta->is_green;
1177 tbl->is_dup = lq_sta->is_dup;
1180 rate_mask = lq_sta->active_mimo3_rate;
1187 rs_set_expected_tpt_table(lq_sta, tbl);
1189 rate = rs_get_best_rate(priv, lq_sta, tbl, rate_mask, index);
1209 struct iwl_lq_sta *lq_sta,
1215 u8 is_green = lq_sta->is_green;
1223 tbl->is_dup = lq_sta->is_dup;
1227 rate_mask = lq_sta->active_siso_rate;
1237 rs_set_expected_tpt_table(lq_sta, tbl);
1238 rate = rs_get_best_rate(priv, lq_sta, tbl, rate_mask, index);
1256 struct iwl_lq_sta *lq_sta,
1261 struct iwl_scale_tbl_info *tbl = &(lq_sta->lq_info[lq_sta->active_tbl]);
1263 &(lq_sta->lq_info[(1 - lq_sta->active_tbl)]);
1280 lq_sta->action_counter++;
1302 rs_set_expected_tpt_table(lq_sta, search_tbl);
1312 ret = rs_switch_to_siso(priv, lq_sta, conf, sta,
1315 lq_sta->action_counter = 0;
1339 ret = rs_switch_to_mimo2(priv, lq_sta, conf, sta,
1342 lq_sta->action_counter = 0;
1359 ret = rs_switch_to_mimo3(priv, lq_sta, conf, sta,
1362 lq_sta->action_counter = 0;
1379 lq_sta->search_better_tbl = 1;
1393 struct iwl_lq_sta *lq_sta,
1397 u8 is_green = lq_sta->is_green;
1398 struct iwl_scale_tbl_info *tbl = &(lq_sta->lq_info[lq_sta->active_tbl]);
1400 &(lq_sta->lq_info[(1 - lq_sta->active_tbl)]);
1417 lq_sta->action_counter++;
1456 ret = rs_switch_to_mimo2(priv, lq_sta, conf, sta,
1480 rs_set_expected_tpt_table(lq_sta, search_tbl);
1482 s32 tpt = lq_sta->last_tpt / 100;
1500 ret = rs_switch_to_mimo3(priv, lq_sta, conf, sta,
1517 lq_sta->search_better_tbl = 1;
1531 struct iwl_lq_sta *lq_sta,
1535 s8 is_green = lq_sta->is_green;
1536 struct iwl_scale_tbl_info *tbl = &(lq_sta->lq_info[lq_sta->active_tbl]);
1538 &(lq_sta->lq_info[(1 - lq_sta->active_tbl)]);
1556 lq_sta->action_counter++;
1593 ret = rs_switch_to_siso(priv, lq_sta, conf, sta,
1613 rs_set_expected_tpt_table(lq_sta, search_tbl);
1621 s32 tpt = lq_sta->last_tpt / 100;
1640 ret = rs_switch_to_mimo3(priv, lq_sta, conf, sta,
1657 lq_sta->search_better_tbl = 1;
1672 struct iwl_lq_sta *lq_sta,
1676 s8 is_green = lq_sta->is_green;
1677 struct iwl_scale_tbl_info *tbl = &(lq_sta->lq_info[lq_sta->active_tbl]);
1679 &(lq_sta->lq_info[(1 - lq_sta->active_tbl)]);
1697 lq_sta->action_counter++;
1732 ret = rs_switch_to_siso(priv, lq_sta, conf, sta,
1756 ret = rs_switch_to_mimo2(priv, lq_sta, conf, sta,
1776 rs_set_expected_tpt_table(lq_sta, search_tbl);
1784 s32 tpt = lq_sta->last_tpt / 100;
1804 lq_sta->search_better_tbl = 1;
1822 static void rs_stay_in_table(struct iwl_lq_sta *lq_sta)
1830 priv = lq_sta->drv;
1831 active_tbl = lq_sta->active_tbl;
1833 tbl = &(lq_sta->lq_info[active_tbl]);
1836 if (lq_sta->stay_in_tbl) {
1839 if (lq_sta->flush_timer)
1842 (unsigned long)(lq_sta->flush_timer +
1853 if ((lq_sta->total_failed > lq_sta->max_failure_limit) ||
1854 (lq_sta->total_success > lq_sta->max_success_limit) ||
1855 ((!lq_sta->search_better_tbl) && (lq_sta->flush_timer)
1858 lq_sta->total_failed,
1859 lq_sta->total_success,
1863 lq_sta->stay_in_tbl = 0; /* only place reset */
1864 lq_sta->total_failed = 0;
1865 lq_sta->total_success = 0;
1866 lq_sta->flush_timer = 0;
1875 lq_sta->table_count++;
1876 if (lq_sta->table_count >=
1877 lq_sta->table_count_limit) {
1878 lq_sta->table_count = 0;
1890 if (!lq_sta->stay_in_tbl) {
1902 struct iwl_lq_sta *lq_sta,
1910 rs_fill_link_cmd(priv, lq_sta, rate);
1911 iwl_send_lq_cmd(priv, &lq_sta->lq, CMD_ASYNC, false);
1922 struct iwl_lq_sta *lq_sta)
1959 if (!sta || !lq_sta)
1962 lq_sta->supp_rates = sta->supp_rates[lq_sta->band];
1964 tid = rs_tl_add_packet(lq_sta, hdr);
1965 if ((tid != MAX_TID_COUNT) && (lq_sta->tx_agg_tid_en & (1 << tid))) {
1966 tid_data = &priv->stations[lq_sta->lq.sta_id].tid[tid];
1968 lq_sta->is_agg = 0;
1970 lq_sta->is_agg = 1;
1972 lq_sta->is_agg = 0;
1979 if (!lq_sta->search_better_tbl)
1980 active_tbl = lq_sta->active_tbl;
1982 active_tbl = 1 - lq_sta->active_tbl;
1984 tbl = &(lq_sta->lq_info[active_tbl]);
1986 lq_sta->is_green = 0;
1988 lq_sta->is_green = rs_use_green(sta, &priv->current_ht_config);
1989 is_green = lq_sta->is_green;
1992 index = lq_sta->last_txrate_idx;
1998 rate_mask = rs_get_supported_rates(lq_sta, hdr, tbl->lq_type);
2004 if (lq_sta->band == IEEE80211_BAND_5GHZ)
2007 (lq_sta->supp_rates << IWL_FIRST_OFDM_RATE));
2010 lq_sta->supp_rates);
2020 if (lq_sta->search_better_tbl) {
2023 lq_sta->search_better_tbl = 0;
2024 tbl = &(lq_sta->lq_info[lq_sta->active_tbl]);
2027 rate = rs_update_rate_tbl(priv, lq_sta,
2040 if ((lq_sta->max_rate_idx != -1) &&
2041 (lq_sta->max_rate_idx < index)) {
2042 index = lq_sta->max_rate_idx;
2069 rs_stay_in_table(lq_sta);
2083 if (lq_sta->search_better_tbl &&
2088 if (window->average_tpt > lq_sta->last_tpt) {
2094 lq_sta->last_tpt);
2097 lq_sta->enable_counter = 1;
2100 lq_sta->active_tbl = active_tbl;
2110 lq_sta->last_tpt);
2116 active_tbl = lq_sta->active_tbl;
2117 tbl = &(lq_sta->lq_info[active_tbl]);
2121 current_tpt = lq_sta->last_tpt;
2129 lq_sta->search_better_tbl = 0;
2142 if ((lq_sta->max_rate_idx != -1) &&
2143 (lq_sta->max_rate_idx < high))
2247 rate = rs_update_rate_tbl(priv, lq_sta,
2253 rs_stay_in_table(lq_sta);
2261 if (!update_lq && !done_search && !lq_sta->stay_in_tbl && window->counter) {
2263 lq_sta->last_tpt = current_tpt;
2268 rs_move_legacy_other(priv, lq_sta, conf, sta, index);
2270 rs_move_siso_to_other(priv, lq_sta, conf, sta, index);
2272 rs_move_mimo2_to_other(priv, lq_sta, conf, sta, index);
2274 rs_move_mimo3_to_other(priv, lq_sta, conf, sta, index);
2277 if (lq_sta->search_better_tbl) {
2279 tbl = &(lq_sta->lq_info[(1 - lq_sta->active_tbl)]);
2288 rs_fill_link_cmd(priv, lq_sta, tbl->current_rate);
2289 iwl_send_lq_cmd(priv, &lq_sta->lq, CMD_ASYNC, false);
2294 if (done_search && !lq_sta->stay_in_tbl) {
2300 tbl1 = &(lq_sta->lq_info[lq_sta->active_tbl]);
2302 lq_sta->action_counter > tbl1->max_search) {
2304 rs_set_stay_in_table(priv, 1, lq_sta);
2310 if (lq_sta->enable_counter &&
2311 (lq_sta->action_counter >= tbl1->max_search) &&
2313 if ((lq_sta->last_tpt > IWL_AGG_TPT_THREHOLD) &&
2314 (lq_sta->tx_agg_tid_en & (1 << tid)) &&
2317 &priv->stations[lq_sta->lq.sta_id].tid[tid];
2323 lq_sta, sta);
2326 rs_set_stay_in_table(priv, 0, lq_sta);
2333 lq_sta->last_txrate_idx = i;
2353 struct iwl_lq_sta *lq_sta)
2363 if (!sta || !lq_sta)
2366 i = lq_sta->last_txrate_idx;
2370 if (!lq_sta->search_better_tbl)
2371 active_tbl = lq_sta->active_tbl;
2373 active_tbl = 1 - lq_sta->active_tbl;
2375 tbl = &(lq_sta->lq_info[active_tbl]);
2393 rs_set_expected_tpt_table(lq_sta, tbl);
2394 rs_fill_link_cmd(NULL, lq_sta, rate);
2395 priv->stations[lq_sta->lq.sta_id].lq = &lq_sta->lq;
2396 iwl_send_lq_cmd(priv, &lq_sta->lq, CMD_SYNC, true);
2409 struct iwl_lq_sta *lq_sta = priv_sta;
2415 if (lq_sta) {
2416 lq_sta->max_rate_idx = txrc->max_rate_idx;
2418 (lq_sta->max_rate_idx != -1))
2419 lq_sta->max_rate_idx += IWL_FIRST_OFDM_RATE;
2420 if ((lq_sta->max_rate_idx < 0) ||
2421 (lq_sta->max_rate_idx >= IWL_RATE_COUNT))
2422 lq_sta->max_rate_idx = -1;
2426 if (lq_sta && !lq_sta->drv) {
2435 rate_idx = lq_sta->last_txrate_idx;
2437 if (lq_sta->last_rate_n_flags & RATE_MCS_HT_MSK) {
2441 if (rs_extract_rate(lq_sta->last_rate_n_flags) >=
2444 else if (rs_extract_rate(lq_sta->last_rate_n_flags) >=
2448 if (lq_sta->last_rate_n_flags & RATE_MCS_SGI_MSK)
2450 if (lq_sta->last_rate_n_flags & RATE_MCS_DUP_MSK)
2452 if (lq_sta->last_rate_n_flags & RATE_MCS_HT40_MSK)
2454 if (lq_sta->last_rate_n_flags & RATE_MCS_GF_MSK)
2474 struct iwl_lq_sta *lq_sta;
2481 lq_sta = &sta_priv->lq_sta;
2483 return lq_sta;
2496 struct iwl_lq_sta *lq_sta;
2500 lq_sta = &sta_priv->lq_sta;
2504 lq_sta->lq.sta_id = sta_id;
2508 rs_rate_scale_clear_window(&lq_sta->lq_info[j].win[i]);
2510 lq_sta->flush_timer = 0;
2511 lq_sta->supp_rates = sta->supp_rates[sband->band];
2514 rs_rate_scale_clear_window(&lq_sta->lq_info[j].win[i]);
2523 lq_sta->is_dup = 0;
2524 lq_sta->max_rate_idx = -1;
2525 lq_sta->missed_rate_counter = IWL_MISSED_RATE_MAX;
2526 lq_sta->is_green = rs_use_green(sta, &priv->current_ht_config);
2527 lq_sta->active_legacy_rate = priv->active_rate & ~(0x1000);
2528 lq_sta->band = priv->band;
2533 lq_sta->active_siso_rate = ht_cap->mcs.rx_mask[0] << 1;
2534 lq_sta->active_siso_rate |= ht_cap->mcs.rx_mask[0] & 0x1;
2535 lq_sta->active_siso_rate &= ~((u16)0x2);
2536 lq_sta->active_siso_rate <<= IWL_FIRST_OFDM_RATE;
2539 lq_sta->active_mimo2_rate = ht_cap->mcs.rx_mask[1] << 1;
2540 lq_sta->active_mimo2_rate |= ht_cap->mcs.rx_mask[1] & 0x1;
2541 lq_sta->active_mimo2_rate &= ~((u16)0x2);
2542 lq_sta->active_mimo2_rate <<= IWL_FIRST_OFDM_RATE;
2544 lq_sta->active_mimo3_rate = ht_cap->mcs.rx_mask[2] << 1;
2545 lq_sta->active_mimo3_rate |= ht_cap->mcs.rx_mask[2] & 0x1;
2546 lq_sta->active_mimo3_rate &= ~((u16)0x2);
2547 lq_sta->active_mimo3_rate <<= IWL_FIRST_OFDM_RATE;
2550 lq_sta->active_siso_rate,
2551 lq_sta->active_mimo2_rate,
2552 lq_sta->active_mimo3_rate);
2555 lq_sta->lq.general_params.single_stream_ant_msk =
2557 lq_sta->lq.general_params.dual_stream_ant_msk =
2560 if (!lq_sta->lq.general_params.dual_stream_ant_msk) {
2561 lq_sta->lq.general_params.dual_stream_ant_msk = ANT_AB;
2563 lq_sta->lq.general_params.dual_stream_ant_msk =
2568 lq_sta->tx_agg_tid_en = IWL_AGG_ALL_TID;
2569 lq_sta->drv = priv;
2572 lq_sta->last_txrate_idx = rate_lowest_index(sband, sta);
2574 lq_sta->last_txrate_idx += IWL_FIRST_OFDM_RATE;
2575 lq_sta->is_agg = 0;
2577 rs_initialize_lq(priv, conf, sta, lq_sta);
2581 struct iwl_lq_sta *lq_sta, u32 new_rate)
2590 struct iwl_link_quality_cmd *lq_cmd = &lq_sta->lq;
2593 rs_dbgfs_set_mcs(lq_sta, &new_rate, index);
2597 rs_get_tbl_info_from_mcs(new_rate, lq_sta->band,
2644 rs_dbgfs_set_mcs(lq_sta, &new_rate, index);
2653 rs_get_tbl_info_from_mcs(new_rate, lq_sta->band, &tbl_type,
2663 new_rate = rs_get_lower_rate(lq_sta, &tbl_type, rate_idx,
2685 rs_dbgfs_set_mcs(lq_sta, &new_rate, index);
2726 static void rs_dbgfs_set_mcs(struct iwl_lq_sta *lq_sta,
2733 priv = lq_sta->drv;
2735 if (lq_sta->dbg_fixed_rate) {
2737 ((lq_sta->dbg_fixed_rate & RATE_MCS_ANT_ABC_MSK)
2740 *rate_n_flags = lq_sta->dbg_fixed_rate;
2743 lq_sta->dbg_fixed_rate = 0;
2757 struct iwl_lq_sta *lq_sta = file->private_data;
2763 priv = lq_sta->drv;
2770 lq_sta->dbg_fixed_rate = parsed_rate;
2772 lq_sta->dbg_fixed_rate = 0;
2774 lq_sta->active_legacy_rate = 0x0FFF; /* 1 - 54 MBits, includes CCK */
2775 lq_sta->active_siso_rate = 0x1FD0; /* 6 - 60 MBits, no 9, no CCK */
2776 lq_sta->active_mimo2_rate = 0x1FD0; /* 6 - 60 MBits, no 9, no CCK */
2777 lq_sta->active_mimo3_rate = 0x1FD0; /* 6 - 60 MBits, no 9, no CCK */
2780 lq_sta->lq.sta_id, lq_sta->dbg_fixed_rate);
2782 if (lq_sta->dbg_fixed_rate) {
2783 rs_fill_link_cmd(NULL, lq_sta, lq_sta->dbg_fixed_rate);
2784 iwl_send_lq_cmd(lq_sta->drv, &lq_sta->lq, CMD_ASYNC, false);
2799 struct iwl_lq_sta *lq_sta = file->private_data;
2801 struct iwl_scale_tbl_info *tbl = &(lq_sta->lq_info[lq_sta->active_tbl]);
2803 priv = lq_sta->drv;
2808 desc += sprintf(buff+desc, "sta_id %d\n", lq_sta->lq.sta_id);
2810 lq_sta->total_failed, lq_sta->total_success,
2811 lq_sta->active_legacy_rate);
2813 lq_sta->dbg_fixed_rate);
2827 (lq_sta->is_green) ? "GF enabled" : "",
2828 (lq_sta->is_agg) ? "AGG on" : "");
2831 lq_sta->last_rate_n_flags);
2834 lq_sta->lq.general_params.flags,
2835 lq_sta->lq.general_params.mimo_delimiter,
2836 lq_sta->lq.general_params.single_stream_ant_msk,
2837 lq_sta->lq.general_params.dual_stream_ant_msk);
2841 le16_to_cpu(lq_sta->lq.agg_params.agg_time_limit),
2842 lq_sta->lq.agg_params.agg_dis_start_th,
2843 lq_sta->lq.agg_params.agg_frame_cnt_limit);
2847 lq_sta->lq.general_params.start_rate_index[0],
2848 lq_sta->lq.general_params.start_rate_index[1],
2849 lq_sta->lq.general_params.start_rate_index[2],
2850 lq_sta->lq.general_params.start_rate_index[3]);
2854 le32_to_cpu(lq_sta->lq.rs_table[i].rate_n_flags));
2857 i, le32_to_cpu(lq_sta->lq.rs_table[i].rate_n_flags),
2861 i, le32_to_cpu(lq_sta->lq.rs_table[i].rate_n_flags),
2884 struct iwl_lq_sta *lq_sta = file->private_data;
2894 lq_sta->active_tbl == i ? "*" : "x",
2895 lq_sta->lq_info[i].lq_type,
2896 lq_sta->lq_info[i].is_SGI,
2897 lq_sta->lq_info[i].is_ht40,
2898 lq_sta->lq_info[i].is_dup,
2899 lq_sta->is_green,
2900 lq_sta->lq_info[i].current_rate);
2904 lq_sta->lq_info[i].win[j].counter,
2905 lq_sta->lq_info[i].win[j].success_counter,
2906 lq_sta->lq_info[i].win[j].success_ratio);
2926 struct iwl_lq_sta *lq_sta = file->private_data;
2928 struct iwl_scale_tbl_info *tbl = &lq_sta->lq_info[lq_sta->active_tbl];
2930 priv = lq_sta->drv;
2935 tbl->expected_tpt[lq_sta->last_txrate_idx]);
2939 iwl_rates[lq_sta->last_txrate_idx].ieee >> 1);
2953 struct iwl_lq_sta *lq_sta = priv_sta;
2954 lq_sta->rs_sta_dbgfs_scale_table_file =
2956 lq_sta, &rs_sta_dbgfs_scale_table_ops);
2957 lq_sta->rs_sta_dbgfs_stats_table_file =
2959 lq_sta, &rs_sta_dbgfs_stats_table_ops);
2960 lq_sta->rs_sta_dbgfs_rate_scale_data_file =
2962 lq_sta, &rs_sta_dbgfs_rate_scale_data_ops);
2963 lq_sta->rs_sta_dbgfs_tx_agg_tid_en_file =
2965 &lq_sta->tx_agg_tid_en);
2971 struct iwl_lq_sta *lq_sta = priv_sta;
2972 debugfs_remove(lq_sta->rs_sta_dbgfs_scale_table_file);
2973 debugfs_remove(lq_sta->rs_sta_dbgfs_stats_table_file);
2974 debugfs_remove(lq_sta->rs_sta_dbgfs_rate_scale_data_file);
2975 debugfs_remove(lq_sta->rs_sta_dbgfs_tx_agg_tid_en_file);