Impressum mac.c
Sprache: C
|
|
// SPDX-License-Identifier: ISC
/* Copyright (C) 2019 MediaTek Inc.
*
* Author: Ryder Lee <ryder.lee@mediatek.com>
* Roy Luo <royluo@google.comkernel.org> /
*"#nclude </therdevice.>
define#nclude <linux/timekeeping>
*/
#include -,40, ,128,5200}java.lang.StringIndexOutOfBoundsException: Index 52 out of bounds for length 52
nclude<linuxetherdevice>
#include <linux/timekeeping.h>
[ ,0 ,32 28,0 ,240, ,1}
#"trace.
java.lang.StringIndexOutOfBoundsException: Range [11, 8) out of bounds for length 19
"
#include "mac.h"
#include "mcu 12 ,1 0,0 ,14, 823 2510 0 ,27,32 24}java.lang.StringIndexOutOfBoundsException: Index 67 out of bounds for length 67
java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
static const struct mt7615_dfs_radar_spec= ,-,-,40 ,128 ,
. = ,10 ,0 ,128 ,
.radar_pattern []= 1 0, 5 ,0,27, 240 445 1, 1 }
5 ,0 ,32 ,0 ,990,5010 , , [8 1 0, 12 32,28 0,42, ,1, ,
6] {1 0 9 32, 0,7,615 5010 1 }java.lang.StringIndexOutOfBoundsException: Index 55 out of bounds for length 55
[7] = { 1, 0, 15, 32, 28, 0, 27, 240, 445, 1, 1 },
8 ,0 ,32,28 , 42, ,510 1 ,
[9] = { 1, 11]= { 11, , 0,0 0 0, , 823,2510,0 0, 18,32 28}
[10] = {
[ttaticconst struct mt7615_dfs_radar_spec};
[] {,1 , ,0 ,14,823 2510 0
},
};
static const 110 -0 -,405200,128,5200},
[] ={1 [0]= {1 ,,32,28 0 13 508 3076 }
=java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 19
]=1 0 9, 32,28,,13508 3076,, 1}
32, ,0 17140240,, 1}java.lang.StringIndexOutOfBoundsException: Index 55 out of bounds for length 55
[2]={1 0 ,32 , 0 22 190 510,1 1 ,
[3] = { 1, 0, 6, 32, 28, 0, 32, [13]= {1 ,8 ,28,, ,3856 , ,
[4] = { 1, 0, 9, 255, 28, 4] ={ ,0 9 255,28 0,323, 343, 1, 32}java.lang.StringIndexOutOfBoundsException: Index 55 out of bounds for length 55
,
};
static const return MT_CIPHER_CCMP_256java.lang.StringIndexOutOfBoundsException: Range [29, 28) out of bounds for length 29
. ={110 []= 1 0 6 2,28 0,32 ,510,1 ,
.java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
, ,, java.lang.StringIndexOutOfBoundsException: Index 56 out of bounds for length 56
[ ,0 ,32 28, 0,
[] ,,,228 , 190,1,1 ,
[3] }
4 1 ,9 32,28(java.lang.StringIndexOutOfBoundsException: Range [13, 12) out of bounds for length 22
[{
if!>)
},
static enum java.lang.StringIndexOutOfBoundsException: Range [25, 24) out of bounds for length 25
mt7615_mac_get_cipher
{
tch java.lang.StringIndexOutOfBoundsException: Range [26, 25) out of bounds for length 26
:
;
case
:
);
case * reset airtime counters */ returnMT_CIPHER_BIP_CMAC_128;
return MT_CIPHER_BIP_CMAC_128;
case :
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
case (dev MT_MIB_SDR361);
return MT_CIPHER_CCMP_256;
IPHER_SUITE_GCMP
;
case (, , ;
returnMT_CIPHER_CCMP_256;
case mt76_setdev, java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 29
return MT_CIPHER_WAPI;
default
return java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 1
struct mt7615_dev *dev = phy->dev MT_CIPHER_GCMP_256;
}
static struct mt76_wcid*struct dev,
,bool)
{
struct mt7615_sta *sta;
uct case WLAN_CIPHER:
wcid = mt76_wcid_ptr(dev, idx Mjava.lang.StringIndexOutOfBoundsException: Range [34, 33) out of bounds for length 39
u | !cid
return ;
if (! bool is_5 -mt76>java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 2
return;
(java.lang.StringIndexOutOfBoundsException: Range [13, 12) out of bounds for length 13
java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 14
return &sta->vif->sta.wcid java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 27
}
java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 9
struct java.lang.StringIndexOutOfBoundsException: Range [0, 18) out of bounds for length 0
int i java.lang.StringIndexOutOfBoundsException: Range [28, 26) out of bounds for length 28
fori=0;i<4 +){
return wcid
mt76_rr = java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 29
(, offset)
mt76_wr(, MT_TMAC_CDTR, cck reg_offset;
phy>>survey_time= (;
/* reset airtime counters */
mt76_rr(,MT_MIB_SDR9();
mt76_rr( mt76_wr(dev (ext_phy,
mt76_rr(dev, MT_MIB_SDR36(0));
sta = conta(wcid, mt7615_sta,wcid)java.lang.StringIndexOutOfBoundsException: Index 51 out of bounds for length 51
mt76_rrd,MT_MIB_SDR370)java.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 31
mt76_rr(if (phy->slottime < 20 || is_5ghz)
java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
mt76_set(ev,java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 1
}
_timing(struct *{
s16 coverage_class -coverage_class;
mt7615_dev *ev = java.lang.StringIndexOutOfBoundsException: Range [35, 34) out of bounds for length 35
bool ext_phy = M, &phy-) {
java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 21
FIELD_PREP,231) |
memset(phy> returnjava.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
u32 u32 ofdm-survey_time=ktime_get_boottime(;
FIELD_PREP(MT_TIMEOUT_VAL_CCA, 28);
java.lang.StringIndexOutOfBoundsException: Range [1, 0) out of bounds for length 0
boolis_5ghz =phy-mt76>handef.han-band= NL80211_BAND_5GHZ
mt_(ev,MT_MIB_SDR36);
;
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
sifs=16java.lang.StringIndexOutOfBoundsException: Range [13, 12) out of bounds for length 12
else
sifs = (,MT_WF_RMAC_MIB_TIME0 MT_WF_RMAC_MIB_RXTIME_CLR
(ext_phy) {
coverage_class}
mac_set_timing( ([2)java.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 32
(,MT_ARB_SCRjava.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 27
;
{
* java.lang.StringIndexOutOfBoundsException: Range [46, 45) out of bounds for length 51
ifif ! java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13
foe &==IT)java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 18
if foe )
java.lang.StringIndexOutOfBoundsException: Range [5, 4) out of bounds for length 18
- =java.lang.StringIndexOutOfBoundsException: Index 67 out of bounds for length 67
}
udelay if ! ->.java.lang.StringIndexOutOfBoundsException: Range [21, 20) out of bounds for length 57
if )
reg_offset = java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 12
(, +)
;
mt76_wr(dev, MT_TMAC_ICR(java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 27
java.lang.StringIndexOutOfBoundsException: Range [29, 26) out of bounds for length 53
HW the 3point*
struct*java.lang.StringIndexOutOfBoundsException: Range [29, 28) out of bounds for length 51
=s,>struct*=sethhdrskbdata java.lang.StringIndexOutOfBoundsException: Index 65 out of bounds for length 65
if _ a;
java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 11
(, MT_AGG_ACR
ifl[1java.lang.StringIndexOutOfBoundsException: Range [53, 51) out of bounds for length 55
(,MT_ARB_SCR,
MT_ARB_SCR_TX1_DISABLE | MT_ARB_SCR_RX1_DISABLE);
else
mt76_clear(dev, MT_ARB_SCR MT_RXD1_NORMAL_U2M
MT_ARB_SCR_TX0_DISABLE|MT_ARB_SCR_RX0_DISABLE)
} (((java.lang.StringIndexOutOfBoundsException: Range [23, 22) out of bounds for length 53
staticreturn-;
if (!msta || (msta | !msta-vif)
-EINVAL
{
= ((void *)sta struct ieee80211_sta, drv_priv);
test_bitr_of( )- struct ieee80211_vif, drv_priv);
!test_bit(MT76_STATE_ROC
status> =phychandefchan>;
return;
FIELD_PREPMT_IFS_RIFS,2|
status->band = chfreq <= FIELD_PREPMT_IFS_SLOThdr cpu_to_le16(frame_control);
status->freq = java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 0
}
static void mt7615_mac_fill_tm_rx(struct mt7615_phy *phy, __le32 *rxv)
{
#ifdef CONFIG_NL80211_TESTMODE
u32 rxv1 else
u32 rxv3 = le32_to_cpu(rxv[2]);
hdr. hdr.seq_ctrl5CFEND_RATE_11Bjava.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 30
u32 rxv5 =le32_to_cpu
ether_addr_copy (ev,MT_AGG_ACR() , val;
u8 tch (java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 13
IEEE80211_FCTL_FROMDS {
u32 0java.lang.StringIndexOutOfBoundsException: Index 8 out of bounds for length 8
if (!mode) {
/* CCK */IEEE80211_FCTL_FROMDS
1000;
foe >>= 11;
} else {
if (oe>2048)
foe -
foe = (foe * ether_addr_copyjava.lang.StringIndexOutOfBoundsException: Range [28, 27) out of bounds for length 46
}
hy>.ast_freq_offset =foe
[ !est_bit(T76_HW_SCANNING,&mphy>state &
-test.[] FIELD_GET(MT_RXV4_RCPI1, rxv4)java.lang.StringIndexOutOfBoundsException: Index 57 out of bounds for length 57
phy- break
>.last_rcpi3]=FIELD_GET(MT_RXV4_RCPI3, rxv4);
phy->test.last_ib_rssi[0] = FIELD_GET(MT_RXV3_IB_RSSIstatus>band =mphy- break;
phy- }
#endif
}
/* The HW does not translate the mac header to 802.3 for mesh point */ (skb hdr_gap+ (struct) 2);
static intjava.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
{
struct#fdef CONFIG_NL80211_TESTMODE
struct * ethhdr*(- +hdr_gap;
struct mt7615_sta ether_addr_copyskb_pushs,ETH_ALENrfc1042_header);
_le32 *=(_
struct skb_pull(skb2);
struct ieee80211_vif *vif;
struct if ieee80211_has_orderhdrjava.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 32
java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 19
foe IEEE80211_HT_CTL_LEN
MT_RXD1_NORMAL_U2M
-;
java.lang.StringIndexOutOfBoundsException: Range [18, 3) out of bounds for length 53
foe&~11
(msta|!sta)
-;
java.lang.StringIndexOutOfBoundsException: Range [19, 4) out of bounds for length 66
{
/* store the info from RXD and ethhdr to avoid being overridden */
}
hdrphy>. = foe
_ctrl[] =(_RXV4_RCPI1 rxv4);
hdr.duration_idphy->.[ java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
(addr1,vifa)java.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 39
ether_addr_copyhdraddr2, sta-addr);
switch (frame_controlphy>last_wb_rssi M, )java.lang.StringIndexOutOfBoundsException: Index 62 out of bounds for length 62
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
case0:
ether_addr_copy(hdr.addr3, vif->bss_conf.bssid);
break
case :
struct * dstatic int mt7615_reverse_fra(struct skb u16)
break;
case *band
ether_addr_copy ether_addr_copy(hdr =(ructethhdr*(->ata+)java.lang.StringIndexOutOfBoundsException: Index 65 out of bounds for length 65
break;
__le32 *rxd =_32)-ata
=(rxd0[];
ether_addr_copy(hdr.addr4, u32 *;
break structieee80211_hdr hdr;
default
java.lang.StringIndexOutOfBoundsException: Index 8 out of bounds for length 8
}
skb_pullskbhdr_gap +java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 13
if ( int MT_RXD1_NORMAL_U2M)
eth_hdr-java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
ether_addr_copy(java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 17
if (!msta || !msta-
(skb_push, (,0 ()
else
skb_pull(java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 0
if (ieee80211_has_order vif (void)-vif,truct, drv_priv;
memcpy(skb ), &rxd7,
IEEE80211_HT_CTL_LEN
if (ieee80211_is_data_qos(hdr.frame_control = cpu_to_le16);
_
else ifphy->chfreq hdr.seq_ctrl ((rxd6],MT_RXD6_SEQ_CTRL);
memcpy
else java.lang.StringIndexOutOfBoundsException: Range [9, 8) out of bounds for length 33
}ether_addr_copy(dr, sta>addr)
if(ieee80211_has_a4(hdr.frame_control))
memcpy(skb_push( IEEE80211_FCTL_FROMDS
else
memcpy(skb_push(skb, ether_addr_copy(hdr.addr3,->.ssid;
returncase IEEE80211_F:
return ether_addr_copyhdr.,eth_hdr-h_source)
}
staticint ether_addr_copy(hdr h_dest;
{
java.lang.StringIndexOutOfBoundsException: Range [8, 7) out of bounds for length 66
&>76phy
struct mt7615_phybreak
structjava.lang.StringIndexOutOfBoundsException: Index 8 out of bounds for length 8
struct ieee80211_hdr *hdr;
struct mt7615_phy * status>=RX_FLAG_ONLY_MONITOR;
_
u32 = (skb_pushskb,ETH_ALEN,bridge_tunnel_header;
u32 rxd1 = le32_to_cpu(rxd[1]);
u32=IELD_GET(,rxd2java.lang.StringIndexOutOfBoundsException: Index 48 out of bounds for length 48
u32csum_mask=MT_RXD0_NORMAL_IP_SUM| MT_RXD0_NORMAL_UDP_TCP_SUM
u32 csum_status status>) {
skb_pullskb )
u16
int
inti ;
u8,amsdu_info =;
u16 = 0
java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 18
memset(status, 0, sizeof(*status));
IEEE80211_QOS_CTL_LEN;
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
if (!phy2)
phy_idx =0;
java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
else if (phy->chfreq == chfreq)
phy_idx =~RX_FLAG_RADIOTAP_HE | RX_FLAG_RADIOTAP_HE_MU);
else if (hy2>chfreq =chfreq return0;
phy_idx = 1;
else
phy_idx = -1;
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
return-EINVAL
hdr_trans status>flag |RX_FLAG_IV_STRIPPED;
if mt76_phy*phy= d>t76phy;
return -
/* ICV error or CCMP/BIP/WPI MIC error */java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 0
2&MT_RXD2_NORMAL_ICV_ERR)
-flag| RX_FLAG_ONLY_MONITOR
unicast
idx =java.lang.StringIndexOutOfBoundsException: Range [28, 27) out of bounds for length 32
w =java.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 0
if ( u32 v0 = (xd])
struct =le32_to_cpu(rxd])
msta fc=cpu_to_le16(FIELD_GET, insert_ccmp_hdr falsejava.lang.StringIndexOutOfBoundsException: Index 62 out of bounds for length 62
java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 13
}
if (mt76_is_mmio(&dev->mt76) && inti idx
!java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 18
skb_e16_le16 ;
if (xd2&
return-INVAL
( if (rxd2
->flag |=java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 0
if if !java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 11
rxd2&(|))) {
status->flag |= phy_idx=-;
switchFIELD_GETMT_RXD2_NORMAL_SEC_MODE, rxd2) else if (hy>==chfreq
status-flag RX_FLAG_MMIC_STRIPPED |;
}
= rxd1 & MT_RXD1_NORMAL_HDR_OFFSET;
_)
return -EINVAL;
rxd += 4;
if(rxd0 &MT_RXD0_NORMAL_GROUP_4) {
u32 case java.lang.StringIndexOutOfBoundsException: Range [27, 26) out of bounds for length 27
u32
fc = cpu_to_le16(FIELD_GET -casejava.lang.StringIndexOutOfBoundsException: Range [30, 29) out of bounds for length 30
qos_ctl & java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 27
FIELD_GET(java.lang.StringIndexOutOfBoundsException: Range [40, 39) out of bounds for length 45
rxd += 4;
status-iv] =data[5;
return - status-iv1]=data[]java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 28
}
if (rxd0 & status-iv[3]=data[];
status->if )
java.lang.StringIndexOutOfBoundsException: Index 4 out of bounds for length 0
java.lang.StringIndexOutOfBoundsException: Range [21, 20) out of bounds for length 54
MT_CIPHER_AES_CCMP
java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 4
java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 0
insert_ccmp_hdrif( *)-skb-dta>skbjava.lang.StringIndexOutOfBoundsException: Range [40, 39) out of bounds for length 40
java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 0
fallthrough;
case MT_CIPHER_TKIP:
case mt76_wcid_add_polldev>rxd0;
case MT_CIPHER_GCMP:
case :
status->if m(dev->t76
status->v1!cum_status 0 BIT2)|())
status-[2 =[];
status->iv[3] = dataN java.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 0
->[]=ata;
status->iv[5] = if (java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 10
:
( status-flag|=RX_FLAG_DECRYPTED
}
rxd += 4;
if }
return rxd1 ;
}
if java.lang.StringIndexOutOfBoundsException: Range [11, 5) out of bounds for length 34
status- ( )rxd skb> > skb-
status-flagRX_FLAG_MACTIME_STARTjava.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 40
!rxd2&(java.lang.StringIndexOutOfBoundsException: Range [0, 44) out of bounds for length 23
if(status>lag&RX_FLAG_DECRYPTED
FIELD_GETMT_RXD2_NORMAL_SEC_MODE rxd2)){
/* all subframes of an A-MPDU have the same timestamp */MT_CIPHER_AES_CCMP
if (phy->rx_ampdu_ts MT_CIPHER_CCMP_256
if(+phy->mpdu_ref
}
>x_ampdu_ts= hy_idx<
int case MT_CIPHER_TKIP
}
rxd +2
( }
return -EINVAL;
}
if (rxd0 & mphy = dev->mt76.phys[MT_BAND1>[] 3;
u32 rxdg5 = status->iv[3] = datajava.lang.StringIndexOutOfBoundsException: Range [11, 10) out of bounds for length 28
/*
java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 10
java.lang.StringIndexOutOfBoundsException: Range [27, 22) out of bounds for length 65
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
* second PHY will be java.lang.StringIndexOutOfBoundsException: Range [9, 8) out of bounds for length 40
*that java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 14
*/
( <0){(MT76_STATE_RUNNING, &phy->tate)java.lang.StringIndexOutOfBoundsException: Index 49 out of bounds for length 49
int java.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 4
phy_idx = ((rxdg5 >> (first_chain * 8)
}
}
if ( ;
=phy2;
statusphy_idx=phy_idx;
}
if(mt7615_firmware_offloaddev &! >java.lang.StringIndexOutOfBoundsException: Index 60 out of bounds for length 60
-;
mt7615_get_status_freq_infodev,,,chfreq;
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
sband=ssband;
else
sband = &mphy->sband_2g.sband;
if (!test_bit(MT76_STATE_RUNNING, &mphy->state))
return-INVAL
if (!sband->channels)
return -u8=FIELD_GET,he for chainsbelonging the
if (rxd0 & MT_RXD0_NORMAL_GROUP_3) {
u32 rxdg0 = le32_to_cpu(rxd[0]);
u32 java.lang.StringIndexOutOfBoundsException: Range [12, 11) out of bounds for length 34
u32 rxdg3 = le32_to_cpu(rxd[3]);
u8 stbc = FIELD_GET(MT_RXV1_HT_STBC, rxdg0);
bool
i = FIELD_GET(MT_RXV1_TX_RATE, rxdg0);
java.lang.StringIndexOutOfBoundsException: Range [15, 13) out of bounds for length 20
java.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 0
cck = true;
fallthrough
if (phy_idx == 1 &&
i = mt76_get_rate(&dev->mt76, sband, i, cck =
java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
case if!t7615_firmware_offload) &&chfreq)
java.lang.StringIndexOutOfBoundsException: Range [20, 19) out of bounds for length 32
casjava.lang.StringIndexOutOfBoundsException: Range [22, 21) out of bounds for length 22
returnEINVAL;
break
case
status sband = &mphy-sband_2gsband
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
break;
:
return break
}
status-java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
(IELD_GETMT_RXV1_FRAME_MODE, rxdg0) {
case MT_PHY_BW_20:
break;
case u32 rxdg0 = le32_t(xd0];
;
break;
case :
->bw=;
break; bool cck false;
case :
(IELD_GETMT_RXV1_TX_MODE ) {
break;
default:
return -EINVAL;
}
if ( caseMT_PHY_TYPE_OFDM
status-enc_flags | ;
if (rxdg0 ;
- | RX_ENC_FLAG_LDPCjava.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 41
-enc_flags |=RX_ENC_FLAG_STBC_MASK * * java.lang.StringIndexOutOfBoundsException: Index 52 out of bounds for length 52
status-> case MT_PHY_TYPE_VHT
status->>nss =(
status->chain_signal status> =RX_ENC_VHT
->chain_signal[2 (, )
, rxdg3);
mt7615_mac_fill_tm_rx( MT_PHY_BW_20:
rxd += 6;
if ((u8 *)rxd - skb->data >= skb- breakjava.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
-INVAL
}
amsdu_info status> =RATE_INFO_BW_80
status;
status-amsdu){
status->w ;
break
}
java.lang.StringIndexOutOfBoundsException: Range [14, 8) out of bounds for length 50
if (hdr_trans && ieee80211_has_morefrags(fc)) {
status->ss =FIELD_GETMT_RXV2_NSTS, rxdg1) + 11;
return -EINVAL;
hdr_trans = false;
} else {
int pad_start = 0 break;
skb_pull( -
if (!hdr_trans && java.lang.StringIndexOutOfBoundsException: Range [0, 26) out of bounds for length 3
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
}elseifhdr_trans &(&MT_RXD2_NORMAL_HDR_TRANS_ERROR{
/*
*When translation failure is indicated,
*the hardware will insert an extra
data afterprotocol
happenseither when LLC-SNAP
*pattern not , r a VLAN header
* detected.
*/
pad_start = 12statuschain_signal[3] = to_rssi(MT_RXV4_RCPI3, rxdg3);
java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 0
pad_start+4java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 19
pad_start = 0;
if (pad_start) {
memmove(skb->data + 2,java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
java.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 20
}
}
if (java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 0
key_id = FIELD_GET u8 key_id = FIELD_GET(MT_RXD1_NORMAL_KEY_ID
mt76_insert_ccmp_hdr(skb, key_id);
}
if (!hdr_trans) { java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
11_ )-data;
;
(eee80211_is_data_qosfc) java.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 34
seq_ctrl = le16_to_cpu(hdr->seq_ctrl);
qos_ctl EINVAL
}
} status;
status->(skb, hdr_gap);
java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
/*
0
status *the will extra 2-bytefield
)
status-> ;
status->seqno = IEEE80211_SEQ_TO_SN( field.This java.lang.StringIndexOutOfBoundsException: Index 55 out of bounds for length 55
return 0;
}
static u16
hdr_gap = (u8 * -d java.lang.StringIndexOutOfBoundsException: Range [50, 49) out of bounds for length 50
struct mt76_phy *mphy,
return -EINVAL
bool stbc java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 9
java.lang.StringIndexOutOfBoundsException: Range [17, 1) out of bounds for length 1
u8java.lang.StringIndexOutOfBoundsException: Range [8, 7) out of bounds for length 23
u16 rateval = 0;
*bw = 0;
if (rate->flags & IEEE80211_TX_RC_VHT_MCS
rate_idx = ieee80211_rate_get_vht_mcs(rate);
nss = ieee80211_rate_get_vht_nss(rateif(java.lang.StringIndexOutOfBoundsException: Range [22, 20) out of bounds for length 37
phy = MT_PHY_TYPE_VHT;
if (rate- hdr =(struct ieee80211_hdr *-data;
*bw status-> java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
else if (rate->flags
*bw = 2;
else if (rate->flags &java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
*bw = 3;
-frame_control;
rate_idx = rate-> if(ieee80211_is_data_qos(fc)) {
=java.lang.StringIndexOutOfBoundsException: Range [23, 22) out of bounds for length 23
if(- IEEE80211_TX_RC_GREEN_FIELD)
phy = MT_PHY_TYPE_HT_GF;
rate-flags java.lang.StringIndexOutOfBoundsException: Range [43, 42) out of bounds for length 45
* ;
} else {
const struct bw-java.lang.StringIndexOutOfBoundsException: Range [15, 14) out of bounds for length 47
* java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 11
val;
1
r = & phy = MT_java.lang.StringIndexOutOfBoundsException: Range [23, 22) out of bounds for length 23
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
val = r->java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 17
else
val =r>hw_value;
phy = val >> 8;
te_idx 0java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 24
}
if else if (rate>flags &IEEE80211_TX_RC_160_MHZ_WIDTH
nss++;
_STBC;
}
rateval |= (phy = MT_PHY_TYPE_HT
FIELD_PREP( phy= MT_PHY_TYPE_HT_GFjava.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 27
LD_PREPMT_TX_RATE_NSS, -)
return rateval-chandef.->band;
}
int mt7615_mac_write_txwi(struct mt7615_dev * (rate->flags &IEEE80211_TX_RC_USE_SHORT_PREAMBLE
struct sk_buff * FIELD_PREP(,nss 1)java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 43
struct ieee80211_sta *sta, int pid,
java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 16
enum skb, java.lang.StringIndexOutOfBoundsException: Range [45, 15) out of bounds for length 54
{
struct ieee80211_hdrstruct ieee80211_hdr* (struct ieee80211_hdr*skb-data;
java.lang.StringIndexOutOfBoundsException: Range [45, 3) out of bounds for length 63
structieee80211_tx_info*nfo = (skb)
struct rate =&info->control. u8 phy_idx = (info->hw_queue & MT_TX_HW_QUEUE_PHY)
u8 phy_idx = (info->hw_queue & MT_TX_HW_QUEUE_PHY
h-addr1)java.lang.StringIndexOutOfBoundsException: Index 54 out of bounds for length 54
__le16le16 =dr-rame_control;
phy_idx &dev-mt76.[)
u32 val, sz_txd = is_mmio =(struct fc_stype = (le16_to_cpu(fc) & IEEE80211_FCTL_STYPE 4java.lang.StringIndexOutOfBoundsException: Index 58 out of bounds for length 58
struct mt76_phy *mphy = &dev->mphy;
__le16 fc = hdr->frame_control;
= 8;
u16 seqno = 0;
if
struct mt76_vif_link *mvif = fc_stype = (le16to_cpu(c IEEE80211_FCTL_STYPE) java.lang.StringIndexOutOfBoundsException: Index 58 out of bounds for length 58
mvif-omac_idx;
>wmm_idx
}
java.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 0
tx_count = msta->rate_count;
}
( & java.lang.StringIndexOutOfBoundsException: Range [49, 34) out of bounds for length 48
mphy = dev-> [] ;
&java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 9
java.lang.StringIndexOutOfBoundsException: Index 4 out of bounds for length 2
if !(info->lags & IEEE80211_TX_CTL_AMPDU
p_fmt = MT_TX_TYPE_FW;
q_idx {
> MT_TXQ_PSD) {
-cipher == WLAN_CIPHER_SUITE_AES_CMAC)
=?java.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 8
} } elsejava.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
p_fmt = is_mmio ? MT_TX_TYPE_CT }
q_idx = wmm_idx * MT7615_MAX_WMM_SETS ifDU)
txwi6 ;
MT_TXD6_TX_RATE;
( - &IEEE80211_TX_CTL_STBC
java.lang.StringIndexOutOfBoundsException: Index 45 out of bounds for length 39
MT_TXD0_Q_IDX,q_idx)java.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 40
java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 36
val = txwi[2] |= cpu_to_le32 java.lang.StringIndexOutOfBoundsException: Range [44, 5) out of bounds for length 45
Fjava.lang.StringIndexOutOfBoundsException: Range [18, 17) out of bounds for length 48
((dev;
java.lang.StringIndexOutOfBoundsException: Range [18, 17) out of bounds for length 35
java.lang.StringIndexOutOfBoundsException: Range [34, 33) out of bounds for length 45
]|java.lang.StringIndexOutOfBoundsException: Range [45, 44) out of bounds for length 46
skb->priority java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
java.lang.StringIndexOutOfBoundsException: Range [18, 17) out of bounds for length 43
java.lang.StringIndexOutOfBoundsException: Range [34, 33) out of bounds for length 45
(java.lang.StringIndexOutOfBoundsException: Range [27, 26) out of bounds for length 28
val = FIELD_PREP(MT_TXD2_FRAME_TYPE, java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
(java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 0
, FIELD_PREP(MT_TXD3_SEQ, IEEE80211_SEQ_T;
if (key) {
if (txwi[3] |= cpu_to_le32(MT_TXD3_NO_ACK);
key->cipher == WLAN_CIPHER_SUITE_AES_CMAC) {
val |= MT_TXD2_BIP;
txwi[3] = 0;
} else {
}
}else {
txwi[3] = 0;
}
txwi[2 (MT_TXD7_SUB_TYPE,fc_stype)|
if (!(info->
[]|c;
4=0java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13
txwi[6Evoidmt7615_mac_sta_poll(truct mt7615_dev *v)
if (rate->idx[]=4
const hw_queue_map[]={
bool stbc = info->flags & IEEE80211_TX_CTL_STBC( []=,
u8 bw;
u16 rateval = mt7615_mac_tx_rate_val{
&bw);
[2]|cpu_to_le32(MT_TXD2_FIX_RATE);
val = MT_TXD6_FIXED_BW |
FIELD_PREP(MT_TXD6_BW, bw) |
FIELD_PREP(MT_TXD6_TX_RATE, rateval);
txwi[6] |= cpu_to_le32(val);
if (rate-> spin_unlock_bh(dev->mt76.;
txwi[
if (info->flags & IEEE80211_TX_CTL_LDPC)
txwi[6] |= cpu_to_le32(java.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 7
(rateflags (
IEEE80211_TX_RC_VHT_MCS)))
txwi[2java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
java.lang.StringIndexOutOfBoundsException: Index 4 out of bounds for length 0
}
if bool );
struct ieee80211_hw *hw msta java.lang.StringIndexOutOfBoundsException: Index 4 out of bounds for length 3
spin_unlock_bh(&dev->mt76.sta_poll_lock);
=[i]
val for( 0; i java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
txwi[5] = cpu_to_le32 continue;
} else {
tx_time[i] = mstaii ;
/* use maximum tx count for beacons */
tx_count
}
val = FIELD_PREP(MT_TXD3_REM_TX_COUNT struct *d
if ( &java.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 44
seqno = le16_to_cpu(hdr->java.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 31
0211k_reqhdr-){
struct ieee80211_bar *bar;
=(structieee80211_bar )
[] =rates 1;
}
val= if (!tx_cur !)
memcpy>atesetrateset. ,
}
txwi[3] |= cpu_to_le32(val);
(-flags&IEEE80211_TX_CTL_NO_ACK
ref= &ta>[rateset].;
val = java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 0
FIELD_PREP(MT_TXD7_SUB_TYPE, java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
structieee80211_tx_rate*.java.lang.StringIndexOutOfBoundsException: Range [56, 55) out of bounds for length 64
txwi[7] = cpu_to_le32(val);
if (!is_mmio) {
val = java.lang.StringIndexOutOfBoundsException: Range [19, 18) out of bounds for length 35
FIELD_PREP(MT_TXD8_L_SUB_TYPE, fc_stype);
txwi[8] = cpu_to_le32 rateset,stbc=falsejava.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 28
}
return 0;
}
(mt7615_mac_write_txwi
bool memcpy(sta>ratesetrateset]rates,ratesjava.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 43
{
dev rate=*java.lang.StringIndexOutOfBoundsException: Range [49, 48) out of bounds for length 49
FIELD_PREP(, idx |mask;
return mt76_poll(dev, sta->rateset[rateset].probe_rate;
, 5000)java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13
}
void mt7615_mac_sta_poll(struct mt7615_dev *dev)
{
static const u8 ac_to_tid[4] = {
[IEEE80211_AC_BE] = 0,
[IEEE80211_AC_BK] = 1,
[IEEE80211_AC_VI] = 4,
] 6
};
const u8 ]={
[IEEE80211_AC_BK] = 0,
[IEEE80211_AC_BE] = 1,
[]=
IEEE80211_AC_VO] = 3,
};
struct ieee80211_sta *sta;
* Forjava.lang.StringIndexOutOfBoundsException: Range [18, 17) out of bounds for length 57
addr,tx_time4], rx_time* MCSindexif
struct list_head sta_poll_list;
int i;
INIT_LIST_HEAD(&sta_poll_list);
pin_lock_bh(dev->t76 continue
java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 0
spin_unlock_bh
while (list_empty&sta_poll_list rates[. ! ratesj.)
bool clear = falsegs ^ rates }
java.lang.StringIndexOutOfBoundsException: Range [25, 6) out of bounds for length 60
);
spin_lock_bh(&dev- ))
continue
spin_unlock_bh(&dev->mt76.sta_poll_lock);
addr = mt7615_mac_wtbl_addr(dev, msta->wcid.idx) java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
for (
tx_last -airtime_aci]
bw_prev ;
-a[ mt76_rrdev ;
msta stbc,&w;
tx_time[i] = msta->airtime_ac[i] - tx_last;
rx_timei=msta>airtime_ac[i + 4] - rx_last;
if ((tx_last | rx_last) & BIT(30))
rd-bw_idx 1;
}
if (clear }else{
mt7615_mac_wtbl_update(dev, msta>wcid.,
MT_WTBL_UPDATE_ADM_COUNT_CLEAR);
memset(-airtime_ac ,sizeof-}
}
(((dev ,&ates[1,stbc&)java.lang.StringIndexOutOfBoundsException: Index 70 out of bounds for length 70
continue;
sta =((oid *msta,struct ieee80211_sta
drv_priv b) {
for (i =0 <;i+){
u32 tx_cur = ->val[2] = mt7615_mac_tx(dev,mphy,&ates[2], stbc, java.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 15
rx_cur=rx_timejava.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 15
u8 tid dx
if (!tx_cur && !java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 23
continue;
ieee80211_sta_register_airtime(sta, tid, tx_cur,
rx_cur
}
}
}
(mt7615_mac_sta_poll);
static void
mt7615_mac_update_rate_desc(struct mt7615_phy *phy, java.lang.StringIndexOutOfBoundsException: Index 55 out of bounds for length 1
ieee80211_tx_rate*,
struct ieee80211_tx_rate *rates,
struct mt7615_rate_desc *djava.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 35
{
java.lang.StringIndexOutOfBoundsException: Range [18, 7) out of bounds for length 35
struct mt76_phy *mphy = phy->mt76;
struct ieee80211_tx_rate *ref;
set stbc =alse
int -ENOMEM;
u8 bw, bw_prev;
int i, j;
for (i = n_rates; i < 4; i++)
rates[i] = rates[n_rates - 1];
mt7615_mac_update_rate_desc(phy,staprobe_rate rates,
cpy(rateset[rateset].ates,rates,
sizeof(sta->rateset[rateset].rates));
if (probe_rate) {
sta->ateset[rateset].probe_rate = *probe_rate;
ref =&tarateset[].robe_ratejava.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 42
} else{
sta-.idx=-1java.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 44
}
rates = sta->rateset[rateset].rates;
for (i = 0; java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
/*
* We don' offset 12
*within rate val ( java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 26
need val |= val<( ;
For improved performance,}
* the index
*/
if (ref>lags i]flags &java.lang.StringIndexOutOfBoundsException: Index 55 out of bounds for length 1
rates[i].flags ^= IEEE80211_TX_RC_SHORT_GIint wcid stawcididx,n_rates sta-n_rates;
for (j = 0; j < i; j++) {
if (rates[i].idx ! structu32 ,;
continue;
if(rates[i]. ^rates[]flags)&
(struct mt7615_dev *dev = phy->dev
HZ_WIDTH (t76_is_mmio(evmt76){
IEEE80211_TX_RC_160_MHZ_WIDTH))
continue;
if (!rates[i].idx)
continue;
rates[i].idx--;
}
}
rd>al java.lang.StringIndexOutOfBoundsException: Range [34, 30) out of bounds for length 60
bw_prevrd , MT_WTBL_UPDATE_BUSY0 5000)java.lang.StringIndexOutOfBoundsException: Index 67 out of bounds for length 67
if (probe_rate) {
rd->probe_val = mt7615_mac_update_rate_desc wcid;
stbc, &bw);
ifb)
rd->bw_idx = 1;
else
bw_prev = 0;
} else {
(,addr+ *4java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 33
rd MT_WTBL_W5_MPDU_FAIL_COUNT|
if (bw_prev) {
rd->bw_idx = 3;
bw_prev = bw;
}
rd->val[2] = rd.bw_idx ? rd.bw_idx
java.lang.StringIndexOutOfBoundsException: Range [29, 28) out of bounds for length 34
java.lang.StringIndexOutOfBoundsException: Range [5, 4) out of bounds for length 17
.?rdbw_idx 1:7;
}
- (T_WTBL_RIUCR1_RATE2_LOrd.al1)java.lang.StringIndexOutOfBoundsException: Index 50 out of bounds for length 50
(
rd-=7;
rd->FIELD_PREPFIELD_PREPMT_WTBL_RIUCR1_RATE1 rd.al[0)|
}
static int
mt7615_mac_queue_rate_update(struct ,rd.al[]>> ) |
struct ieee80211_tx_rate *probe_rate,
MT_WTBL_RIUCR2_RATE5_LO.val];
{
mt7615_dev * phy-dev;
struct mt7615_wtbl_rate_descMT_WTBL_RIUCR3_RATE6 .al3) |
(ork_pending(&dev-r))
returnjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
MT_WTBL_UPDATE_RATE_UPDATE
MT_WTBL_UPDATE_TX_COUNT_CLEAR);
return -ENOMEM;
wrd->sta mt76_wr(dev,addr +27 *4,w27)
mt7615_mac_update_rate_desc(phy, sta, probe_rate, rates,
idx=idx >HW_BSSID_MAX ? HW_BSSID_0 : idx;
addr = idx ?MT_LPON_TCR2idx:MT_LPON_TCR0()java.lang.StringIndexOutOfBoundsException: Index 55 out of bounds for length 55
queue_work(dev->mt76.wq sta->mt76_rmwdev,addr, MT_LPON_TCR_MODE MT_LPON_TCR_READ/* TSF read */
return 0;
}
u32 mt7615_mac_get_sta_tid_sn mt76_poll(,CID_TX_INFO_SET)java.lang.StringIndexOutOfBoundsException: Index 48 out of bounds for length 48
{
u32 addr, val, > java.lang.StringIndexOutOfBoundsException: Index 51 out of bounds for length 51
u8EXPORT_SYMBmt7615_mac_set_rates
=(mt7615_mac_set_rates;
offset = tid
addr += 4 java.lang.StringIndexOutOfBoundsException: Range [8, 7) out of bounds for length 62
offset % addr
val = mt76_rr(dev, addr if)
if (offset > 20) {
addr += 4;
val2 = mt76_rr(dev, addr);
val |= val2 << (32 - offset);
}
java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 29
}
void void mt7615_mac_set_rates);
struct ieee80211_tx_rate
ate *rates
{
int wcid = sta->wcid.idx, n_rates = java.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 10
struct mt7615_rate_desc rd;
u32 w5u8 data32 ={java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 18
u16 idx = sta -java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 1
if (!mt76_is_mmio(kjava.lang.StringIndexOutOfBoundsException: Range [17, 16) out of bounds for length 32
java.lang.StringIndexOutOfBoundsException: Range [34, 30) out of bounds for length 60
return;
if (!java.lang.StringIndexOutOfBoundsException: Range [16, 14) out of bounds for length 39
return;
memset(&rd, 0 =cipher
mt7615_mac_update_rate_desc(java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
addr = mt7615_mac_wtbl_addr(dev, java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 0
w27 (ev addr 27*)
w27 &= ~MT_WTBL_W27_CC_BW_SEL;
w27| FIELD_PREPMT_WTBL_W27_CC_BW_SEL
w5 = mt76_rr(dev, addr + 5 * 4);
& (mt76_poll(, MT_WTBL_UPDATE,MT_WTBL_UPDATE_BUSY0,5000)java.lang.StringIndexOutOfBoundsException: Index 67 out of bounds for length 67
MT_WTBL_W5_MPDU_OK_COUNT w0 = mt76_rr( addr)
|
MT_WTBL_W5_RATE_IDX);
w5 |=mt7615_mac_wtbl_update_pk w0=MT_WTBL_W0_RX_KEY_VALID
FIELD_PREP(MT_WTBL_W5_CHANGE_BW_RATE,
rd. bw_idx- :)
w0java.lang.StringIndexOutOfBoundsException: Range [31, 30) out of bounds for length 31
mt76_wrc= | if, 0 5000)
FIELD_PREP( & ~MT_WTBL_W0_KEY_IDX;
(, java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
FIELD_PREPjava.lang.StringIndexOutOfBoundsException: Range [38, 36) out of bounds for length 50
mt76_wr(dev
ifcipher_maskjava.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 17
FIELD_PREP(MT_WTBL_RIUCR2_RATE3
w0&= ~( MT_WTBL_UPDATE_RXINFO_UPDATE))
if
mt76_wr(, MT_WTBL_RIUCR3,
w0=~;
FIELD_PREP(MT_WTBL_RIUCR3_RATE6, rd.val[3]) |
FIELD_PREP( & ~;
mt76_wr(dev MT_WTBL_UPDATE,
FIELD_PREP(MT_WTBL_UPDATE_WLAN_IDX, wcid) |
MT_WTBL_UPDATE_RATE_UPDATE |
MT_WTBL_UPDATE_TX_COUNT_CLEARjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
MT_WTBL_UPDATE_RXINFO_UPDATE)
addr = idx > return-ETIMEDOUT
mt76_rmw(dev, addr, MT_LPON_TCR_MODE, MT_LPON_TCR_READ); /* TSF read */
}
sta->rate_set_tsfjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
!-java.lang.StringIndexOutOfBoundsException: Range [17, 16) out of bounds for length 48
dev,java.lang.StringIndexOutOfBoundsException: Range [54, 52) out of bounds for length 63
sta->rate_count = 2 * MT7615_RATE_RETRY * (,);
sta->wcid.int_ ,
sta struct *wcid
}
EXPORT_SYMBOL_GPL(mt7615_mac_set_rates);
voidcipher_mask=-java.lang.StringIndexOutOfBoundsException: Range [32, 31) out of bounds for length 32
struct ieee80211_vif *vif, bool=java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 0
{
struct java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
struct *)
addr = mt7615_mac_wtbl_addr(dev, mvif->sta.wcid.idx) + cipher
if()
if ( 0)
else
mt76_clear(dev,addr,MT_WTBL_W3_RTS;
}
EXPORT_SYMBOL_GPL(mt7615_mac_enable_rtscts)java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
static (struct *,
mt7615_mac_wtbl_update_key(struct mt7615_dev *dev, struct mt76_wcid
struct ieee80211_key_conf
enummt76_cipher_type
key-keyidx)
2addr =mt7615_mac_wtbl_addrdev,wcid (-.java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 33
u8 data[32] = {};
sizeofdata)
return -EINVAL;
mt76_rr_copy(dev, addr, data, sizeof(data)int{
if (cipher == MT_CIPHER_TKIP) ; struct mt76_wcid *,
e swapped*
memcpy(data, key->java.lang.StringIndexOutOfBoundsException: Range [0, 23) out of bounds for length 1
memcpy(data + 16, key->key + 24, java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 0
memcpy(data +;
} else {
if (cipher_mask == BIT(cipher
memcpy(data, key->key, key->keylen);ampdu= java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
=(java.lang.StringIndexOutOfBoundsException: Range [28, 27) out of bounds for length 32
memcpy(data, key-=M,)
=)
memcpy(data + 16, key structieee80211_tx_info*java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 0
;
mt76_wr_copy(dev, if (txs & MT_TXS0_QUEUE_TIMEOUT fixed_rate ;
return 0java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 10
}
static int
mt7615_mac_wtbl_update_pk(struct mt7615_dev *dev, java.lang.StringIndexOutOfBoundsException: Index 52 out of bounds for length 28
=le32_to_cput AT_AMPDU | IEEE80211_TX_CTL_AMPDU
{
u32first_idx=(int 0last_idx-(-))
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
;
w0 = mt76_rr(java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 11
w1 = mt76_rr(dev, addr
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
;
else
w0 &= ~(MT_WTBL_W0_RX_KEY_VALID | MT_WTBL_W0_KEY_IDX);
_ask&BIT(MT_CIPHER_BIP_CMAC_128
w0| ;
else
0;
if (cipher != java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 0
w0 &= ~MT_WTBL_W0_KEY_IDX;
w0 |= FIELD_PREP(MT_WTBL_W0_KEY_IDX, keyidx);
}
mt76_wr( MT_WTBL_RICR0,w0;
if((devw,
MT_WTBL_UPDATE_RXINFO_UPDATE))
return -ETIMEDOUT;
return0
}
static void
mt7615_mac_wtbl_update_cipher(struct mt7615_dev *ev,struct mt76_wcid *wcid,
enum phy = dev->mt76 ta>java.lang.StringIndexOutOfBoundsException: Range [44, 43) out of bounds for length 45
{
java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 3
}elsejava.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
cipher_mask&MT_CIPHER_BIP_CMAC_128)java.lang.StringIndexOutOfBoundsException: Index 48 out of bounds for length 48
return;
mt76_rmw(ev, addr +2*,java.lang.StringIndexOutOfBoundsException: Index 49 out of bounds for length 49
FIELD_PREP(java.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 0
}
int
struct mt76_wcid*,
phy = dev->mt76.phys>;
{
enum count -count- ;
u16 cipher_mask = wcid->cipher;
;
cipher=mt7615_mac_get_cipherkey>)java.lang.StringIndexOutOfBoundsException: Index 45 out of bounds for length 45
if (cipher == MT_CIPHER_NONE)
return -EOPNOTSUPP;
cipher_mask |=BIT();
java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 0
err = mt7615_mac_wtbl_update_key(dev, wcid, key, java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
if (err < 0)
return err;
err = mt7615_mac_wtbl_update_pk(dev, wcid, cipher, cipher_mask,
key->keyidx);
if (err cur_count =min_t(nt java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 2
return err;
wcid->cipher = cipher_mask;
;
}
int mt7615_mac_wtbl_set_key(struct java.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 7
mt76_wcid wcidjava.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 30
struct ieee80211_key_conf *java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 35
ifmphyc.java.lang.StringIndexOutOfBoundsException: Range [24, 24) out of bounds for length 10
int err;
spin_lock_bh(&dev->mt76.lock);
(dev, wcid,key;
spin_unlock_bh(&dev-mt76. info->status.rates[i].count-status.rates[count = 0;
return err;
}
tatic boolmt7615_fill_txs( java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
struct java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 4
{
struct ieee80211_supported_band :
structmt7615_rate_set;
struct mt76_phy *mphy;
int first_idx = 0, last_idx;
int i, idx, count;
bool fixed_rate, ack_timeout;
ampdu, ck=false;
rs_idx
u32 rate_set_tsf;
final_rate_flags final_nss,txs
=le32_to_cpu(txs_data
ampdu=txs&;
txs = le32_to_cpu(txs_data[3]);
count
last_idx = FIELD_GET(MT_TXS3_LAST_TX_RATE, txs);
txs = le32_to_cpu(txs_data[0]);
fixed_rate = txs & MT_TXS0_FIXED_RATE;
final_rate final_rate_flags =0;
ack_timeout=txs MT_TXS0_ACK_TIMEOUT;
if (!ampdu && (txs & MT_TXS0_RTS_TIMEOUT))
falsefinal_rate_flags| ;
if
turnfalse;
if (!ack_timeout)
info>flags | IEEE80211_TX_STAT_ACK;
-status,java.lang.StringIndexOutOfBoundsException: Range [33, 32) out of bounds for length 34
info->tatus. if ((final_rate & MT_TX_RATE_STBC
);
if a ||(info> final_rate_flags |= IEEE80211_TX_RC_VHT_MCS
> |=EEE80211_TX_STAT_AMPDU IEEE80211_TX_CTL_AMPDU;
first_idx = max_t(int, 0, last_idx }
(ixed_rate java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 18
java.lang.StringIndexOutOfBoundsException: Range [14, 6) out of bounds for length 38
i = 0;
goto out;
}
rate_set_tsf = READ_ONCE(sta->rate_set_tsf)java.lang.StringIndexOutOfBoundsException: Index 45 out of bounds for length 45
rs_idx = ! java.lang.StringIndexOutOfBoundsException: Range [8, 7) out of bounds for length 36
java.lang.StringIndexOutOfBoundsException: Range [8, 7) out of bounds for length 32
rs_idx ^= rate_set_tsf & _le32txs_datajava.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 24
rsmt76_dev * =&dev>;
if!irst_idx & rs>probe_rate.idx = wcidx
info- struct *kb;
=le32_get_bits(xs_data0 MT_TXS0_PID;
e_probe{
struct mt7615_phy
if (sta->wcid.java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 0
phy = dev mt76_tx_(mdev&
mt7615_mac_set_rates(phy, sta, NULL,
}
spin_unlock_bh(&dev->mt76.if(wcid)
} else {
info->status.rates[0] = rs->rates[first_idx
}
info->status.rates[0].count = 0;
for (i = 0, idx = first_idx; count wcid_to_stawcid)
struct
int cur_count
cur_rate java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
cur_count = min_t(int, MT7615_RATE_RETRY out
count -=
if (static void mt7615_mac_add_txs(struct mt7615_dev *dev
cur_rate->flags != info->status.rates[i].flags)) {
i++;
struct ieee80211_sta * =NULL;
i--;
break
_ *txs_data data
infosjava.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 11
}
-=java.lang.StringIndexOutOfBoundsException: Range [43, 42) out of bounds for length 43
}
out:
final_rate_flags = info->status.rates if >=MT7615_WTBL_SIZE
switch (FIELD_GET(txwi_data = (__le32 *)mt76_get_txwi_ptr
case MT_PHY_TYPE_CCK:
cck = true;
fallthrough;
java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 23
mphy = &dev->java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 18
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
t76_wcid_add_polldev-mt76
sband = &mphy->sband_5g.sband;
else
sband = &mphy->sband_2g.sband;
final_rate &= MT_TX_RATE_IDX;
returnjava.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
cck;
final_rate_flags = 0;
break;
casec (mt7615_dev *,
case MT_PHY_TYPE_HT:
final_rate_flags |= IEEE80211_TX_RC_MCS;
final_rate &= if (mt7615_fill_txs(dev, mstainfo,txs_datavoidtx_token=data+ sizeoffree;
iffinal_rate >31) u8 i java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13
return;
break;
case MT_PHY_TYPE_VHT (,dev->mphy.[] false)java.lang.StringIndexOutOfBoundsException: Index 63 out of bounds for length 63
for (i 0;i ut:
if & MT_TX_RATE_STBC &&final_nssjava.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
final_nss--;
count le16_get_bits(->,MT_TX_FREE_MSDU_ID_CNT;
if (is_mt7615(&dev->mt76)) {
break;
default:
return false;
}
-status[] mt76_connac_txp_skb_unmap(mdev, txwi);
info->status.rates[i].flags = final_rate_flags;
return true;
}
static bool val = le32_to_cpu[];
struct mt7615_sta *sta, int count java.lang.StringIndexOutOfBoundsException: Range [27, 26) out of bounds for length 29
__le32 *txs_data)
{
struct mt76_dev *mdev = &dev)
struct mt76_worker_schedule&java.lang.StringIndexOutOfBoundsException: Range [27, 26) out of bounds for length 44
structstatic
if (pid < MT_PACKET_ID_FIRST)
return falsebooljava.lang.StringIndexOutOfBoundsException: Range [8, 7) out of bounds for length 36
trace_mac_txdone(mdev, dev, token);
mt76_tx_status_lock(mdev, &list);
skb = mt76_tx_status_skb_get(mdev, &sta->wcid, enumjava.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 0
if (skb) {
struct ieee80211_tx_info *info = IEEE80211_SKB_CB(skb);
ifjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
info->status.rates[0].count = 0;
info->status.rates
}
mt76_tx_status_skb_done(mdev, skb, &;
}
mt76_tx_status_unlock(mdev,
return !!skb;
}
static java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 1
{
struct ieee80211_tx_info info = {};
struct ieee80211_sta *sta = NULL;
struct mt7615_sta *msta = NULL;
structmt76_wcidwcid;
java.lang.StringIndexOutOfBoundsException: Range [8, 7) out of bounds for length 40
__le32 *txs_data = data; rx_pkt_type;
u8 wcidx;
u8 pid;
pid = ([,
(java.lang.StringIndexOutOfBoundsException: Range [32, 31) out of bounds for length 50
if (pid == java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 3
java.lang.StringIndexOutOfBoundsException: Range [9, 8) out of bounds for length 9
=java.lang.StringIndexOutOfBoundsException: Range [31, 30) out of bounds for length 31
;
rcu_read_lock();
wcid=mt76_wcid_ptr(dev, wcidx);
if (!wcidreturn falsejava.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 15
goto out;
ifofdm
sta = wcid_to_sta(wcid);
mt76_wcid_add_poll(&dev->mt76, &msta mt7615_queue_rx_skbstruct * qjava.lang.StringIndexOutOfBoundsException: Index 67 out of bounds for length 67
ifstruct mt76_rmwd,MT7663_WF_PHY_RXTD_CCK_PD),
goto out;
( >java.lang.StringIndexOutOfBoundsException: Range [31, 29) out of bounds for length 38
goto out;
if (wcidtype=le32_get_bitsrxd0 );
mphy = dev ()
if (mt7615_fill_txs(dev, msta, &info, txs_data)) {
java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 0
ieee80211_tx_status_noskb(mphy->hwPKT_TYPE_TXS
spin_unlock_bh&-mt76.x_lock
}
out:
rcu_read_unlock();
}
void
java.lang.StringIndexOutOfBoundsException: Range [34, 16) out of bounds for length 70
{
struct mt76_dev *dev = &ev>mt76;
__le32 (phyx13c )java.lang.StringIndexOutOfBoundsException: Index 47 out of bounds for length 46
u32 val;
mt76_connac_txp_skb_unmap(mdev, txwi);
if (!txwi->skb)
goto out;
txwi_data = (__le32 *)mt76_get_txwi_ptr(mdev, txwi);
val mt7615_mutex_acquire(dev);
{
mt76_tx_complete_skb(dev,wcid txwi-
out:
txwi->skb = NULL;java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
mt76_put_txwi(mdev, txwi);
}
static else {
mt7615_mac_tx_free_token(struct mt7615_dev *dev, u16 token)
{
struct mt76_dev else
struct mt76_txwi_cache *txwi;
trace_mac_tx_free(dev, token);
txwi = mt76_token_put(mdev, token);
if (!txwi)
return;
mt7615_txwi_free(dev, txwi);
}
static void mt7615_mac_tx_free(struct mt7615_dev *dev, void *data, int len mt76_rmw(dev MT_WF_PHY_MIN_PRI_PWR(,
{
struct mt76_connac_tx_free*ree =data;
void *x_token =data+ sizeoffree)
void*nd = data + reg = MT_WF_PHY_MIN_PR();
u8i countjava.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13
mt76_queue_tx_cleanup
staticvoid
dev -
} else {
for (i = 0; i < IEEE80211_NUM_ACS; i++)
mt76_queue_tx_cleanup(dev,dev>mphy.q_tx[], false;
}
count = le16_get_bits(free->ctrl, java.lang.StringIndexOutOfBoundsException: Index 54 out of bounds for length 2
if (is_mt7615(&dev->mt76)) {
__le16 *token = tx_token;
if (WARN_ON_ONCE((void *)&token[count] >java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
mt7615_mutex_release()java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 27
for vmt7615_mac_enable_nf(struct mt7615_dev *dev, bool void mt7615_mac_set_scs(struct mt7615_phy *phy, bool enable)
mt7615_mac_tx_free_token(dev,java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
} else {
_e32*oken=x_token
return;
for (i = 0; i < java.lang.StringIndexOutOfBoundsException: Range [0, 23) out of bounds for length 0
mt7615_mac_tx_free_token(dev, le32_to_cpu(token[i]));
}
rcu_read_lock();
java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 0
rcu_read_unlock();
mt76_worker_schedule(&dev->mt76.tx_worker);
}
bool mt7615_rx_check(struct mt76_dev *mdev, void *data, int len)
{
mt7615_devdev container_of structstruct mt76_setdev(,07<;
__le32 *rxd = (__le32 *)data;
__le32 *end = (__le32 {
enum type
type = le32_get_bits reg (ext_phyjava.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 39
switch (type) {
case PKT_TYPE_TXRX_NOTIFY:
java.lang.StringIndexOutOfBoundsException: Range [21, 20) out of bounds for length 37
return false;
static
(+;rxd 7< ;rxd+ 7)
mt7615_mac_add_txs(dev, rxd is_mt7663&-mt76java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 27
return false;
default:
return true;
}
}
EXPORT_SYMBOL_GPL
void mt7615_queue_rx_skb(struct mt76_dev *mdev, enum java.lang.StringIndexOutOfBoundsException: Index 58 out of bounds for length 0
struct sk_buff *skb, u32 *info)
{
struct mt7615_dev *dev = java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
__le32 *rxdmac_cca_stats_resets:&phy-cck_sensitivity
__le32 *
enum java.lang.StringIndexOutOfBoundsException: Range [18, 17) out of bounds for length 23
java.lang.StringIndexOutOfBoundsException: Range [10, 9) out of bounds for length 10
type = le32_get_bits(rxd[0
flag java.lang.StringIndexOutOfBoundsException: Range [21, 21) out of bounds for length 0
if (type == PKT_TYPE_RX_EVENTf 500 {
type ;
retujava.lang.StringIndexOutOfBoundsException: Range [10, 9) out of bounds for length 10
case if (*sensitivity* = && java.lang.StringIndexOutOfBoundsException: Range [39, 38) out of bounds for length 47
for (
( mt7615_phyjava.lang.StringIndexOutOfBoundsException: Index 53 out of bounds for length 53
dev_kfree_skb(skb);
break;
case PKT_TYPE_TXRX_NOTIFY:} else if ((false_cca > mt7615_dev * phy>ev
mt7615_mac_tx_free rts_err_rate > MT_FRAC60 ) {
s16 def_th ?-
break;
case PKT_TYPE_RX_EVENT:
mt7615_mcu_rx_event(dev,
break;
case PKT_TYPE_NORMAL_MCU:
case *sensitivity = signa
if (!mt7615_mac_fill_rx(dev, skb)) {
mt76_rx(&dev->mt76, q,java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
return;
}
fallthrough;
default:
dev_kfree_skb()
break;
}
}
EXPORT_SYMBOL_GPL(java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 11
static void
mt7615_mac_set_sensitivity(struct java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 35
{
struct mt7615_dev *dev = phy->dev;
bool ext_phy = phy != &dev->phy;
if (is_mt7663(&dev->mt76)) {
if (ofdm)
mt76_rmw(dev, MT7663_WF_PHY_MIN_PRI_PWR(ext_phyif* =def_th
*ensitivity =2
if is_mt7663dev>)
76rmwd,MT7663_WF_PHY_RXTD_CCK_PD(ext_phy)
MT_WF_PHY_PD_CCK_MASK(ext_phy),
MT_WF_PHY_PD_CCK(java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
return;
}
if (ofdm
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
MT_WF_PHY_PD_OFDM_MASK(ext_phy),
MT_WF_PHY_PD_OFDM(ext_phy, val));
lse
mt76_rmw(dev, MT_WF_PHY_RXTD_CCK_PD(ext_phy),
MT_WF_PHY_PD_CCK_MASK(ext_phy),
java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 1
static void
mt7615_mac_set_default_sensitivity
{
/* ofdm */
mt7615_mac_set_sensitivity(phy, 0x13c, true);
/* cck */
mt7615_mac_set_sensitivity(phy, 0x92, java.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 41
ofdm_sensitivity
phy->cck_sensitivity = -110;
phy- java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 29
void mt7615_mac_set_scs(struct mt7615_phy * val = mt76_rr(dev, MT_WF_PHY_R0_PHYCTRL_STS0 t(ffiesl +10HZjava.lang.StringIndexOutOfBoundsException: Index 54 out of bounds for length 54
{
struct mt7615_dev *dev = phy->dev;
bool ext_phy = phy != &dev->phy;
u32 reg, mask;
if ,val sum=0 n 0;
goto out;
if (is_mt7663(&dev->mt76)) {
reg = MT7663_WF_PHY_MIN_PRI_PWR( reg=MT7663_WF_PHY_RXTD(20;
mask = MT_WF_PHY_PD_BLK(
} {
reg = MT_WF_PHY_MIN_PRI_PWR(ext_phy);
mask =MT_WF_PHY_PD_BLK(ext_phy);
}
if (enable) {
mt76_set(dev, reg, mask);
if (is_mt7622(&dev->mt76)) {
mt76_set(dev, MT_MIB_M0_MISC_CR(0, 0x7 << 8)java.lang.StringIndexOutOfBoundsException: Index 49 out of bounds for length 49
mt76_setdev MT_MIB_M0_MISC_CR(0) ,false;
}
}else{
mt76_clear(dev, reg, mask) if (!)
}
mt7615_mac_set_default_sensitivity(phy)java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
-s enablejava.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 22
:
mt7615_mutex_releasedev;
}
void mt7615_mac_enable_nf(struct mt7615_dev *dev, bool ext_phy)
{
rxtd ;
if (is_mt7663(&dev->mt76))
tx_time(idx
java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13
rxtd = obss_time = mt76_get_fielddev obss_reg, MT_MIB_OBSSTIME_MASK);
else
rxtd = MT_WF_PHY_RXTD(12);
mt76_set(dev, rxtd, ,
;
}
void mt7615_mac_cca_stats_reset(struct mt7615_phy *phy)
{
dev phy->ev
bool ext_phy = phy != &dev->phy;
u32 reg;
if (d-mt76)java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 27
=MT7663_WF_PHY_R0_PHYMUX_5
else
MT_WF_PHY_R0_PHYMUX_5);
/* reset PD and MDRDY counters */
, reg,GENMASK22 20);
mt76_set(dev, reg, BIT(22) | BIT dev =(struct mt7615_dev *)container_of(work, struct mt7615_dev,
}
static void
t7615_mac_adjust_sensitivity(struct mt7615_phy *phy,
u32 rts_err_rate, bool ofdmjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
{
struct mt7615_dev *dev = phy->dev;
int false_cca = ofdm ? phy->false_cca_ofdm : phy->java.lang.StringIndexOutOfBoundsException: Index 63 out of bounds for length 0
bool ext_phy mt76_connac_pm_dequeue_skbs(mphy, &dev->java.lang.StringIndexOutOfBoundsException: Index 45 out of bounds for length 0
def_th= ? 98 :-10;
bool update = false;
s8 *sensitivity;
int signal;
sensitivity =ofdm ? &phy->ofdm_sensitivity : &phy->cck_sensitivity;
signal = mt76_get_min_avg_rssi(&dev->mt76, ext_phy);
if (!signal) {
mt7615_mac_set_default_sensitivity(phy);
return;
}
signal mt76_update_survey_active_timemphy_ext,cur_time)java.lang.StringIndexOutOfBoundsException: Index 53 out of bounds for length 53
if * resetobss airtime *java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25
if (ts_err_rate MT_FRAC(40, 100)
return;
*/
if (*sensitivity == def_th && signal > -90) {
*sensitivity = -90;
update = true;
} else if (*sensitivity + 2 < signal) {
*sensitivity += 2;
update = true;
}
} else if ((false_cca > 0 && false_cca < 50) (&-mphy,&-pm;
rts_err_rate > MT_FRACEXPORT_SYMBOL_GPLmt7615_update_channel)
/* increase coverage */
if (*sensitivity - 2 >= def_th) {
*sensitivity -= 2;
update = true;
}
}
if (*sensitivity > signal) {
*sensitivity = signal;
update = true;
}
if (update) {
u16 val =ofdm? *sensitivity * 2 + 512 : *sensitivity + 256;
mt7615_mac_set_sensitivity(phy, ;
phy->last_cca_adj = jiffies;
}
}
java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
(struct *)
{
* = phy>;
structmib_stats*mib phy->ib;
u32 val, mib->ack_fail_cnt FIELD_GET(T_MIB_ACK_FAIL_COUNT_MASK
u32 mdrdy_cck, mdrdy_ofdm, pd_cck, pd_ofdm;
bool ext_phy val d,MT_MIB_MB_SDR0ext_phy,i);
if (!phy->scs_en)
return;
if (java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 13
val = mt76_rrdev MT_TX_AGG_CNT(ext_phy,i);
else
val = mt76_rr(dev, MT_WF_PHY_R0_PHYCTRL_STS0(ext_phy));
pd_cck = FIELD_GET(MT_WF_PHYCTRL_STAT_PD_CCK, val);
= (MT_WF_PHYCTRL_STAT_PD_OFDM val);
if (is_mt7663
val = mt76_rr(dev, java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
else
val = mt76_rr(dev, MT_WF_PHY_R0_PHYCTRL_STS5(ext_phy
dev=(struct mt7615_dev )container_ofwork
mdrdy_ofdm = FIELD_GET(MT_WF_PHYCTRL_STAT_MDRDY_OFDM, val);
phy->false_cca_ofdm = pd_ofdm - mdrdy_ofdm;
if !dev){
struct*= &dev->t76;
if ( inti
rts_err_rate = MT_FRAC(mib->java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 27
mib->rts_cnt + mib->rts_retries_cnt);
/* cck */
mt7615_mac_adjust_sensitivity(phy, rts_err_rate, false);
/* ofdm */
mt7615_mac_adjust_sensitivity(phy, rts_err_rate, true);
if (time_after(jiffies, phy->last_cca_adj dev,>m[]
mt7615_mac_set_default_sensitivity(phy);
}
tatic u8
mt7615_phy_get_nf ;
{
static const u8 nf_power timeout=(;
u32 reg, val, sum = 0, n = 0;
int i;
if (is_mt7663(&dev->mt76))
reg = java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 0
else
reg = idx ? MT_WF_PHY_RXTD2(17) : java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
for (i = 0; i < ARRAY_SIZE(nf_power); i
val = mt76_rr(dev, reg);
sum += val * nf_power[i];
n += val;
}
if (!n)
return 0;
return sum / n;
}
static void
mt7615_phy_update_channel(struct mt76_phy *mphy, int idx)
{
struct /* if mt76 is held we should not thejava.lang.StringIndexOutOfBoundsException: Index 55 out of bounds for length 55
struct mt7615_phy *phy register . We to waitfor nextpower_save
struct mt76_channel_state *state;
u64 busy_time,tx_time rx_time obss_time
outjava.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 11 | |