| /drivers/net/ethernet/marvell/octeontx2/af/ |
| A D | mcs.h | 134 struct mcs { struct 156 void (*mcs_set_hw_capabilities)(struct mcs *mcs); argument 157 void (*mcs_parser_cfg)(struct mcs *mcs); 172 static inline u64 mcs_reg_read(struct mcs *mcs, u64 offset) in mcs_reg_read() argument 199 int mcs_install_flowid_bypass_entry(struct mcs *mcs); 213 void cn10kb_mcs_set_hw_capabilities(struct mcs *mcs); 217 void cn10kb_mcs_parser_cfg(struct mcs *mcs); 223 void cnf10kb_mcs_set_hw_capabilities(struct mcs *mcs); 227 void cnf10kb_mcs_parser_cfg(struct mcs *mcs); 229 void cnf10kb_mcs_tx_pn_wrapped_handler(struct mcs *mcs); [all …]
|
| A D | mcs.c | 980 struct mcs *mcs = (struct mcs *)mcs_irq; in mcs_ip_intr_handler() local 1176 mcs->tx_sa_active = alloc_mem(mcs, mcs->hw->sc_entries); in mcs_register_interrupts() 1185 free_irq(pci_irq_vector(mcs->pdev, mcs->hw->ip_vec), mcs); in mcs_register_interrupts() 1194 struct mcs *mcs; in mcs_get_blkcnt() local 1351 void cn10kb_mcs_parser_cfg(struct mcs *mcs) in cn10kb_mcs_parser_cfg() argument 1396 struct mcs *mcs; in mcs_set_lmac_channels() local 1464 static void mcs_global_cfg(struct mcs *mcs) in mcs_global_cfg() argument 1511 struct mcs *mcs; in mcs_probe() local 1564 err = mcs_alloc_struct_mem(mcs, &mcs->tx); in mcs_probe() 1578 mcs->mcs_ops->mcs_parser_cfg(mcs); in mcs_probe() [all …]
|
| A D | mcs_rvu_if.c | 38 struct mcs *mcs; in rvu_mcs_ptp_cfg() local 76 struct mcs *mcs; in rvu_mbox_handler_mcs_set_lmac_mode() local 185 struct mcs *mcs; in rvu_mbox_handler_mcs_intr_cfg() local 208 struct mcs *mcs; in rvu_mbox_handler_mcs_get_hw_info() local 226 struct mcs *mcs; in rvu_mbox_handler_mcs_port_reset() local 243 struct mcs *mcs; in rvu_mbox_handler_mcs_clear_stats() local 264 struct mcs *mcs; in rvu_mbox_handler_mcs_get_flowid_stats() local 323 struct mcs *mcs; in rvu_mbox_handler_mcs_get_sc_stats() local 347 struct mcs *mcs; in rvu_mbox_handler_mcs_get_sa_stats() local 371 struct mcs *mcs; in rvu_mbox_handler_mcs_get_port_stats() local [all …]
|
| A D | mcs_cnf10kb.c | 25 void cnf10kb_mcs_set_hw_capabilities(struct mcs *mcs) in cnf10kb_mcs_set_hw_capabilities() argument 39 void cnf10kb_mcs_parser_cfg(struct mcs *mcs) in cnf10kb_mcs_parser_cfg() argument 73 void cnf10kb_mcs_flowid_secy_map(struct mcs *mcs, struct secy_mem_map *map, int dir) in cnf10kb_mcs_flowid_secy_map() argument 90 void cnf10kb_mcs_tx_sa_mem_map_write(struct mcs *mcs, struct mcs_tx_sc_sa_map *map) in cnf10kb_mcs_tx_sa_mem_map_write() argument 125 int mcs_set_force_clk_en(struct mcs *mcs, bool set) in mcs_set_force_clk_en() argument 156 void cnf10kb_mcs_tx_pn_thresh_reached_handler(struct mcs *mcs) in cnf10kb_mcs_tx_pn_thresh_reached_handler() argument 164 sc_bmap = &mcs->tx.sc; in cnf10kb_mcs_tx_pn_thresh_reached_handler() 192 void cnf10kb_mcs_tx_pn_wrapped_handler(struct mcs *mcs) in cnf10kb_mcs_tx_pn_wrapped_handler() argument 199 sc_bmap = &mcs->tx.sc; in cnf10kb_mcs_tx_pn_wrapped_handler() 219 void cnf10kb_mcs_bbe_intr_handler(struct mcs *mcs, u64 intr, in cnf10kb_mcs_bbe_intr_handler() argument [all …]
|
| A D | mcs_reg.h | 18 if (mcs->hw->mcs_blks > 1) \ 28 if (mcs->hw->mcs_blks > 1) \ 37 if (mcs->hw->mcs_blks > 1) \ 45 if (mcs->hw->mcs_blks > 1) \ 54 if (mcs->hw->mcs_blks > 1) \ 62 if (mcs->hw->mcs_blks > 1) \ 71 if (mcs->hw->mcs_blks > 1) \ 79 if (mcs->hw->mcs_blks > 1) \ 88 if (mcs->hw->mcs_blks > 1) \ 105 if (mcs->hw->mcs_blks > 1) \ [all …]
|
| A D | rvu_debugfs.c | 203 struct mcs *mcs = filp->private; in rvu_dbg_mcs_port_stats_display() local 209 for_each_set_bit(lmac, &mcs->hw->lmac_bmap, mcs->hw->lmac_cnt) { in rvu_dbg_mcs_port_stats_display() 241 struct mcs *mcs = filp->private; in rvu_dbg_mcs_sa_stats_display() local 263 map = &mcs->rx.sa; in rvu_dbg_mcs_sa_stats_display() 294 struct mcs *mcs = filp->private; in rvu_dbg_mcs_tx_sc_stats_display() local 299 map = &mcs->tx.sc; in rvu_dbg_mcs_tx_sc_stats_display() 324 struct mcs *mcs = filp->private; in rvu_dbg_mcs_rx_sc_stats_display() local 361 struct mcs *mcs = filp->private; in rvu_dbg_mcs_flowid_stats_display() local 398 struct mcs *mcs = filp->private; in rvu_dbg_mcs_tx_secy_stats_display() local 441 struct mcs *mcs = filp->private; in rvu_dbg_mcs_rx_secy_stats_display() local [all …]
|
| /drivers/net/wireless/intel/iwlwifi/ |
| A D | iwl-nvm-utils.c | 85 ht_info->mcs.rx_mask[0] = 0xFF; in iwl_init_ht_hw_capab() 86 ht_info->mcs.rx_mask[1] = 0x00; in iwl_init_ht_hw_capab() 87 ht_info->mcs.rx_mask[2] = 0x00; in iwl_init_ht_hw_capab() 90 ht_info->mcs.rx_mask[1] = 0xFF; in iwl_init_ht_hw_capab() 92 ht_info->mcs.rx_mask[2] = 0xFF; in iwl_init_ht_hw_capab() 109 ht_info->mcs.rx_highest = cpu_to_le16(max_bit_rate); in iwl_init_ht_hw_capab() 112 ht_info->mcs.tx_params = IEEE80211_HT_MCS_TX_DEFINED; in iwl_init_ht_hw_capab() 114 ht_info->mcs.tx_params |= IEEE80211_HT_MCS_TX_RX_DIFF; in iwl_init_ht_hw_capab() 115 ht_info->mcs.tx_params |= ((tx_chains - 1) << in iwl_init_ht_hw_capab()
|
| /drivers/net/wireless/broadcom/brcm80211/brcmsmac/ |
| A D | rate.h | 56 static inline u8 mcs_2_txstreams(u8 mcs) in mcs_2_txstreams() argument 58 return (mcs_table[mcs].tx_phy_ctl3 & MCS_TXS_MASK) >> MCS_TXS_SHIFT; in mcs_2_txstreams() 61 static inline uint mcs_2_rate(u8 mcs, bool is40, bool sgi) in mcs_2_rate() argument 65 return mcs_table[mcs].phy_rate_40_sgi; in mcs_2_rate() 66 return mcs_table[mcs].phy_rate_20_sgi; in mcs_2_rate() 69 return mcs_table[mcs].phy_rate_40; in mcs_2_rate() 71 return mcs_table[mcs].phy_rate_20; in mcs_2_rate() 190 static inline bool is_single_stream(u8 mcs) in is_single_stream() argument 192 return mcs <= HIGHEST_SINGLE_STREAM_MCS || mcs == 32; in is_single_stream()
|
| A D | rate.c | 294 rs->mcs[i] = 0; in brcms_c_rateset_mcs_upd() 334 rs->mcs[i] = (rs->mcs[i] & hw_rs->mcs[i]); in brcms_c_rate_hwrs_filter_sort_validate() 432 memcpy(&dst->mcs[0], &src->mcs[0], MCSSET_LEN); in brcms_c_rateset_filter() 498 rateset->mcs[i] = 0; in brcms_c_rateset_mcs_clear() 503 memcpy(&rateset->mcs[0], &cck_ofdm_mimo_rates.mcs[0], MCSSET_LEN); in brcms_c_rateset_mcs_build() 511 setbit(rateset->mcs, 32); in brcms_c_rateset_bw_mcs_filter() 513 clrbit(rateset->mcs, 32); in brcms_c_rateset_bw_mcs_filter()
|
| A D | ampdu.c | 148 u32 rate, mcs; in brcms_c_scb_ampdu_update_max_txlen() local 150 for (mcs = 0; mcs < MCS_TABLE_SIZE; mcs++) { in brcms_c_scb_ampdu_update_max_txlen() 156 rate = mcs_2_rate(mcs, true, false); in brcms_c_scb_ampdu_update_max_txlen() 162 rate = mcs_2_rate(mcs, true, true); in brcms_c_scb_ampdu_update_max_txlen() 550 u8 plcp0, plcp3, is40, sgi, mcs; in brcms_c_ampdu_add_frame() local 566 mcs = plcp0 & ~MIMO_PLCP_40MHZ; in brcms_c_ampdu_add_frame() 616 u8 plcp0, is40, mcs; in brcms_c_ampdu_finalize() local 681 mcs = plcp0 & ~MIMO_PLCP_40MHZ; in brcms_c_ampdu_finalize() 789 struct tx_status *txs, u8 mcs) in brcms_c_ampdu_rate_status() argument 814 u8 mcs = 0; in brcms_c_ampdu_dotxstatus_complete() local [all …]
|
| /drivers/net/wireless/ath/ath11k/ |
| A D | debugfs_sta.c | 23 int gi, mcs, bw, nss; in ath11k_debugfs_sta_add_tx_stats() local 30 mcs = txrate->mcs; in ath11k_debugfs_sta_add_tx_stats() 37 STATS_OP_FMT(SUCC).he[0][mcs] += peer_stats->succ_bytes; in ath11k_debugfs_sta_add_tx_stats() 38 STATS_OP_FMT(SUCC).he[1][mcs] += peer_stats->succ_pkts; in ath11k_debugfs_sta_add_tx_stats() 58 mcs = legacy_rate_idx; in ath11k_debugfs_sta_add_tx_stats() 72 STATS_OP_FMT(AMPDU).he[0][mcs] += in ath11k_debugfs_sta_add_tx_stats() 74 STATS_OP_FMT(AMPDU).he[1][mcs] += in ath11k_debugfs_sta_add_tx_stats() 77 STATS_OP_FMT(AMPDU).ht[0][mcs] += in ath11k_debugfs_sta_add_tx_stats() 79 STATS_OP_FMT(AMPDU).ht[1][mcs] += in ath11k_debugfs_sta_add_tx_stats() 82 STATS_OP_FMT(AMPDU).vht[0][mcs] += in ath11k_debugfs_sta_add_tx_stats() [all …]
|
| A D | dp_tx.c | 463 u8 mcs, rate_idx = 0, ofdma; in ath11k_dp_tx_update_txcompl() local 480 mcs = FIELD_GET(HAL_TX_RATE_STATS_INFO0_MCS, in ath11k_dp_tx_update_txcompl() 498 ret = ath11k_mac_hw_ratecode_to_legacy_rate(mcs, in ath11k_dp_tx_update_txcompl() 506 if (mcs > 7) { in ath11k_dp_tx_update_txcompl() 507 ath11k_warn(ab, "Invalid HT mcs index %d\n", mcs); in ath11k_dp_tx_update_txcompl() 512 arsta->txrate.mcs = mcs + 8 * (arsta->txrate.nss - 1); in ath11k_dp_tx_update_txcompl() 517 if (mcs > 9) { in ath11k_dp_tx_update_txcompl() 522 arsta->txrate.mcs = mcs; in ath11k_dp_tx_update_txcompl() 527 if (mcs > 11) { in ath11k_dp_tx_update_txcompl() 528 ath11k_warn(ab, "Invalid HE mcs index %d\n", mcs); in ath11k_dp_tx_update_txcompl() [all …]
|
| /drivers/net/wireless/marvell/mwifiex/ |
| A D | 11ac.c | 46 u8 i, nss, mcs; in mwifiex_convert_mcsmap_to_maxrate() local 59 mcs = GET_VHTNSSMCS(mcs_map, i); in mwifiex_convert_mcsmap_to_maxrate() 60 if (mcs < IEEE80211_VHT_MCS_NOT_SUPPORTED) in mwifiex_convert_mcsmap_to_maxrate() 63 mcs = GET_VHTNSSMCS(mcs_map, nss); in mwifiex_convert_mcsmap_to_maxrate() 66 if (mcs == IEEE80211_VHT_MCS_NOT_SUPPORTED) in mwifiex_convert_mcsmap_to_maxrate() 67 mcs = IEEE80211_VHT_MCS_SUPPORT_0_9; in mwifiex_convert_mcsmap_to_maxrate() 71 max_rate = max_rate_lgi_160MHZ[nss - 1][mcs]; in mwifiex_convert_mcsmap_to_maxrate() 74 max_rate = max_rate_lgi_160MHZ[nss - 1][mcs - 1]; in mwifiex_convert_mcsmap_to_maxrate() 76 max_rate = max_rate_lgi_80MHZ[nss - 1][mcs]; in mwifiex_convert_mcsmap_to_maxrate() 79 max_rate = max_rate_lgi_80MHZ[nss - 1][mcs - 1]; in mwifiex_convert_mcsmap_to_maxrate()
|
| /drivers/net/wireless/ath/ath12k/ |
| A D | debugfs_sta.c | 25 int mcs = 0, bw = 0, nss = 0, gi = 0, bw_num = 0; in ath12k_dbg_sta_dump_rate_stats() local 84 for (mcs = 0; mcs <= HAL_RX_MAX_MCS_HT; mcs++) { in ath12k_dbg_sta_dump_rate_stats() 85 if (stats->rx_rate[bw][gi][nss][mcs]) { in ath12k_dbg_sta_dump_rate_stats() 115 for (mcs = 0; mcs <= HAL_RX_MAX_MCS_HT; mcs++) { in ath12k_dbg_sta_dump_rate_stats() 116 if (stats->rx_rate[bw][gi][nss][mcs]) in ath12k_dbg_sta_dump_rate_stats() 118 " %d:%llu", mcs, in ath12k_dbg_sta_dump_rate_stats() 119 stats->rx_rate[bw][gi][nss][mcs]); in ath12k_dbg_sta_dump_rate_stats()
|
| A D | dp_tx.c | 737 ret = ath12k_mac_hw_ratecode_to_legacy_rate(ts->mcs, in ath12k_dp_tx_update_txcompl() 749 if (ts->mcs > ATH12K_HT_MCS_MAX) { in ath12k_dp_tx_update_txcompl() 750 ath12k_warn(ab, "Invalid HT mcs index %d\n", ts->mcs); in ath12k_dp_tx_update_txcompl() 755 txrate.mcs = ts->mcs + 8 * (txrate.nss - 1); in ath12k_dp_tx_update_txcompl() 763 if (ts->mcs > ATH12K_VHT_MCS_MAX) { in ath12k_dp_tx_update_txcompl() 768 txrate.mcs = ts->mcs; in ath12k_dp_tx_update_txcompl() 775 if (ts->mcs > ATH12K_HE_MCS_MAX) { in ath12k_dp_tx_update_txcompl() 776 ath12k_warn(ab, "Invalid HE mcs index %d\n", ts->mcs); in ath12k_dp_tx_update_txcompl() 780 txrate.mcs = ts->mcs; in ath12k_dp_tx_update_txcompl() 785 if (ts->mcs > ATH12K_EHT_MCS_MAX) { in ath12k_dp_tx_update_txcompl() [all …]
|
| A D | dp_mon.c | 132 ppdu_info->nss = (ppdu_info->mcs >> 3); in ath12k_dp_mon_parse_ht_sig() 463 ppdu_info->mcs = value; in ath12k_dp_mon_parse_he_sig_su() 548 ppdu_info->mcs = in ath12k_dp_mon_parse_he_sig_su() 939 ppdu_info->mcs = le32_get_bits(user->info0, in ath12k_dp_mon_hal_rx_parse_eht_mumimo_user() 1263 mon_rx_user_status->mcs = ppdu_info->mcs; in ath12k_dp_mon_hal_rx_parse_user_info() 3068 tx_ppdu_info->rx_status.mcs = in ath12k_dp_mon_tx_parse_status_tlv() 3281 tx_ppdu_info->rx_status.mcs = in ath12k_dp_mon_tx_parse_status_tlv() 3429 u32 mcs_idx = (user_stats) ? user_stats->mcs : ppdu_info->mcs; in ath12k_dp_mon_rx_update_peer_rate_table_stats() 3479 ppdu_info->mcs = HAL_RX_MAX_MCS; in ath12k_dp_mon_rx_update_peer_su_stats() 3523 ppdu_info->mcs = ppdu_info->mcs % 8; in ath12k_dp_mon_rx_update_peer_su_stats() [all …]
|
| /drivers/net/wireless/ath/wil6210/ |
| A D | trace.h | 158 __field(u8, mcs) 169 __entry->mcs = wil_rxdesc_mcs(d); 173 __entry->mid, __entry->cid, __entry->tid, __entry->mcs, 190 __field(u8, mcs) 202 __entry->mcs = wil_rx_status_get_mcs(msg); 207 __entry->mid, __entry->cid, __entry->tid, __entry->mcs, 259 __field(u8, mcs) 267 __entry->mcs = wil_tx_status_get_mcs(msg); 272 __entry->num_descs, __entry->status, __entry->mcs)
|
| /drivers/net/wireless/realtek/rtw88/ |
| A D | util.c | 82 void rtw_desc_to_mcsrate(u16 rate, u8 *mcs, u8 *nss) in rtw_desc_to_mcsrate() argument 90 *mcs = rate - DESC_RATEVHT1SS_MCS0; in rtw_desc_to_mcsrate() 94 *mcs = rate - DESC_RATEVHT2SS_MCS0; in rtw_desc_to_mcsrate() 98 *mcs = rate - DESC_RATEVHT3SS_MCS0; in rtw_desc_to_mcsrate() 102 *mcs = rate - DESC_RATEVHT4SS_MCS0; in rtw_desc_to_mcsrate() 106 *mcs = rate - DESC_RATEMCS0; in rtw_desc_to_mcsrate()
|
| /drivers/net/wireless/ath/ath9k/ |
| A D | common-init.c | 211 memset(&ht_info->mcs, 0, sizeof(ht_info->mcs)); in ath9k_cmn_setup_ht_cap() 219 ht_info->mcs.tx_params |= IEEE80211_HT_MCS_TX_RX_DIFF; in ath9k_cmn_setup_ht_cap() 220 ht_info->mcs.tx_params |= ((tx_streams - 1) << in ath9k_cmn_setup_ht_cap() 225 ht_info->mcs.rx_mask[i] = 0xff; in ath9k_cmn_setup_ht_cap() 227 ht_info->mcs.tx_params |= IEEE80211_HT_MCS_TX_DEFINED; in ath9k_cmn_setup_ht_cap()
|
| /drivers/net/wireless/mediatek/mt76/mt7615/ |
| A D | mcu.c | 2038 SKU_FIELD(VHT20_0, mcs[0][0]), in mt7615_mcu_set_txpower_sku() 2042 SKU_FIELD(VHT20_7, mcs[0][7]), in mt7615_mcu_set_txpower_sku() 2043 SKU_FIELD(VHT20_8, mcs[0][8]), in mt7615_mcu_set_txpower_sku() 2044 SKU_FIELD(VHT20_9, mcs[0][9]), in mt7615_mcu_set_txpower_sku() 2045 SKU_FIELD(VHT40_0, mcs[1][0]), in mt7615_mcu_set_txpower_sku() 2049 SKU_FIELD(VHT40_7, mcs[1][7]), in mt7615_mcu_set_txpower_sku() 2050 SKU_FIELD(VHT40_8, mcs[1][8]), in mt7615_mcu_set_txpower_sku() 2051 SKU_FIELD(VHT40_9, mcs[1][9]), in mt7615_mcu_set_txpower_sku() 2052 SKU_FIELD(VHT80_0, mcs[2][0]), in mt7615_mcu_set_txpower_sku() 2056 SKU_FIELD(VHT80_7, mcs[2][7]), in mt7615_mcu_set_txpower_sku() [all …]
|
| /drivers/net/wireless/intel/iwlwifi/fw/ |
| A D | rs.c | 97 u8 mcs = 0, nss = 0; in rs_pretty_print_rate() local 131 mcs = format == RATE_MCS_MOD_TYPE_HT ? in rs_pretty_print_rate() 141 rate, type, iwl_rs_pretty_ant(ant), iwl_rs_pretty_bw(bw), mcs, nss, in rs_pretty_print_rate()
|
| /drivers/net/wireless/mediatek/mt76/ |
| A D | mt76x02_txrx.c | 62 u8 mcs = ieee80211_rate_get_vht_mcs(rate); in mt76x02_tx_get_max_txpwr_adj() local 64 if (mcs == 8 || mcs == 9) { in mt76x02_tx_get_max_txpwr_adj() 70 idx = ((nss - 1) << 3) + mcs; in mt76x02_tx_get_max_txpwr_adj()
|
| /drivers/net/wireless/ralink/rt2x00/ |
| A D | rt2x00dev.c | 718 (rate->mcs == signal))) { in rt2x00lib_rxdone_read_signal() 885 .mcs = RATE_MCS(RATE_MODE_CCK, 0), 892 .mcs = RATE_MCS(RATE_MODE_CCK, 1), 899 .mcs = RATE_MCS(RATE_MODE_CCK, 2), 906 .mcs = RATE_MCS(RATE_MODE_CCK, 3), 913 .mcs = RATE_MCS(RATE_MODE_OFDM, 0), 920 .mcs = RATE_MCS(RATE_MODE_OFDM, 1), 927 .mcs = RATE_MCS(RATE_MODE_OFDM, 2), 934 .mcs = RATE_MCS(RATE_MODE_OFDM, 3), 941 .mcs = RATE_MCS(RATE_MODE_OFDM, 4), [all …]
|
| /drivers/net/wireless/ath/ath10k/ |
| A D | htt_rx.c | 1028 mcs = info2 & 0x1F; in ath10k_htt_rx_h_rates() 1029 nss = mcs >> 3; in ath10k_htt_rx_h_rates() 1033 status->rate_idx = mcs; in ath10k_htt_rx_h_rates() 1051 mcs = (info3 >> 4) & 0x0F; in ath10k_htt_rx_h_rates() 1068 mcs = 0; in ath10k_htt_rx_h_rates() 1072 if (mcs > 0x09) { in ath10k_htt_rx_h_rates() 1095 status->rate_idx = mcs; in ath10k_htt_rx_h_rates() 3684 ht_idx = mcs + (nss - 1) * 8; in ath10k_accumulate_per_peer_tx_stats() 3705 mcs = legacy_rate_idx; in ath10k_accumulate_per_peer_tx_stats() 3839 arsta->txrate.mcs = txrate.mcs + 8 * (txrate.nss - 1); in ath10k_update_per_peer_tx_stats() [all …]
|
| /drivers/net/wireless/mediatek/mt76/mt7915/ |
| A D | mcu.c | 68 int mcs; in mt7915_mcu_set_sta_he_mcs() local 72 mcs = GENMASK(11, 0); in mt7915_mcu_set_sta_he_mcs() 75 mcs = GENMASK(9, 0); in mt7915_mcu_set_sta_he_mcs() 78 mcs = GENMASK(7, 0); in mt7915_mcu_set_sta_he_mcs() 81 mcs = 0; in mt7915_mcu_set_sta_he_mcs() 84 mcs = mcs ? fls(mcs & mask[nss]) - 1 : -1; in mt7915_mcu_set_sta_he_mcs() 86 switch (mcs) { in mt7915_mcu_set_sta_he_mcs() 120 u16 mcs; in mt7915_mcu_set_sta_vht_mcs() local 134 mcs = 0; in mt7915_mcu_set_sta_vht_mcs() 1121 struct ieee80211_mcs_info *mcs = &sta->deflink.ht_cap.mcs; in mt7915_mcu_sta_bfer_ht() local [all …]
|