.. | .. |
---|
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)); |
---|