| .. | .. |
|---|
| 645 | 645 | u16 mimo_ctlchbw = PHY_TXC1_BW_20MHZ; |
|---|
| 646 | 646 | u32 rspec = 0, rspec_fallback = 0; |
|---|
| 647 | 647 | u32 rts_rspec = 0, rts_rspec_fallback = 0; |
|---|
| 648 | | - u8 plcp0, plcp3, is40, sgi, mcs; |
|---|
| 648 | + u8 plcp0, is40, mcs; |
|---|
| 649 | 649 | u16 mch; |
|---|
| 650 | 650 | u8 preamble_type = BRCMS_GF_PREAMBLE; |
|---|
| 651 | 651 | u8 fbr_preamble_type = BRCMS_GF_PREAMBLE; |
|---|
| .. | .. |
|---|
| 704 | 704 | txh->MacTxControlLow = cpu_to_le16(mcl); |
|---|
| 705 | 705 | |
|---|
| 706 | 706 | fbr = txrate[1].count > 0; |
|---|
| 707 | | - if (!fbr) { |
|---|
| 707 | + if (!fbr) |
|---|
| 708 | 708 | plcp0 = plcp[0]; |
|---|
| 709 | | - plcp3 = plcp[3]; |
|---|
| 710 | | - } else { |
|---|
| 709 | + else |
|---|
| 711 | 710 | plcp0 = txh->FragPLCPFallback[0]; |
|---|
| 712 | | - plcp3 = txh->FragPLCPFallback[3]; |
|---|
| 713 | | - } |
|---|
| 711 | + |
|---|
| 714 | 712 | is40 = (plcp0 & MIMO_PLCP_40MHZ) ? 1 : 0; |
|---|
| 715 | | - sgi = plcp3_issgi(plcp3) ? 1 : 0; |
|---|
| 716 | 713 | mcs = plcp0 & ~MIMO_PLCP_40MHZ; |
|---|
| 717 | 714 | |
|---|
| 718 | 715 | if (is40) { |
|---|
| .. | .. |
|---|
| 850 | 847 | bool ba_recd = false, ack_recd = false; |
|---|
| 851 | 848 | u8 suc_mpdu = 0, tot_mpdu = 0; |
|---|
| 852 | 849 | uint supr_status; |
|---|
| 853 | | - bool update_rate = true, retry = true, tx_error = false; |
|---|
| 850 | + bool retry = true; |
|---|
| 854 | 851 | u16 mimoantsel = 0; |
|---|
| 855 | | - u8 antselid = 0; |
|---|
| 856 | | - u8 retry_limit, rr_retry_limit; |
|---|
| 852 | + u8 retry_limit; |
|---|
| 857 | 853 | struct ieee80211_tx_info *tx_info = IEEE80211_SKB_CB(p); |
|---|
| 858 | 854 | |
|---|
| 859 | 855 | #ifdef DEBUG |
|---|
| .. | .. |
|---|
| 866 | 862 | |
|---|
| 867 | 863 | ini = &scb_ampdu->ini[tid]; |
|---|
| 868 | 864 | retry_limit = ampdu->retry_limit_tid[tid]; |
|---|
| 869 | | - rr_retry_limit = ampdu->rr_retry_limit_tid[tid]; |
|---|
| 870 | 865 | memset(bitmap, 0, sizeof(bitmap)); |
|---|
| 871 | 866 | queue = txs->frameid & TXFID_QUEUE_MASK; |
|---|
| 872 | 867 | supr_status = txs->status & TX_STATUS_SUPR_MASK; |
|---|
| 873 | 868 | |
|---|
| 874 | 869 | if (txs->status & TX_STATUS_ACK_RCV) { |
|---|
| 875 | | - if (TX_STATUS_SUPR_UF == supr_status) |
|---|
| 876 | | - update_rate = false; |
|---|
| 877 | | - |
|---|
| 878 | 870 | WARN_ON(!(txs->status & TX_STATUS_INTERMEDIATE)); |
|---|
| 879 | 871 | start_seq = txs->sequence >> SEQNUM_SHIFT; |
|---|
| 880 | 872 | bitmap[0] = (txs->status & TX_STATUS_BA_BMAP03_MASK) >> |
|---|
| .. | .. |
|---|
| 898 | 890 | ba_recd = true; |
|---|
| 899 | 891 | } else { |
|---|
| 900 | 892 | if (supr_status) { |
|---|
| 901 | | - update_rate = false; |
|---|
| 902 | 893 | if (supr_status == TX_STATUS_SUPR_BADCH) { |
|---|
| 903 | 894 | brcms_dbg_ht(wlc->hw->d11core, |
|---|
| 904 | 895 | "%s: Pkt tx suppressed, illegal channel possibly %d\n", |
|---|
| .. | .. |
|---|
| 923 | 914 | * if there were underflows, but pre-loading |
|---|
| 924 | 915 | * is not active, notify rate adaptation. |
|---|
| 925 | 916 | */ |
|---|
| 926 | | - if (brcms_c_ffpld_check_txfunfl(wlc, queue) > 0) |
|---|
| 927 | | - tx_error = true; |
|---|
| 917 | + brcms_c_ffpld_check_txfunfl(wlc, queue); |
|---|
| 928 | 918 | } |
|---|
| 929 | 919 | } else if (txs->phyerr) { |
|---|
| 930 | | - update_rate = false; |
|---|
| 931 | 920 | brcms_dbg_ht(wlc->hw->d11core, |
|---|
| 932 | 921 | "%s: ampdu tx phy error (0x%x)\n", |
|---|
| 933 | 922 | __func__, txs->phyerr); |
|---|
| .. | .. |
|---|
| 1023 | 1012 | } |
|---|
| 1024 | 1013 | |
|---|
| 1025 | 1014 | /* update rate state */ |
|---|
| 1026 | | - antselid = brcms_c_antsel_antsel2id(wlc->asi, mimoantsel); |
|---|
| 1015 | + brcms_c_antsel_antsel2id(wlc->asi, mimoantsel); |
|---|
| 1027 | 1016 | } |
|---|
| 1028 | 1017 | |
|---|
| 1029 | 1018 | void |
|---|
| 1030 | 1019 | brcms_c_ampdu_dotxstatus(struct ampdu_info *ampdu, struct scb *scb, |
|---|
| 1031 | 1020 | struct sk_buff *p, struct tx_status *txs) |
|---|
| 1032 | 1021 | { |
|---|
| 1033 | | - struct scb_ampdu *scb_ampdu; |
|---|
| 1034 | 1022 | struct brcms_c_info *wlc = ampdu->wlc; |
|---|
| 1035 | | - struct scb_ampdu_tid_ini *ini; |
|---|
| 1036 | 1023 | u32 s1 = 0, s2 = 0; |
|---|
| 1037 | | - struct ieee80211_tx_info *tx_info; |
|---|
| 1038 | | - |
|---|
| 1039 | | - tx_info = IEEE80211_SKB_CB(p); |
|---|
| 1040 | 1024 | |
|---|
| 1041 | 1025 | /* BMAC_NOTE: For the split driver, second level txstatus comes later |
|---|
| 1042 | 1026 | * So if the ACK was received then wait for the second level else just |
|---|
| .. | .. |
|---|
| 1060 | 1044 | } |
|---|
| 1061 | 1045 | |
|---|
| 1062 | 1046 | if (scb) { |
|---|
| 1063 | | - scb_ampdu = &scb->scb_ampdu; |
|---|
| 1064 | | - ini = &scb_ampdu->ini[p->priority]; |
|---|
| 1065 | 1047 | brcms_c_ampdu_dotxstatus_complete(ampdu, scb, p, txs, s1, s2); |
|---|
| 1066 | 1048 | } else { |
|---|
| 1067 | 1049 | /* loop through all pkts and free */ |
|---|
| .. | .. |
|---|
| 1069 | 1051 | struct d11txh *txh; |
|---|
| 1070 | 1052 | u16 mcl; |
|---|
| 1071 | 1053 | while (p) { |
|---|
| 1072 | | - tx_info = IEEE80211_SKB_CB(p); |
|---|
| 1073 | 1054 | txh = (struct d11txh *) p->data; |
|---|
| 1074 | 1055 | trace_brcms_txdesc(&wlc->hw->d11core->dev, txh, |
|---|
| 1075 | 1056 | sizeof(*txh)); |
|---|