| /linux/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 183 struct mcs *mcs; in rvu_mbox_handler_mcs_intr_cfg() local 206 struct mcs *mcs; in rvu_mbox_handler_mcs_get_hw_info() local 224 struct mcs *mcs; in rvu_mbox_handler_mcs_port_reset() local 241 struct mcs *mcs; in rvu_mbox_handler_mcs_clear_stats() local 262 struct mcs *mcs; in rvu_mbox_handler_mcs_get_flowid_stats() local 321 struct mcs *mcs; in rvu_mbox_handler_mcs_get_sc_stats() local 345 struct mcs *mcs; in rvu_mbox_handler_mcs_get_sa_stats() local 369 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 27 struct hwinfo *hw = mcs->hw; in cnf10kb_mcs_set_hw_capabilities() 39 void cnf10kb_mcs_parser_cfg(struct mcs *mcs) in cnf10kb_mcs_parser_cfg() 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 | 230 struct mcs *mcs = filp->private; in rvu_dbg_mcs_port_stats_display() local 236 for_each_set_bit(lmac, &mcs->hw->lmac_bmap, mcs->hw->lmac_cnt) { in rvu_dbg_mcs_port_stats_display() 268 struct mcs *mcs = filp->private; in rvu_dbg_mcs_sa_stats_display() local 290 map = &mcs->rx.sa; in rvu_dbg_mcs_sa_stats_display() 321 struct mcs *mcs = filp->private; in rvu_dbg_mcs_tx_sc_stats_display() local 326 map = &mcs->tx.sc; in rvu_dbg_mcs_tx_sc_stats_display() 351 struct mcs *mcs = filp->private; in rvu_dbg_mcs_rx_sc_stats_display() local 388 struct mcs *mcs = filp->private; in rvu_dbg_mcs_flowid_stats_display() local 425 struct mcs *mcs = filp->private; in rvu_dbg_mcs_tx_secy_stats_display() local 468 struct mcs *mcs = filp->private; in rvu_dbg_mcs_rx_secy_stats_display() local [all …]
|
| /linux/drivers/net/wireless/intel/iwlwifi/ |
| A D | iwl-nvm-utils.c | 84 ht_info->mcs.rx_mask[0] = 0xFF; in iwl_init_ht_hw_capab() 85 ht_info->mcs.rx_mask[1] = 0x00; in iwl_init_ht_hw_capab() 86 ht_info->mcs.rx_mask[2] = 0x00; in iwl_init_ht_hw_capab() 89 ht_info->mcs.rx_mask[1] = 0xFF; in iwl_init_ht_hw_capab() 91 ht_info->mcs.rx_mask[2] = 0xFF; in iwl_init_ht_hw_capab() 108 ht_info->mcs.rx_highest = cpu_to_le16(max_bit_rate); in iwl_init_ht_hw_capab() 111 ht_info->mcs.tx_params = IEEE80211_HT_MCS_TX_DEFINED; in iwl_init_ht_hw_capab() 113 ht_info->mcs.tx_params |= IEEE80211_HT_MCS_TX_RX_DIFF; in iwl_init_ht_hw_capab() 114 ht_info->mcs.tx_params |= ((tx_chains - 1) << in iwl_init_ht_hw_capab()
|
| /linux/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 …]
|
| /linux/sound/soc/codecs/ |
| A D | adau1977.c | 266 unsigned int mcs; in adau1977_lookup_mcs() local 282 if (mcs < 1 || mcs > 6 || mcs == 5) in adau1977_lookup_mcs() 285 mcs = mcs - 1; in adau1977_lookup_mcs() 286 if (mcs == 5) in adau1977_lookup_mcs() 287 mcs = 4; in adau1977_lookup_mcs() 289 return mcs; in adau1977_lookup_mcs() 301 int mcs, fs; in adau1977_hw_params() local 310 if (mcs < 0) in adau1977_hw_params() 311 return mcs; in adau1977_hw_params() 313 mcs = 0; in adau1977_hw_params() [all …]
|
| /linux/net/mac80211/ |
| A D | ht.c | 69 scaps = (u8 *)(&ht_capa->mcs.rx_mask); in ieee80211_apply_htcap_overrides() 201 tx_mcs_set_cap = own_cap.mcs.tx_params; in ieee80211_ht_cap_ie_to_sta_ht_cap() 204 ht_cap.mcs.tx_params = ht_cap_ie->mcs.tx_params; in ieee80211_ht_cap_ie_to_sta_ht_cap() 226 ht_cap.mcs.rx_mask[i] = in ieee80211_ht_cap_ie_to_sta_ht_cap() 227 own_cap.mcs.rx_mask[i] & ht_cap_ie->mcs.rx_mask[i]; in ieee80211_ht_cap_ie_to_sta_ht_cap() 232 ht_cap.mcs.rx_mask[i] = in ieee80211_ht_cap_ie_to_sta_ht_cap() 233 own_cap.mcs.rx_mask[i] & in ieee80211_ht_cap_ie_to_sta_ht_cap() 234 ht_cap_ie->mcs.rx_mask[i]; in ieee80211_ht_cap_ie_to_sta_ht_cap() 237 if (own_cap.mcs.rx_mask[32/8] & ht_cap_ie->mcs.rx_mask[32/8] & 1) in ieee80211_ht_cap_ie_to_sta_ht_cap() 238 ht_cap.mcs.rx_mask[32/8] |= 1; in ieee80211_ht_cap_ie_to_sta_ht_cap() [all …]
|
| /linux/drivers/net/wireless/ath/ath11k/ |
| A D | debugfs_sta.c | 22 int gi, mcs, bw, nss; in ath11k_debugfs_sta_add_tx_stats() local 29 mcs = txrate->mcs; in ath11k_debugfs_sta_add_tx_stats() 36 STATS_OP_FMT(SUCC).he[0][mcs] += peer_stats->succ_bytes; in ath11k_debugfs_sta_add_tx_stats() 37 STATS_OP_FMT(SUCC).he[1][mcs] += peer_stats->succ_pkts; in ath11k_debugfs_sta_add_tx_stats() 57 mcs = legacy_rate_idx; in ath11k_debugfs_sta_add_tx_stats() 71 STATS_OP_FMT(AMPDU).he[0][mcs] += in ath11k_debugfs_sta_add_tx_stats() 73 STATS_OP_FMT(AMPDU).he[1][mcs] += in ath11k_debugfs_sta_add_tx_stats() 76 STATS_OP_FMT(AMPDU).ht[0][mcs] += in ath11k_debugfs_sta_add_tx_stats() 78 STATS_OP_FMT(AMPDU).ht[1][mcs] += in ath11k_debugfs_sta_add_tx_stats() 81 STATS_OP_FMT(AMPDU).vht[0][mcs] += in ath11k_debugfs_sta_add_tx_stats() [all …]
|
| A D | dp_tx.c | 462 u8 mcs, rate_idx = 0, ofdma; in ath11k_dp_tx_update_txcompl() local 479 mcs = FIELD_GET(HAL_TX_RATE_STATS_INFO0_MCS, in ath11k_dp_tx_update_txcompl() 497 ret = ath11k_mac_hw_ratecode_to_legacy_rate(mcs, in ath11k_dp_tx_update_txcompl() 505 if (mcs > 7) { in ath11k_dp_tx_update_txcompl() 506 ath11k_warn(ab, "Invalid HT mcs index %d\n", mcs); in ath11k_dp_tx_update_txcompl() 511 arsta->txrate.mcs = mcs + 8 * (arsta->txrate.nss - 1); in ath11k_dp_tx_update_txcompl() 516 if (mcs > 9) { in ath11k_dp_tx_update_txcompl() 521 arsta->txrate.mcs = mcs; in ath11k_dp_tx_update_txcompl() 526 if (mcs > 11) { in ath11k_dp_tx_update_txcompl() 527 ath11k_warn(ab, "Invalid HE mcs index %d\n", mcs); in ath11k_dp_tx_update_txcompl() [all …]
|
| /linux/arch/x86/xen/ |
| A D | mmu_pv.c | 196 mcs.mc->args[1]++; in xen_extend_mmu_update() 199 MULTI_mmu_update(mcs.mc, mcs.args, 1, NULL, DOMID_SELF); in xen_extend_mmu_update() 202 u = mcs.args; in xen_extend_mmu_update() 217 MULTI_mmuext_op(mcs.mc, mcs.args, 1, NULL, DOMID_SELF); in xen_extend_mmuext_op() 220 u = mcs.args; in xen_extend_mmuext_op() 1243 op = mcs.args; in xen_flush_tlb() 1262 op = mcs.args; in xen_flush_tlb_one_user() 1289 args = mcs.args; in xen_flush_tlb_multi() 1517 op = mcs.args; in __pin_pagetable_pfn() 1521 MULTI_mmuext_op(mcs.mc, mcs.args, 1, NULL, DOMID_SELF); in __pin_pagetable_pfn() [all …]
|
| /linux/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()
|
| /linux/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() 105 *mcs = rate - DESC_RATEMCS0; in rtw_desc_to_mcsrate()
|
| /linux/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)
|
| /linux/drivers/net/wireless/ath/ath9k/ |
| A D | common-init.c | 210 memset(&ht_info->mcs, 0, sizeof(ht_info->mcs)); in ath9k_cmn_setup_ht_cap() 218 ht_info->mcs.tx_params |= IEEE80211_HT_MCS_TX_RX_DIFF; in ath9k_cmn_setup_ht_cap() 219 ht_info->mcs.tx_params |= ((tx_streams - 1) << in ath9k_cmn_setup_ht_cap() 224 ht_info->mcs.rx_mask[i] = 0xff; in ath9k_cmn_setup_ht_cap() 226 ht_info->mcs.tx_params |= IEEE80211_HT_MCS_TX_DEFINED; in ath9k_cmn_setup_ht_cap()
|
| /linux/kernel/locking/ |
| A D | qspinlock.c | 83 struct mcs_spinlock mcs; member 131 return per_cpu_ptr(&qnodes[idx].mcs, cpu); in decode_tail() 137 return &((struct qnode *)base + idx)->mcs; in grab_mcs_node() 398 node = this_cpu_ptr(&qnodes[0].mcs); in queued_spin_lock_slowpath() 562 __this_cpu_dec(qnodes[0].mcs.count); in queued_spin_lock_slowpath()
|
| /linux/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 …]
|
| /linux/net/wireless/ |
| A D | util.c | 1273 modulation = rate->mcs & 7; in cfg80211_calculate_bitrate_ht() 1274 streams = (rate->mcs >> 3) + 1; in cfg80211_calculate_bitrate_ht() 1338 return __mcs2bitrate[rate->mcs]; in cfg80211_calculate_bitrate_dmg() 1354 if (WARN_ON_ONCE(rate->mcs < 6 || rate->mcs > 12)) in cfg80211_calculate_bitrate_extended_sc_dmg() 1454 if (rate->mcs > 11) in cfg80211_calculate_bitrate_vht() 1475 bitrate = base[idx][rate->mcs]; in cfg80211_calculate_bitrate_vht() 1615 if (rate->mcs == 14) { in cfg80211_calculate_bitrate_eht() 1771 if (rate->mcs >= 11) in cfg80211_calculate_bitrate_s1g() 1800 bitrate = base[idx][rate->mcs]; in cfg80211_calculate_bitrate_s1g() 2715 if (mcs <= 7) in ieee80211_get_vht_max_nss() [all …]
|
| /linux/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()
|
| /linux/drivers/net/wireless/ath/ath12k/ |
| A D | dp_mon.c | 138 ppdu_info->nss = (ppdu_info->mcs >> 3); in ath12k_dp_mon_parse_ht_sig() 485 ppdu_info->mcs = value; in ath12k_dp_mon_parse_he_sig_su() 570 ppdu_info->mcs = in ath12k_dp_mon_parse_he_sig_su() 1657 tx_ppdu_info->rx_status.mcs = in ath12k_dp_mon_tx_parse_status_tlv() 1878 tx_ppdu_info->rx_status.mcs = in ath12k_dp_mon_tx_parse_status_tlv() 2138 u32 mcs_idx = (user_stats) ? user_stats->mcs : ppdu_info->mcs; in ath12k_dp_mon_rx_update_peer_rate_table_stats() 2191 ppdu_info->mcs = HAL_RX_MAX_MCS; in ath12k_dp_mon_rx_update_peer_su_stats() 2231 ppdu_info->mcs <= HAL_RX_MAX_MCS_HT) { in ath12k_dp_mon_rx_update_peer_su_stats() 2235 ppdu_info->mcs = ppdu_info->mcs % 8; in ath12k_dp_mon_rx_update_peer_su_stats() 2245 ppdu_info->mcs <= HAL_RX_MAX_MCS_HE) { in ath12k_dp_mon_rx_update_peer_su_stats() [all …]
|
| /linux/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 …]
|