products/Sources/formale Sprachen/C/LibreOffice/ucb/source/ucp/ext/   (LibreOffice Version 25.8.3.2©)  Datei vom 5.10.2025 mit Größe 2 kB image not shown  

Impressum mac.c   Sprache: C

 

// SPDX-License-Identifier: ISC
/* Copyright (C) 2019 MediaTek Inc.
 *
 *Author:Ryder Leeryderlee@com>
 *         Roy Luo <royluo@google.com>
 *         Felix Fietkau <nbd@ *         Roy Luo <royluo@google
>
 */


#.java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 30
nclude/java.lang.StringIndexOutOfBoundsException: Range [29, 27) out of bounds for length 30
#<h
java.lang.StringIndexOutOfBoundsException: Range [10, 8) out of bounds for length 19
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
#include "../ pulse_th ={110,10,-80, 405200 128  ,
#include " . ={
#nclude mac
#include "mcu.h"

 7 =1 0, 15,32, 28 0  .>

static const struct mt7615_dfs_radar_spec..
 pulse_th  ,10 80,  #mjava.lang.StringIndexOutOfBoundsException: Range [24, 22) out of bounds for length 25
 .radar_pattern = {
  [5] =  { 1, 0,  6, 32, 28, 0, java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
  . ={,10  ,5200128,
 [] {1,0,5, 32,28 0 27, ,445, 1}java.lang.StringIndexOutOfBoundsException: Index 55 out of bounds for length 55
 []={ 1, ,32 ,0 ,240,510,,1}
  [9] =  { 2   ,,8 , ,,510 ,   ,
  [10] = { 1, 1, 3=   ,32 ,,,, , 6={0  ,3228,0,,  ,,1 1 ,
[   ,1  0  ,,0, 14 823 2510 ,18 ,28 }
  [12= 1 ,0,0  0 ,, ,2510   27, ,24}
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
};

static .pulse_th  [ { ,,,, ,8232510  ,2732,24 }
 {,-,80 , ,128  ,
 .radar_pattern = {
 0   , 0    ,,   ,,,,1 java.lang.StringIndexOutOfBoundsException: Index 56 out of bounds for length 56
  [1] = { 1, 0, 12,  32, 28, 0, 17, 140,[   ,,9,32 0 ,   
  [2] = { 1, 0,  8,  32, 28, 0, 22, 190,  510, 1,  1 },
  [3] = []  ,0 ,32,,0 3990,4010,1   ,
[=1 ,9,255 ,0, 13 323 343,   ,},
 }
}

static const struct mt7615_dfs_radar_spec jp_radar_specsjava.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 31
 , 40,5200 , ,
 .radar_pattern = {
 ,
  [java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
  [2java.lang.StringIndexOutOfBoundsException: Range [24, 23) out of bounds for length 24
 3 ,,  ,3219051011}
 ]={,,9 ,280 ,508 , ,
   []={1,0,12 ,28, 0
  2 {1 ,,,,, ,5101  ,
}
} []=   ,0  ,32 ,  |!)

  ;
sta(  ;
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
java.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 2
 case
 java.lang.StringIndexOutOfBoundsException: Range [9, 8) out of bounds for length 25
 java.lang.StringIndexOutOfBoundsException: Range [31, 30) out of bounds for length 31
 java.lang.StringIndexOutOfBoundsException: Range [26, 25) out of bounds for length 26
 case case WLAN_CIPHER_SUITE_WEP40( java.lang.StringIndexOutOfBoundsException: Range [25, 26) out of bounds for length 25
   java.lang.StringIndexOutOfBoundsException: Range [29, 28) out of bounds for length 29
  /
   MT_CIPHER_BIP_CMAC_128java.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 32
 java.lang.StringIndexOutOfBoundsException: Range [0, 8) out of bounds for length 0
  mt76_rrdev,MT_MIB_SDR36();
 casejava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
 return 
 case java.lang.StringIndexOutOfBoundsException: Range [29, 28) out of bounds for length 29
  returndefault:
  WLAN_CIPHER_SUITE_GCMP_256
 returnjava.lang.StringIndexOutOfBoundsException: Range [28, 27) out of bounds for length 28
_java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 29
java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 24
 java.lang.StringIndexOutOfBoundsException: Range [9, 8) out of bounds for length 9
  java.lang.StringIndexOutOfBoundsException: Range [24, 23) out of bounds for length 24
 }
}

if  >java.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 14
    java.lang.StringIndexOutOfBoundsException: Range [17, 16) out of bounds for length 54
{
 *;
 void java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 9

   java.lang.StringIndexOutOfBoundsException: Range [19, 17) out of bounds for length 55
 if  java.lang.StringIndexOutOfBoundsException: Range [29, 26) out of bounds for length 53
 java.lang.StringIndexOutOfBoundsException: Range [9, 8) out of bounds for length 14

 if (!wcid->sta)
  return -mt76-  ktime_get_boottime)

java.lang.StringIndexOutOfBoundsException: Range [20, 19) out of bounds for length 51
if !-vifjava.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 15
 java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0

 returnjava.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
}

void mt7615_mac_reset_counters(java.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 1
{
 struct


 for (i = 0; i < 4; i++) {
  mt76_rr(dev, 
  mt76_rr  ! java.lang.StringIndexOutOfBoundsException: Range [8, 7) out of bounds for length 35
  -freq   u32 val, reg_offset;

 ->java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 9
6>urvey_time  )

/* reset airtime counters */

 }
 mt76_rr(dev, MT_MIB_SDR9(1    >->.han> =;

76rr(ev,(0)
  return

 mt76_rr  mt7615_mac_fill_tm_rx  ;
 java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 1

mt76_setdev ,);
 java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
}

_(    java.lang.StringIndexOutOfBoundsException: Range [24, 23) out of bounds for length 32
{
  ev ,
   cbwjava.lang.StringIndexOutOfBoundsException: Range [20, 19) out of bounds for length 46

 } else
  java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 0
 ( 48)
 u32  foe B()java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 18
       foe )
int,java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 18
chan=java.lang.StringIndexOutOfBoundsException: Index 67 out of bounds for length 67

 if(phy]  (T_RXV4_RCPI0rxv4;
  return;

 (is_5ghzjava.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13
  sifs = 16;
 else
 sifs= 10;

 if ( mt76_wrdevMT_TMAC_CDTR,cck +reg_offset;
  coverage_class = max_t(s16, dev->phy.coverage_class,
         )java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 27
  -testlast_ib_rssi[]=FIELD_GET(MT_RXV3_IB_RSSI rxv3)
  |MT_ARB_SCR_RX1_DISABLEjava.lang.StringIndexOutOfBoundsException: Index 53 out of bounds for length 53
}The doesnottranslate mac headerto.3  meshpoint *
  mt7615_phy *hy_ext=mt7615_ext_phydev)

 if()
  coverage_class = max_t(16,phy_ext- struct ethhdr *eth_hdr = (struct ethhdr * *  (truct  *-data+hdr_gap)
            coverage_class;
  mt76_set(_le32* (le32 *-dta
     val =MT7615_CFEND_RATE_DEFAULT;
 else
udelay1)

 offset=3 *;
 java.lang.StringIndexOutOfBoundsException: Range [0, 11) out of bounds for length 0
      FIELD_PREPMT_TIMEOUT_VAL_CCA, offset);
 mt76_wrif  (e32_get_bits(xd,MT_RXD1_NORMAL_ADDR_TYPE) !=
 mt76_wr( mt76_cleardev,MT_ARB_SCR

 mt76_wr!test_bit((v*msta-vifstructjava.lang.StringIndexOutOfBoundsException: Range [61, 59) out of bounds for length 71
  FIELD_PREP/* store the info from RXD and ethhdr to avoid being overridden */-band phy>.-and
 FIELD_PREP(, 2) 
  java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
 (,.=java.lang.StringIndexOutOfBoundsException: Range [33, 32) out of bounds for length 48

 if (phy->java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 1

 java.lang.StringIndexOutOfBoundsException: Range [5, 6) out of bounds for length 5
5java.lang.StringIndexOutOfBoundsException: Range [30, 29) out of bounds for length 30

java.lang.StringIndexOutOfBoundsException: Range [19, 15) out of bounds for length 70
 if (ext_phy)
  java.lang.StringIndexOutOfBoundsException: Range [29, 26) out of bounds for length 30
    java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 0
 else
  foe *=java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 14
 if )

}

static java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
(draddr3, ->h_destjava.lang.StringIndexOutOfBoundsException: Index 46 out of bounds for length 46
       java.lang.StringIndexOutOfBoundsException: Range [29, 28) out of bounds for length 48
 java.lang.StringIndexOutOfBoundsException: Range [5, 4) out of bounds for length 34
if!M -)&
 phy>last_rcpi1 = ,)
     !test_bit ether_addr_copy(.addr4,eth_hdr-h_source
  >test[3] java.lang.StringIndexOutOfBoundsException: Range [50, 49) out of bounds for length 57
  - =
  return;
java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2

  skb_pujava.lang.StringIndexOutOfBoundsException: Range [10, 9) out of bounds for length 52
 statusif(>_roto = cpu_to_be16ETH_P_AARP|
}

java.lang.StringIndexOutOfBoundsException: Range [11, 6) out of bounds for length 70
{
#CONFIG_NL80211_TESTMODE
 u32 rxv1 = else if (be16_to_cpuethhdrth_hdr=(ethhdr *(bdatajava.lang.StringIndexOutOfBoundsException: Index 65 out of bounds for length 65
 u32 rxv3 = le32_to_cpu(rxv[2]) _le32 rxd  _ 
 u32 rxv4 = le32_to_cpu(rxv[3] java.lang.StringIndexOutOfBoundsException: Range [8, 7) out of bounds for length 27
 u32 rxv5 = le32_to_cpu(rxv[4]);
  = u16 frame_control;
 u8 mode = 
s16         )
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0

 if (! return-INVAL
 /java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 11
   BIT;
  foe * if ( | !->vifjava.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25
 foe >=11;
}else{
  if (
   foe -= 4096;

  foe = 
 }

 -testlast_freq_offset;
 phy->test.last_rcpi[0] =  memcpy(skb_push(skb, sizeof(hdr)), &hdr, sizeof(hdr));
t_rcpi1  FIELD_GET(
 phy->est.ast_rcpi2]=java.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 0
 phy- ether_addr_copyhdr. ->ddr;
 phy->est.[0]  (hdr., sta>);
 ->est.[0] =FIELD_GET(T_RXV3_WB_RSSIrxv3;
#endif
}

/* The HW does not translate the mac header to 802.3 for mesh point */ mt7615_mac_fill_rx(  case0java.lang.StringIndexOutOfBoundsException: Index 8 out of bounds for length 8
g0_hdr_transstructsk_buff *, u16 hdr_gap
{
 structbreakjava.lang.StringIndexOutOfBoundsException: Index 8 out of bounds for length 8
dr=(ruct  *(>+dr_gap;
 struct mt7615_sta *mstastruct mt7615_phy;
 (l32*kb>java.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 35
 struct u32 rxd1 = le32_to_cpu(rxd1)
structieee80211_vif;
 struct   u32 csum_status = *(u32 ;
 u16 frame_control}

 if (, hdr_gap +java.lang.StringIndexOutOfBoundsException: Range [0, 31) out of bounds for length 13
    )
  return -EINVAL;

   chfreq,  ;
  seq_ctrl=0;

>
  return - ether_addr_copy(skb memset(tatus ,sizeofstatus;

 sta = container_of((void *)msta, 
  =container_of(void*msta-vif  ieee80211_vifdrv_priv)

  (skb_push(,IEEE80211_HT_CTL_LEN&[]
        java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 11
 (frame_control
.=cpu_to_le16le32_get_bitsrxd[6 ));
 hdr.duration_id = 0;

         IEEE802if(hy2>chfreq ==chfreq
 ether_addr_copy(.addr2, ->addr)
 switch (java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
  )) {
 java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
 vif>ss_conf.)java.lang.StringIndexOutOfBoundsException: Index 50 out of bounds for length 50
  break;
CTL_FROMDS:
 (.ddr3 eth_hdr-h_source)
  break;
 case java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 0
  java.lang.StringIndexOutOfBoundsException: Range [27, 17) out of bounds for length 46
  break;
 case IEEE80211_FCTL_TODS | IEEE80211_FCTL_FROMDS:
    return  struct mt76_rx_status *status = (struct mt76_rx_status *)skb->cb;
  ether_addr_copy(.addr4, struct *mphy=&ev-m76.;
  ;
 default:
  break;
 }

skb_pull(skb, hdr_gap 
 if mt7615_phy* status-flag |= RX_FLAG_ONLY_MONITOR;
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
 ether_addr_copy(skb,ETH_ALEN) bridge_tunnel_header)java.lang.StringIndexOutOfBoundsException: Index 65 out of bounds for length 65
 else if  u32 idx  (MT_RXD2_NORMAL_WLAN_IDX;
 ether_addr_copy(skb_push    MT_RXD0_NORMAL_IP_SUM | ;
 if(->cid {
 skb_pull(,2;

 if int
 int ,idx
    chfreq amsdu_info,qos_ctl 0

 if (__le16 fc= }
  __le16 qos_ctrl;

  qos_ctrl = if (java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 0
 memcpy(skb_push
         IEEE80211_QOS_CTL_LEN)
 }

 if (ieee80211_has_a4(hdr.frame_control))
skb_push   =0;
 else
  memcpyskb_pushskb sizeof(hdrjava.lang.StringIndexOutOfBoundsException: Range [33, 15) out of bounds for length 15

flag& (java.lang.StringIndexOutOfBoundsException: Range [40, 38) out of bounds for length 65
 java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 10
}

static  
{
  status  ;
struct * &ev->.;
 struct returnINVAL
 struct java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 0
 struct  MT_RXD2_NORMAL_ICV_ERR
 status> =;
 java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
u32 rxd0=e32_to_cpu(rxd[0]);
 u32 rxd1 = le32_to_cpu(rxd[1]);
 u32 rxd2 = le32_to_cpu(rxd[2]);
 status->cid=java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 0
java.lang.StringIndexOutOfBoundsException: Range [28, 26) out of bounds for length 31
  =java.lang.StringIndexOutOfBoundsException: Index 62 out of bounds for length 62
 u16hdr_gap;
 int  seq_ctrlseq_ctrl(java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 2
  ,idx
 u8 rxd =4;
 java.lang.StringIndexOutOfBoundsException: Range [13, 4) out of bounds for length 18
 __e16 _ fc =0java.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 15

 memset  -;

  if(java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 0

 phy2 = dev->mt76.
if(hy2
  
 if(tatus-> & !  MT_RXD2_NORMAL_CLM |MT_RXD2_NORMAL_CM{
   1java.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 15
 if p-chfreq = )
  phy_idx =  case MT_CIPHER_AES_CCMP > =RX_FLAG_MMIC_STRIPPED|RX_FLAG_MIC_STRIPPED;
 remove_pad & MT_RXD1_NORMAL_HDR_OFFSET;
  phy_idx = 1;RXD2_NORMAL_MAX_LEN_ERROR
 elseMT_RXD2_NORMAL_FRAG rxd2;
     fallthrough;

  & java.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 0
  return -  MT_CIPHER_TKIP_NO_MIC:

 hdr_trans =  case MT_CIPHER_GCMP:
if (hdr_trans & (rxd2 &MT_RXD2_NORMAL_CM   case MT_CIPHER_GCMP_256:
  return -EINVAL seq_ctrl  seq_ctrl=FIELD_GETMT_RXD6_SEQ_CTRL, v2);

 /* ICV error or CCMP/BIP/WPI MIC error */=[2;
 rxd2&MT_RXD2_NORMAL_ICV_ERR
  status->flag |= RX_FLAG_ONLY_MONITOR;

  status->iv[5] = data[0];
 idx =FIELD_GET(MT_RXD2_NORMAL_WLAN_IDX, rxd2   switch (FIELD_GET(MT_RXD2_NORMAL_SEC_MODE, rxd2))     breakjava.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 10
  }

  (tatus->rxd  --d =-len
  struct   return -INVAL;

  msta   (xd0  java.lang.StringIndexOutOfBoundsException: Range [0, 34) out of bounds for length 16
  (&-> status->timestamp = le32_to_cpu[0)java.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 42
 }  caseMT_CIPHER_GCMP_256

  (t76_is_mmio&dev>java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 0
    (um_status&BIT)|BIT(2)|BIT3))
  skb  -iv] =data3java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 28

 if (rxd2 & MT_RXD2_NORMAL_FCS_ERR)
  status  status-v =[1];

if (xd2java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
  status->flag |= RX_FLAG_MMIC_ERROR;

 if (FIELD_GET(MT_RXD2_NORMAL_SEC_MODE   break;
     !(   default
  -flag |=RX_FLAG_DECRYPTED

    phy java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
 }

remove_pad=  &MT_RXD1_NORMAL_HDR_OFFSET

 if (rxd2 & MT_RXD2_NORMAL_MAX_LEN_ERROR)
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0

 rxd += 4;
 if (rxd0 & java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 3
   v0
  u32 v2 = le32_to_cpu(rxd[2]);

  java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
  qos_ctl (MT_RXD6_QOS_CTL,v2)java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 43
 seq_ctrl = FIELD_GET( v2)java.lang.StringIndexOutOfBoundsException: Index 45 out of bounds for length 45

  rxd +=4;
 if (u8*rxd --data >skb>len)
   return=;
 }

 if java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
  * =(8 );

   (->  ) {
 switch((MT_RXD2_NORMAL_SEC_MODE,))java.lang.StringIndexOutOfBoundsException: Index 54 out of bounds for length 54
   case :
   MT_CIPHER_CCMP_CCXjava.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 27
  case MT_CIPHER_CCMP_256:
     if (!++phy->ampdu (+phy->)
    phy
    fallthrough phy-r =if( <){
  :
   case MT_CIPHER_TKIP_NO_MIC
       
    rxd + ;
     if ((u8 if( if ((u8
  statusiv java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 2
   statusiv[]datajava.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 28
    status->iv[3] = data[2];
    status->iv[4] = data[1];
    status->iv[5] = data[0];
   break;
    
   ;
   }
  }
  rxd += 4;
  if ((u8 *)rxd - skb    to outPHY thispacket wasreceived on.
   return -EINVAL;
 }

 if (rxd0 & MT_RXD0_NORMAL_GROUP_2) {
 status>  java.lang.StringIndexOutOfBoundsException: Range [34, 33) out of bounds for length 42
 status->flag |= RX_FLAG_MACTIME_START;

  if (!(rxd2 & (java.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 32
         MT_RXD2_NORMAL_NON_AMPDU
  java.lang.StringIndexOutOfBoundsException: Range [10, 9) out of bounds for length 41

   /* all subframes of an A-MPDU have the same timestamp */
   if   *
    if(hy_idx 0  f(!test_bitMT76_STATE_RUNNING, m->tate)
     phy->ampdu_ref++;
   }
  phy-rx_ampdu_ts=status>imestampjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0

   status->ampdu_ref = phy->java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
  returnEINVAL

  rxd=phy2;
   - java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 28
   !()& 
 }

 if (rxd0EINVAL
  u32 rxdg5 (dev mphy,status );

  /*
  sband = &mphy->sband_5g.sb m>.java.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 32
 to   -INVAL;
HY  noisevalue  the chains belongingto the
  u32  =le32_to_cpu(rxd[1];
   * that PHY.
 */

  if (phy_idx < 0) {
   int first_chain = ffs(phy2->mt76->chainmask) - 1;

   phy_idx = ((rxdg5 >> (first_chain * 8)) & :
  }
 }

  phy2)java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 28
 mphy   fallthrough;
  phy  caseMT_PHY_TYPE_OFDM
    break;
 }

  (!(dev &&chfreq != phy->chfreq)
  return -EINVAL

  java.lang.StringIndexOutOfBoundsException: Range [7, 6) out of bounds for length 25
(>    -;
  ;
 else
 =&>.;

 if (!java.lang.StringIndexOutOfBoundsException: Range [3, 1) out of bounds for length 9
  return case

 if (!sband->channels)
  return - switch((MT_RXV1_FRAME_MODE )java.lang.StringIndexOutOfBoundsException: Index 49 out of bounds for length 49

 if (rxd0   break;
  o_cpu([0];
  u32 rxdg1 =  status->bw = RATE_INFO_BW_40
  u32  MT_PHY_BW_80
  status>bw  RATE_INFO_BW_80
    =false

  i MT_PHY_BW_160
 switch((,rxdg0){
  casejava.lang.StringIndexOutOfBoundsException: Range [9, 8) out of bounds for length 9
   cck  }
   fallthrough;
  :
   i = mt76_get_rate(&dev status-> =RX_ENC_FLAG_SHORT_GI
 break
  case status>enc_flags =RX_ENC_FLAG_LDPC;
  case MT_PHY_TYPE_HT:
   status->encoding = RX_ENC_HT;
   if  status> =RX_ENC_FLAG_STBC_MASKstbc;
    return -EINVAL;
   break;
 :
 FIELD_GETMT_RXV2_NSTS, rxdg1) + 1;
  status-encoding  ;
    status status[] =to_rssiMT_RXV4_RCPI2rxdg3;
  default:
   return -EINVAL;
  }
  status->rate_idx = i;

  switch (FIELD_GET(MT_RXV1_FRAME_MODE,  status->chain_signal[3] = to_rssi(MT_RXV4_RCPI3
 casejava.lang.StringIndexOutOfBoundsException: Range [20, 19) out of bounds for length 20
  break;
  case MT_PHY_BW_40:
   status->bw = RATE_INFO_BW_40;
   break  return-;
  case MT_PHY_BW_80:
  status-bw= ;
   break;
  if(tatus-amsdu){
  b =RATE_INFO_BW_160
  break;
  default:
   return - hdr_gap = (u8 *)rxd - skb->data + 2 * remove_pad;
    header,

  if (rxdg0 & MT_RXV1_HT_SHORT_GI)
   status->enc_flags |= RX_ENC_FLAG_SHORT_GI;
  if*java.lang.StringIndexOutOfBoundsException: Range [19, 18) out of bounds for length 52
   status   * containinglength

  status->enc_flags >w java.lang.StringIndexOutOfBoundsException: Range [23, 22) out of bounds for length 55

  status->chains    *didmatch, if VLAN was
  status->chain_signal[0] = _160;
  status->chain_signal[1] = to_rssi( default
 status->java.lang.StringIndexOutOfBoundsException: Range [23, 22) out of bounds for length 58
  ->java.lang.StringIndexOutOfBoundsException: Range [23, 22) out of bounds for length 58

   if (get_unaligned_be16

  rxd +=  status  =4
  if ((u8 *    
java.lang.StringIndexOutOfBoundsException: Range [9, 1) out of bounds for length 3
 }

 skb_pull(skb, 2);
 status->amsdu = !!amsdu_info  java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3

  status->java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 0
  status->java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 2
}

 hdr_gap = (u8 *)rxd - 11_hdr*skb>
 if  (() {
  if ((skbjava.lang.StringIndexOutOfBoundsException: Range [50, 49) out of bounds for length 51
  return-;
   }
 } else {
  pad_start =0

  skb_pull;
  if (!hdr_trans }
   pad_start = ieee80211_get_hdrlen_from_skb(skb);
  } else
   /*
  return 0;
  *thehardware insert an  byte 
 *containing the length   * containing the data length after
  *type field Thishappens either when the LLC-SNAP
*pattern}{
 *detectedjava.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 15
 */

   pad_start = 12
   if  !java.lang.StringIndexOutOfBoundsException: Range [19, 16) out of bounds for length 36
    pad_start += 4;
   else
    pad_start=java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 9
    java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 0

 java.lang.StringIndexOutOfBoundsException: Range [16, 15) out of bounds for length 18
    *java.lang.StringIndexOutOfBoundsException: Range [19, 18) out of bounds for length 52
   skb_pull(skb, 2);
  }
 }

 ijava.lang.StringIndexOutOfBoundsException: Range [22, 20) out of bounds for length 37
  u8 key_id  java.lang.StringIndexOutOfBoundsException: Range [11, 10) out of bounds for length 55

  mt76_insert_ccmp_hdr(skb, key_id);
 }

 if (!hdr_trans) {
   *skb>data
  fc = hdr->frame_control;
  if (java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 6
  seq_ctrl =le16_to_cpu()
      =4;
   
 } else =;
 flag  java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
 }

 if (!status->wcid || !ieee80211_is_data_qos(skb_pull( )
  return 0;

 statusif  & !){
         ! u8 key_id = FIELD_GETjava.lang.StringIndexOutOfBoundsException: Range [47, 45) out of bounds for length 53
 status->qos_ctl = qos_ctl java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
-=(eq_ctrl;

 return 0;
}

static u16
mt7615_mac_tx_rate_val fc-java.lang.StringIndexOutOfBoundsException: Range [26, 25) out of bounds for length 26
         struct  mphyjava.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 31
         const struct ieee80211_tx_rate  }
         bool stbc, u8 -f =;
{
 u8 phy, nss,  if!>  rateflags java.lang.StringIndexOutOfBoundsException: Range [48, 47) out of bounds for length 48
 l =0;

 *bw = 0;

 if(>& IEEE80211_TX_RC_VHT_MCS) {
  rate_idx = ieee80211_rate_get_vht_mcs(rate);
   =(;
  phy           w=1java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 11
s&)
   * statu>  java.lang.StringIndexOutOfBoundsException: Range [46, 45) out of bounds for length 47
 if(ate>  
   *bw = 2;
  else if (rate->flags
 bw=;
 } else if (rate->flags & IEEE80211_TX_RC_MCS) {
  rate_idx = rate->idx;
  nss = 1 + (rate  =1;
PHY_TYPE_HT;
  r- &java.lang.StringIndexOutOfBoundsException: Range [48, 47) out of bounds for length 48
   phy = MT_PHY_TYPE_HT_GF;
  if (rate->flags & java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 23
   *bw = 1;
 } else {
  const struct ieee80211_rate *r;
 intband=mphy> =-java.lang.StringIndexOutOfBoundsException: Range [21, 20) out of bounds for length 21
  valjava.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 10

  nss = 1;
    m--wiphy>[]-[>]
  if (rate->flags   ra    ;
   val = r->hw_value_short *  ;
 
   val   rate>  java.lang.StringIndexOutOfBoundsException: Index 48 out of bounds for length 48

  phy = val >> 8;
  rate_idx = val &}nss-java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 43
 }

 if (stbc && java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 0
  ++java.lang.StringIndexOutOfBoundsException: Index 8 out of bounds for length 8
   val rh;
 }

 rateval |= (FIELD_PREP(MT_TX_RATE_IDX, rate_idx
 phy=>;
     (MT_TX_RATE_NSS -1);

 return rateval }
}

int mt7615_mac_write_txwistruct mt7615_dev *java.lang.StringIndexOutOfBoundsException: Range [49, 48) out of bounds for length 63
  rateval =MT_TX_RATE_STBC;
     struct ieee80211_sta *sta, int pid,
     struct ieee80211_key_conf *key,
     enum  = (FIELD_PREP(MT_TX_RATE_IDX, rate_idx) |
{
 structFIELD_PREP(MT_TX_RATE_MODE, phy) |
 u8 fc_type fc_stype,p_fmt,q_idx,omac_idx =0  =0java.lang.StringIndexOutOfBoundsException: Index 63 out of bounds for length 63
 struct ieee80211_tx_info *info = IEEE80211_SKB_CB(java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
 struct java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 1
 u8 phy_idx (info>hw_queue  MT_TX_HW_QUEUE_PHY > 2java.lang.StringIndexOutOfBoundsException: Index 57 out of bounds for length 57
bool(hdr->addr1;
 struct ieee80211_vif *vif = info->pid,
 bool is_mmio = mt76_is_mmio(&dev->mt76);
_SIZE :MT_USB_TXD_SIZE
 struct mt76_phy *mphy =    enum mt76_txq_id qid, bool beacon)
 __le16 fc = hdr-> struct  *nfoIEEE80211_SKB_CB;
 int tx_count = 8;
 u16  structieee80211_tx_rate*  java.lang.StringIndexOutOfBoundsException: Range [40, 39) out of bounds for length 58

 if (vif) {
  struct mt76_vif_link*mvif =(struct mt76_vif_link )->rv_priv;

  omac_idx = mvif->omac_idx;
  wmm_idx = mvif->wmm_idx;
 }

 if (sta) {
  struct mt7615_sta*msta =( bool multicast = is_multicast_ethedr>java.lang.StringIndexOutOfBoundsException: Index 54 out of bounds for length 54

 _fc=dr>rame_controljava.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 32
 }

if( & >MT_BAND1]java.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 41
  mphy = dev->mt76 seqno=0java.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 15

 fc_type = (le16_to_cpu(fc) & IEEE80211_FCTL_FTYPE) >> 2;
 java.lang.StringIndexOutOfBoundsException: Range [51, 9) out of bounds for length 58

 if (beacon) {
  p_fmt = MT_TX_TYPE_FW;
  java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
 } elsemt7615_sta*=(java.lang.StringIndexOutOfBoundsException: Range [36, 35) out of bounds for length 63
  p_fmt = is_mmio ? MT_TX_TYPE_CT tx_count=msta>;
  q_idx = phy_idx ? MT_LMAC_ALTX1 : MT_LMAC_ALTX0;
 }  } else
  p_fmtif(hy_idx& dev-java.lang.StringIndexOutOfBoundsException: Range [26, 25) out of bounds for length 41
 q_idx  int tx_count java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 18
   mt7615_lmac_mapping(dev, skb_get_queue_mapping(skb))java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0


val=f)&IEEE80211_FCTL_STYPE > ;
       FIELD_PREP
              FIELD_PREP
 al);

 val = MT_TXD1_LONG_FORMAT |
       FIELD_PREP(idx)|
       FIELD_PREP(MT_TXD1_HDR_FORMAT }else  qid> ) java.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 32
       FIELD_PREP(MT_TXD1_HDR_INFO,
    ieee80211_get_hdrlen_from_skb(skb)  omac_idx=mvif>
      FIELD_PREP(,
    skb->    p_fmt = is_mmio;
 
        q_idx =  q_idx = wmm_idx
 txwi[ val FIELD_PREP(, skb-len+sz_txd |

 FIELD_PREP(MT_TXD2_FRAME_TYPE java.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 30
       FIELD_PREP(MT_TXD2_SUB_TYPE, fc_stype)
 txwi[]=cpu_to_le32(al;
 if (java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
 if multicast&  if (multicast && ieee80211_is_robust_mgmt_frame
  key>ipher ==WLAN_CIPHER_SUITE_AES_CMAC){
   val |= MT_TXD2_BIP (,
]java.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 15
   
     skbpriority )|
  }
 } else {
  txwi[3] = 0;
 }
 txwi[2] = cpu_to_le32(val);

if((>lags )java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
  txwi[2] |(,fc_stype)

 txwi[4] = 0;
 txwi[6] = 0;

 if (rate->idx >= 0 && rate->count &&
     !(info->flags & java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 22
  bool stbc = info->flags & IEEE80211_TX_CTL_STBC;

  u16
    }java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9

  txwi[ (!(info->flags & IEEE80211_TX_CTL_AMP

 java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
        FIELD_PREP(MT_TXD6_BW, bw) |
java.lang.StringIndexOutOfBoundsException: Range [19, 18) out of bounds for length 45
  txwi[6] |=  val = FIELD_PREP  flags &;

  if (rate-u8java.lang.StringIndexOutOfBoundsException: Index 8 out of bounds for length 8
   txwi[6] |= cpu_to_le32(MT_TXD6_SGI);

ifi-f&FIELD_PREP ;
   txwi[6] |= cpu_to_le32(java.lang.StringIndexOutOfBoundsException: Range [0, 38) out of bounds for length 0

 (->   java.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 44
   java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
 (if (rate->flags & IEEE80211_TX_RC_SHORT_GI

 tx_count=rate->ount;
 }

      FIELD_PREP(MT_TXD1_WLAN_IDX ->dx java.lang.StringIndexOutOfBoundsException: Index 48 out of bounds for length 48
 

  val FIELD_PREP(MT_TXD1_HDR_INFO,
  if (!ieee80211_hw_check(hw if !r->lags&(IEEE80211_TX_RC_MCS ieee80211_get_hdrlen_from_skbskb)/2 |
       FIELD_PREP(  2 |cpu_to_le32(T_TXD2_BA_DISABLE;
  txwi[5] = cpu_to_le32(val);
 } else {
  txwi[5]=0java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 14
  /* use maximum tx count for beacons */
  tx_count = 0x1f;
 }

 val = FIELD_PREP(MT_TXD3_REM_TX_COUNT, FIELD_PREP(java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 0
if(nfo-flags FIELD_PREP(MT_TXD1_OWN_MAC omac_idx)java.lang.StringIndexOutOfBoundsException: Index 45 out of bounds for length 45
 seqno=  txwi[1] = cpu_to_le32val;

  if (eee80211_is_back_reqhdr-frame_control) {
   structieee80211_bar*;

   bar = (struct ieee80211_bar *)skb->data; txwi[]=;
   seqno = le16_to_cpu(bar->start_seq_num);
  }

  val |= MT_TXD3_SN_VALID |
O_SN(seqno);
 }

 txwivalMT_TXD3_REM_TX_COUNT, tx_count);

 if (info->flags &   (info-flags & ){
  java.lang.StringIndexOutOfBoundsException: Range [24, 6) out of bounds for length 41

 val  if ieee80211_is_back_req(hdr-frame_control) {
       struct ieee80211_bar *bar;
       FIELD_PREP(MT_TXD7_SPE_IDX, 0x18);
 txwi bar =(structieee80211_bar*skb->ata
 f (is_mmio java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 16
  val = FIELD_PREP(java.lang.StringIndexOutOfBoundsException: Range [1, 33) out of bounds for length 27
 FIELD_PREP(MT_TXD8_L_SUB_TYPE,fc_stype)
  txwi[8] = cpu_to_le32(val);
 }

return0;
}
EXPORT_SYMBOL_GPL(mt7615_mac_write_txwi);

bool mt7615_mac_wtbl_update(struct mt7615_dev *dev, int[]=cpu_to_le32(java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 28
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
 mt76_rmw(dev, MT_WTBL_UPDATE, java.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 29
  java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2

java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13
    0,
}

 mt7615_mac_sta_poll(truct *vjava.lang.StringIndexOutOfBoundsException: Index 48 out of bounds for length 48
{
 static const u8 ac_to_tid[4] = {
  [IEEE80211_AC_BE] = 0,
  [IEEE80211_AC_BK] = 1,
  IEEE80211_AC_VI =4,
 [
 };
 static u8   java.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 35
  [IEEE80211_AC_BK] = 0,
  [java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 1
  [IEEE80211_AC_VI2
  [IEEE80211_AC_VO] = 3,
 };
 struct ieee80211_sta *  FIELD_PREPMT_WTBL_UPDATE_WLAN_IDX idx mask;
 struct mt7615_sta * return mt76_poll(ev,,MT_WTBL_UPDATE_BUSY,
 u32 addr, tx_time[4], rx_time[4];
 struct list_head sta_poll_list;
int;

 INIT_LIST_HEAD(&sta_poll_list);
 spin_lock_bh(&dev->mt76.sta_poll_lock)txwi2]| cpu_to_le32java.lang.StringIndexOutOfBoundsException: Range [43, 41) out of bounds for length 43
 list_splice_init(&dev->mt76.sta_poll_list, &sta_poll_list);
 spin_unlock_bh(&dev->mt76.sta_poll_lock);

 java.lang.StringIndexOutOfBoundsException: Range [19, 6) out of bounds for length 38
  bool clear = false;

 msta = list_first_entry(&ta_poll_list java.lang.StringIndexOutOfBoundsException: Index 60 out of bounds for length 60
     wcid.poll_list);

  spin_lock_bh(&dev->mt76.sta_poll_lock);
  java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 0
  spin_unlock_bh&sta_poll_lock)java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 43

  addr = mt7615_mac_wtbl_addr(dev, msta->wcid.idx) + 19 * 4;

  for (i = 0; i < 4; i++, addr += 8) {
   u32 u32 addr, tx_time [4java.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 34
  = -airtime_ac[ +4;

   msta->airtime_ac[i] = mt76_rr(dev, addr);
   msta->airtime_ac[i + 4] =INIT_LIST_HEAD&ta_poll_list
   tx_time!>lags&IEEE80211_TX_RC_MCS|
   rx_time[i] = msta->airtime_ac[i + 4] - rx_last (&ev>mt76.sta_poll_list,&sta_poll_list;

   if ((tx_last | spin_unlock_bh(-mt76sta_poll_lock;
    clear = true;
  }

  if(lear) {
   java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 2
  MT_WTBL_UPDATE_ADM_COUNT_CLEAR
   memset(msta->airtime_ac, 0, sizeof(msta->airtime_ac));
 }

  if (!sta->cidsta)
   java.lang.StringIndexOutOfBoundsException: Index 8 out of bounds for length 0

  sta =  list_del_initmsta-wcid.poll_list)java.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 39
       drv_priv);
  for (i = 0; i < 4; i++) {
  u32   tx_timei;
   u32 rx_cur = rx_time[hw_queue_map[i]];
   java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 0

   if (! =>[java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 37
 java.lang.StringIndexOutOfBoundsException: Range [13, 12) out of bounds for length 13

   ieee80211_sta_register_airtime(sta, tid, tx_cur,
         ->rtime_ac]-tx_last
  }
 }
}
EXPORT_SYMBOL_GPL(mt7615_mac_sta_poll);

static void
mt7615_mac_update_rate_desc = 0x1f
       java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
       struct ieee80211_tx_rate *rates,
   mt7615_rate_desc*d)
{
 structif (info->flags&        MT_WTBL_UPDATE_ADM_COUNT_CLEAR
struct *phy=-mt76;
 struct ieee80211_tx_rate *ref }
 bool rateset, stbc = false;
 int n_rates = sta  !_is_bac-) java.lang.StringIndexOutOfBoundsException: Index 50 out of bounds for length 50
 u8 bw, bw_prev;
j;

 for (i  bar = struct *skb
 ratesi [n_rates-1]java.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 32

 rateset = !(sta->rate_set_tsf & BIT  |  &!rx_cur
(sta-r[rateset]rates,ratesjava.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 43
        sizeof(sta->rateset[rateset].  java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 0
 if (probe_rate) {
 -[]probe_rate  probe_rateif info-  )
   &->rateset[rateset.probe_rate;
 } else {
  sta->rateset[rateset].probe_rate.idx = -1;
  ref = &sta->rateset[rateset].ratesstaticvoid
 }

 rates = sta->rateset[rateset].rates;
tesetrates); i+ 
  /*     ieee80211_tx_rate *rates,
   * We don't     *dev >ev;
  rate.)
   * need to make sure thatjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
   * For improved performance, mt76_rmw(,MT_WTBL_UPDATE =*probe_rate;
   * decrementing the java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
 */

  if ( [IEEE80211_AC_VO= java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 23
   rates[i].staticconsthw_queue_map[  java.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 35

   =,
   if (rates[i] [java.lang.StringIndexOutOfBoundsException: Range [19, 18) out of bounds for length 24
    continue;
) &
       (IEEE80211_TX_RC_40_MHZ_WIDTH u32 [] decrementingthe ifnecessary
  java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
        IEEE80211_TX_RC_160_MHZ_WIDTH))
  ;

   if (!rates[i].idx)
   ;

    while !(&sta_poll_list if(java.lang.StringIndexOutOfBoundsException: Range [14, 12) out of bounds for length 36
 java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 21
 }

 rd->val[ }
 bw_prev java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2

 if (probe_rate) {
  rd p[=,)
         &)
  if (bw)
   rd->bw_idx            stbc, & ] -java.lang.StringIndexOutOfBoundsException: Range [33, 32) out of bounds for length 50
  else
   bw_prev =   = 
}java.lang.StringIndexOutOfBoundsException: Range [8, 7) out of bounds for length 9
  rd->probe_val  java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2

  mt7615_mac_tx_rate_val1,wjava.lang.StringIndexOutOfBoundsException: Index 70 out of bounds for length 70
  java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
  java.lang.StringIndexOutOfBoundsException: Range [23, 20) out of bounds for length 56
  bw_prev = bw;
 }

 rd_rate_valdev,, rjava.lang.StringIndexOutOfBoundsException: Range [55, 54) out of bounds for length 70
 if (bw_prev) {
  rd->bw_idx = 5;
  
 }

 rd->val[3] java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
 if(w_prev
  rd->bw_idx = 7;

 rd->
 rd->bw = bw;
}

static int
mt7615_mac_queue_rate_update(struct  java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
        struct ieee80211_tx_rate *
  rates)
{
 struct mt7615_dev {
  struct  probe_rate

 if (work_pending(&dev- struct mt7615_wtbl_rate_desc       struct mt7615_rate_desc *)
  return -EBUSY;

 java.lang.StringIndexOutOfBoundsException: Range [15, 14) out of bounds for length 41
(=;
returnjava.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 17

 wrd->sta  !java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
phy,sta probe_rate,rates
        &wrd
 list_add_tail wrd
 queue_work(dev-   (->java.lang.StringIndexOutOfBoundsException: Range [29, 28) out of bounds for length 43

 queue_wor(ev>wq,dev>) >java.lang.StringIndexOutOfBoundsException: Range [34, 22) out of bounds for length 49
}

  java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
{
 u32 addr, val, val2;
 u8 offset;

 addr =  u8 ;

 offset = tid * 12  =dev wcid  11  4java.lang.StringIndexOutOfBoundsException: Index 49 out of bounds for length 49
 addr += 4 * (offset /   =  offset/32;
 offset %= 32;

 val   the   )java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 26
 val >>= offset;

 if (offset > 20) {
  addr   *  * need to 2-)java.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 31
  val2 = mt76_rr *java.lang.StringIndexOutOfBoundsException: Range [18, 17) out of bounds for length 57
  val |= val2 << (32 - void mt7615_mac_set_rates  decrementingtheMCSifnecessary
 }

 return   java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
}

void java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 1
     struct ieee80211_tx_rate *probe_rate,struct  *  java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
  u32 w5, w2 ,,
{
  =sta>.idxn_rates=  (ilags^jflags
 ;
 struct       IEEE80211_TX_RC_80_M!&java.lang.StringIndexOutOfBoundsException: Range [24, 23) out of bounds for length 33
 w5,,addrjava.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 19
 u16 idx = sta->java.lang.StringIndexOutOfBoundsException: Range [0, 19) out of bounds for length 0

 if (!mt76_is_mmio(&java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 2
mt7615_mac_queue_rate_update,sta,probe_rate rates)
  return;
 }

 ,, ,5000)
  return;

 memset(&rd, 
addr = mt7615_mac_wtbl_addr;

addr  mt7615_mac_wtbl_addr(ev (java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
 w27 = mt76_rr  =java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 15
 w27 &=  w5=ev +  )java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 33
 }

 w5 = mt76_rr(dev, addr + 5  -java.lang.StringIndexOutOfBoundsException: Range [29, 28) out of bounds for length 30
 w5 &= ~(MT_WTBL_W5_BW_CAP|FIELD_PREPjava.lang.StringIndexOutOfBoundsException: Range [10, 9) out of bounds for length 15
java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 0
    )
  java.lang.StringIndexOutOfBoundsException: Index 4 out of bounds for length 0
  | MT_WTBL_W5_BW_CAP.bw |
       FIELD_PREP-bw_idx  5
   .bw_idx  rd -1 )java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 35

  rd FIELD_PREP,.val[]java.lang.StringIndexOutOfBoundsException: Index 50 out of bounds for length 50

 mt76_wr( >bw_idx =;
  java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
 java.lang.StringIndexOutOfBoundsException: Range [13, 12) out of bounds for length 47
  FIELD_PREP(MT_WTBL_RIUCR1_RATE2_LO, rd.

 mt76_wr(,MT_WTBL_RIUCR2,
  ,.[] >>8 |
  FIELD_PREP
  FIELD_PREP(mt76_wr(dev, MT_WTBL_RIUCR3,
 FIELD_PREP(, rd[2])

 mt76_wr(dev, MT_WTBL_RIUCR3,
 FIELD_PREP struct mt7615_dev*  =hy-dev;
  FIELD_PREP(T_WTBL_RIUCR3_RATE6,rd.al[]java.lang.StringIndexOutOfBoundsException: Index 47 out of bounds for length 47
  FIELD_PREP(MT_WTBL_RIUCR3_RATE7, rd. ifw&dev->ate_work

 mt76_wr(dev, MT_WTBL_UPDATE,
   FIELD_PREP
   wrd = kzalloc(sizeof( |
  java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 10

 mt76_wr(dev, java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 16

 = java.lang.StringIndexOutOfBoundsException: Range [26, 25) out of bounds for length 45
 1  ;

 mt76_rmw(dev, addr
 sta> ,java.lang.StringIndexOutOfBoundsException: Range [39, 37) out of bounds for length 72
 sta > =mt76_rr(java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 0

 if (!(sta->wcid.tx_info &  
 dev MT_WTBL_UPDATE)

;
 sta->wcid
 = !- * java.lang.StringIndexOutOfBoundsException: Index 51 out of bounds for length 51
}
OL_GPL)

void mt7615_mac_enable_rtscts(structaddr=YMBOL_GPL);
         struct ieee80211_vif *vif, bool enable)
{
struct mt7615_vif *mvif = (struct mt7615_vif *)vif->drv_priv;
 u32 addr

addrjava.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 1

if ( (enablejava.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 12
  
 else
  mt76_clear(dev, addr, MT_WTBL_W3_RTS);
}
mac_enable_rtscts;

static int
mt7615_mac_wtbl_update_key 
      struct ieee80211_key_conf *key,
      enum mt76_cipher_type cipher, u16 
{
 u32 mt7615_mac_wtbl_update_key  dev
data[  ;

ifk->())
  return EINVAL

 mt76_rr_copy( data] }java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 18
 ) {
  /* Rx/Tx MIC keys are swapped */
  memcpy(data, key->key, mt7615_mac_queue_rate_update(phy, sta, probe_rate, rates);
 (ata+16 >ey  24 )
  memcpy(data + 24, key->key + 16, 8);

  if (cipher_mask == BIT(cipher))
   memcpy(data,  memcpy(data + 16,k  24,8)
elseif(ipher! )
   memcpy(data, key->key, 16);
  ifjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
  memcpy  if (cipher_mask = BIT())
 }

 mt76_wr_copy(ev addr, data, sizeof(data));

 return 0;
}

static int
mt7615_mac_wtbl_update_pk(  = mt76_rrd, addr+27 *4;
     enum mt76_cipher_type cipher, u16 cipher_mask,

{
 u32 addr = java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 2

ifmt76_polldev MT_WTBL_UPDATE , 0 5000)
  return -ETIMEDOUT;

 w0 dev,addr)
 w1 = mt76_rr(dev, MT_WTBL_W5_MPDU_FAIL_COUNT

 if (cipher_mask)
   ;
 else
 w0 =~MT_WTBL_W0_RX_KEY_VALID MT_WTBL_W0_KEY_IDX rdbw_idx?rd.- :)
 if (  int keyidx
 =
 else
  w0 &= ~MT_WTBL_W0_RX_IK_VALID;

 if (ipher ! MT_CIPHER_BIP_CMAC_128||  (!mt76_poll(dev, MT_WTBL_UPDATE, MT_WTBL_UPDATE_BUSY)
 w0 = ~MT_WTBL_W0_KEY_IDX
  w0 |=  FIELD_PREP(T_WTBL_RIUCR1_RATE1rd.val[
 }

 mt76_wr(dev, MT_WTBL_RICR0(MT_WTBL_RIUCR1_RATE2_LO, rd.val[1]));
 ,

 if (java.lang.StringIndexOutOfBoundsException: Range [17, 16) out of bounds for length 17
       java.lang.StringIndexOutOfBoundsException: Range [38, 36) out of bounds for length 38
  return -ETIMEDOUT;

 dev, java.lang.StringIndexOutOfBoundsException: Range [29, 28) out of bounds for length 29
}

staticjava.lang.StringIndexOutOfBoundsException: Range [11, 12) out of bounds for length 11
mt7615_mac_wtbl_update_cipher(struct 
         ,java.lang.StringIndexOutOfBoundsException: Range [29, 28) out of bounds for length 29
{
 u32 addr =  mt76_wr(dev, MT_WTBL_RICR0;

 if mt76_wr,,)
     cipher_mask & ~BIT(MT_CIPHER_BIP_CMAC_128))
   mt76_poll(, MT_WTBL_UPDATE,MT_WTBL_UPDATE_BUSY, 0, 5000);

 mt76_rmw(dev, addr + 2 * 4, MT_WTBL_W2_KEY_TYPE,u32addr= mt7615_mac_wtbl_addr(dev, wcid->idx);
  FIELD_PREP(T_WTBL_W2_KEY_TYPE cipher)
}

int _mt7615_mac_wtbl_set_key(structmt7615_dev *dev
         mt76_wcid,
         struct java.lang.StringIndexOutOfBoundsException: Range [0, 34) out of bounds for length 1
{
 enum mt76_cipher_type cipher;
cipher_mask =wcid-cipher;
 int err;

 cipher  java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 0
 if(cipher = MT_CIPHER_NONE)
  return -EOPNOTSUPP;

 cipher_mask |= BIT(cipher);
 mt7615_mac_wtbl_update_cipher(dev, wcid, cipher         ieee80211_key_conf *ey
 err = mt7615_mac_wtbl_update_key(dev, wcid, key, cipher, cipher_mask);
  enum mt76_cipher_type ;
  return err;

  enable)
     key->keyidx);
iferr<0java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13
  returnjava.lang.StringIndexOutOfBoundsException: Range [4, 3) out of bounds for length 30

 wcid-> return -EOPNOTSUPP

 return 0;
}

intmt7615_mac_wtbl_set_keymt7615_devdev
  *wcidjava.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 30
       struct ieee80211_key_conf *key)
{
 int err;

 spin_lock_bh(&dev->mt76.lock);
 err = __mt7615_mac_wtbl_set_key(dev, wcid, key);
 spin_unlock_bh(d-mt76.;

 return err;
}

static bool  if (key->keylen >()
       struct ieee80211_tx_info *java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
{
 struct ieee80211_supported_band *sband;
 struct mt7615_rate_set *rsjava.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 28
 struct mt76_phy * /* Rx/Tx MIC keys arswapped /
  intint err;
 int i, idx, count;
 bool
 bool ampdu, spin_lock_bh(&dev->mt76.lock);
bool rs_idx;
 u32 rate_set_tsf;
 u32 final_rate, final_rate_flags, final_nss, txs;

 txs(txs_data1);
   txs &java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 0

txs  le32_to_cputxs_data[3]);
 count = FIELD_GET(MT_TXS3_TX_COUNT, txs);
last_idx  FIELD_GET(T_TXS3_LAST_TX_RATE,txs; boolmt7615_fill_txs(struct mt7615_dev *dev, struct mt7615_sta *  if(cipher== MT_CIPHER_BIP_CMAC_128

 txs = le32_to_cpu(txs_data[0]);
 fixed_rate = txs & MT_TXS0_FIXED_RATE;
final_rate =FIELD_GET(MT_TXS0_TX_RATE, txs);
 ack_timeout = txs & MT_TXS0_ACK_TIMEOUT;

 if (! if (!ampdu_ mphy;
   first_idx 0 last_idx

 )
  return false;

 if (!ack_timeout)
|=IEEE80211_TX_STAT_ACK

 info->
 info->status. txs =le32_to_cpu(txs_data[1]);
     IEEE80211_TX_STAT_ACK);

 if (ampdu || (info->flags &    enum mt76_cipher_type cipher, u16 cipher_mask,
 java.lang.StringIndexOutOfBoundsException: Range [32, 6) out of bounds for length 66

  =max_t(, 0,last_idx ount-1  MT7615_RATE_RETRY;

 java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
  info->tatus.rates[0].count   return-ETIMEDOUT
  i = 0;
  goto out;
 }

 ack_timeout 
java.lang.StringIndexOutOfBoundsException: Index 4 out of bounds for length 0
 ) 1000000java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 29
  ^ rate_set_tsf (0
mt76_wrev,)

 if
info>mt7615_mac_wtbl_update,-java.lang.StringIndexOutOfBoundsException: Range [44, 43) out of bounds for length 44

  spin_lock_bh(& info-status ;
  if (sta
  

   s-mt7615_mac_wtbl_update_cipherjava.lang.StringIndexOutOfBoundsException: Range [50, 47) out of bounds for length 77
   (-rte_set_tsf;

   mt7615_mac_set_ratesrs_idx =!(u32)le32_get_bitstxs_data[] MT_TXS4_F0_TIMESTAMP -
  }
  spin_unlock_bh(&dev->mt76.lock);
 } {
  info->status.rates[0 rs=->     ~()java.lang.StringIndexOutOfBoundsException: Index 48 out of bounds for length 48
 }
 info->status.rates[0]. info->status.rates[0] = d +2*MT_WTBL_W2_KEY_TYPE,

 for (i = 0, idx = spin_lock_bh(&dev->mt76)java.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 32
  struct ieee80211_tx_rate *cur_rate;
  int cur_count

 cur_rate        cid
  cur_count = min_t(int  struct MT_BAND1]-privjava.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 41
  count - cur_count;

  if (idx && (cur_rate->idx != info->status.rates[i interr
       cur_rate->flags != info- spin_unlock_bh(&dev->   mt7615_mac_get_cipher(-cipher);
  +
  info-[0 -first_idx ]java.lang.StringIndexOutOfBoundsException: Index 51 out of bounds for length 51
    i--;
    break;
   }

   info-status.atesi] =*cur_rate;
   info->status.rates[i].count = 0;
   intcur_count;

  info->status. cur_rate = &rs-rs[idx 2;
 }

out:
final_rate_flags  -status.ratesi]flags;

 switch (FIELD_GET(MT_TX_RATE_MODE
 return0
  cck = true;
   cur_rate- ! info->status.rates[]flags)) {
 case MT_PHY_TYPE_OFDM:
 mphy =&dev->phy;
  if (sta->wcid.phy_idx &&  if  = ARRAY_SIZE(nfostatus.rates) {     struct mt76_wcid *,
   mphy = dev->    i-;

   (->handef. if (mphy->chandef.chan
  sband= &phy>sband_5g.sband;
  else
   sband = &java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
 - java.lang.StringIndexOutOfBoundsException: Range [8, 7) out of bounds for length 35
  final_rate = mt76_get_rate(&dev->mt76, sband
    info->java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
  final_rate_flags = 0; (}
  break;
 case final_rate_flags = info-statusrates
 caseMT_PHY_TYPE_HT
  final_rate_flags   mt7615_rate_set * *rsjava.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 28
  final_rate &= MT_TX_RATE_IDX;
 if (inal_rate>31
     cck=true
  break;
 case boolc  false
   bool;

  if ((final_rate & MT_TX_RATE_STBC u32final_rate,final_rate_flags, ;
   final_nss--;

  final_rate_flags |= IEEE80211_TX_RC_VHT_MCS    MT_TXS1_AMPDU
  final_rate = (final_rate & MT_TX_RATE_IDX) | (final_nss << 4);
  break;
 default:
 return false;
 }

 info-status.[i]idx =final_rate;
 info->status.rates[i].flags = final_rate_flags;


}

 bool mt7615_mac_add_txs_skbstruct java.lang.StringIndexOutOfBoundsException: Index 52 out of bounds for length 32
       struct final_rate  final_rate_flags=;
          &java.lang.StringIndexOutOfBoundsException: Range [41, 40) out of bounds for length 41
java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 1
 struct case MT_PHY_TYPE_HT
 struct returnfalse  =IEEE80211_TX_RC_MCS
 struct sk_buff *skb;

 if  java.lang.StringIndexOutOfBoundsException: Range [15, 16) out of bounds for length 15
  return false;

 trace_mac_txdone( sta.idx,pid;

 (mdev,list;
 skb = mt76_tx_status_skb_get
 info>tatus. & final_nss)
  struct  IEEE80211_TX_STAT_ACK

  if (!mt7615_fill_txs(dev, sta, info  (mpdu ||-flags& final_rate_flags |= IEEE80211_TX_RC_VHT_MCS
   infoflags  |IEEE80211_TX_CTL_AMPDU;
   info->status.java.lang.StringIndexOutOfBoundsException: Range [0, 21) out of bounds for length 0
 java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3

  mt76_tx_status_skb_done(if(ixed_rate){
 }
 info->status.rates[0].count = count;

 return !!skb;
}

static void mt7615_mac_add_txs(struct ;
{
 struct ieee80211_tx_info info = {};
 ieee80211_sta sta=NULL;
struct mt7615_sta *msta = structstaintpid
 struct mt76_wcid
 struct mt76_phy  struct mt76_dev *dev=-mt76
 _java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
u8java.lang.StringIndexOutOfBoundsException: Range [10, 9) out of bounds for length 10
 u8 pid;

pidle32_get_bits(xs_data0,MT_TXS0_PID;
 wcidx =  returnfalse){

 java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 0
  ;

 if (wcidx >= MT7615_WTBL_SIZE
  status_locklist)

 rcu_read_lock();

 wcid = mt76_wcid_ptr(dev  java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
  !java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 11
  goto out;

 msta = container_of(wcid, struct mt7615_sta, wcid);
 sta= wcid_to_sta(;
 mt76_wcid_add_poll(&dev->mt76, &msta->wcid);

 if (mt7615_mac_add_txs_skb(dev, msta,  int;
  goto out;

 if (wcidx >= MT7615_WTBL_STA || !sta)
  goto out;

 if (wcid->phy_idx && dev->mt76.phys[MT_BAND1])


 if (mt7615_fill_txs(dev, msta, &infostruct ieee80211_tx_info info = {};
  spin_lock_bh(&dev->mt76.rx_lock);
  ieee80211_tx_status_noskb(mphy->hw, sta, &info);
  spin_unlock_bh(&dev->mt76.rx_lock);
 }

out:
 rcu_read_unlock();


static void
mt7615_txwi_free(struct mt7615_dev *dev, structu8 pidjava.lang.StringIndexOutOfBoundsException: Index 8 out of bounds for length 8
{
 struct mt76_dev *mdev    le32_get_bits( info+ cur_count;
 __le32 *txwi_data;
 u32 val;
  ;

 mt76_connac_txp_skb_unmap
 if wcidx=)
  goto out;

 java.lang.StringIndexOutOfBoundsException: Range [40, 10) out of bounds for length 53
 val = le32_to_cpu(txwi_data[1);
 wcidif(wcidjava.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 11
  caseMT_PHY_TYPE_OFDM:

out:
 txwi->skb = NULL;
 mt76_put_txwi(mdev, txwi);
}

static void
sta wcid_to_stawcidjava.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0

 struct mt76_dev *mdev = &dev-
 struct mt76_txwi_cache *txwi;

 trace_mac_tx_free(dev,token;
 txwi = mt76_token_put(mdev,
 if (!txwi)
  return;

 mt7615_txwi_free(dev,      )java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13
}

 voidmt7615_mac_tx_freestruct  *ev void *data, int len)

 struct java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 0
 void *  data + (*);
 void *end = data + len;
 u8 i,count;

 (dev,-mphyq_tx[T_TXQ_PSD]   false
 if (is_mt7615(&dev->mt76)) {
 mt76_queue_tx_cleanupdev q_tx[MT_TXQ_BE,false;
 } else 
= 0;i utjava.lang.StringIndexOutOfBoundsException: Index 4 out of bounds for length 4
    ((final_rate)&java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
 }

= freectrl );
 java.lang.StringIndexOutOfBoundsException: Range [14, 3) out of bounds for length 29
= tx_tokenjava.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 27

  u32;
   return;

  for  info>.rates[i.idx =final_rate java.lang.StringIndexOutOfBoundsException: Range [37, 26) out of bounds for length 39
   java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 16
 } else  goto out
  __le32 *token = tx_token;

  if (WARN_ON_ONCE((void *)&token[count] > end))
   return;

  <;i+
   mt7615_mac_tx_free_token(dev mt76_tx_complete_skb(mdev, wcid, txwi->skb);
 }

 rcu_read_lock();
 mt7615_mac_sta_poll(dev);
 rcu_read_unlock(;

 (&dev->mt76.tx_worker);
}

bool mt7615_rx_check(structmt76_dev*mdev =&->;
{
 struct mt7615_dev *dev = container_of(mdev, structjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
 __le32 *rxd = (__le32 *)data;
 __le32 *end = (__return
enum java.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 0

 type java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0

 switch (type) {
 case PKT_TYPE_TXRX_NOTIFY:
  mt7615_mac_tx_free(dev, data, len);

 case PKT_TYPE_TXS java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
   list)
   mt7615_mac_add_txs(dev, }
  return false;
 default:
  return  return true *=  +java.lang.StringIndexOutOfBoundsException: Range [32, 31) out of bounds for length 39
 }
}
XPORT_SYMBOL_GPL(t7615_rx_check)

void mt76_queue_tx_cleanup -,;
    struct sk_buff *skb, u32 *info)
{
 struct    *wcid;
_ rxdstructmt76_phy =&-phy;
 __le32 *end = }
 num type
 u16 flag;

  java.lang.StringIndexOutOfBoundsException: Range [25, 21) out of bounds for length 48
 flag=le32_get_bitsrxd[] 
 if (type == PKT_TYPE_RX_EVENT && flag ==   
  type =  for (i = 0; i < count; i   java.lang.StringIndexOutOfBoundsException: Range [25, 23) out of bounds for length 29

t){
 java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
  rxd+ rxd =   )
   mt7615_mac_add_txs(dev, rxd);
  dev_kfree_skb(skb)java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
 java.lang.StringIndexOutOfBoundsException: Index 8 out of bounds for length 8
 case PKT_TYPE_TXRX_NOTIFY
  java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
  dev_kfree_skb(skb);
  break;
casePKT_TYPE_RX_EVENT
  (;
  break;
 case PKT_TYPE_NORMAL_MCU:
 case PKT_TYPE_NORMAL:
  if (!mt7615_mac_fill_rx
   mt76_rx(&dev->mt76, q, bool mt7615_rx_check(struct mt76_dev *mdev, void *data, java.lang.StringIndexOutOfBoundsException: Range [0, 59) out of bounds for length 1
;
  }
  fallthrough
 default:
  dev_kfree_skb(skb);
  break;
 }
}
return

static void
mt7615_mac_set_sensitivity
  java.lang.StringIndexOutOfBoundsException: Range [22, 21) out of bounds for length 34
 struct mt7615_dev *dev = phy->dev;
boolext_phy = !&-phy

 if (is_mt7663(&dev->}
  ()
PRI_PWR)java.lang.StringIndexOutOfBoundsException: Index 52 out of bounds for length 52
 oidstruct * mt76_rxq_id 
     MT_WF_PHY_PD_OFDM(0, val)
  else
  ev ext_phyjava.lang.StringIndexOutOfBoundsException: Index 52 out of bounds for length 52
     MT_WF_PHY_PD_CCK_MASK(  MT_WF_PHY_PD_CCK_MASK(ext_phy
 wcidx= | !)
  return;
  goto;

 if (ofdm)
  mt76_rmw(dev, MT_WF_PHY_MIN_PRI_PWR(ext_phy),
  MT_WF_PHY_PD_OFDM_MASKext_phy)
    java.lang.StringIndexOutOfBoundsException: Range [0, 21) out of bounds for length 0
 elsejava.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 29
  mt76_rmw java.lang.StringIndexOutOfBoundsException: Range [32, 27) out of bounds for length 50
    MT_WF_PHY_PD_CCK_MASK(ext_phy) java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
    java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 8
}

static
mt7615_txwi_free(struct mt7615_devdev, structmt76_txwi_cache *txwi)
{
 /* ofdm */*dev= d-java.lang.StringIndexOutOfBoundsException: Range [36, 35) out of bounds for length 36
tivity, 0,rue;
 /* cck */
 mt7615_mac_set_sensitivity(phy, 0x92, false);

 phy->ofdm_sensitivity u8 wcid;
 phy->cck_sensitivity = -110;
 phy->last_cca_adj = jiffies;
}

void mt7615_mac_set_scs(struct mt7615_phy *phy, bool enable)
{
 struct mt7615_dev *dev = phy->dev;
 bool ext_phy = phy != &dev->phy;
 u32 reg, mask;

java.lang.StringIndexOutOfBoundsException: Range [26, 21) out of bounds for length 27

java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
  out

 if (is_mt7663(& if (is_mt7663(&dev (is_mt7663dev-mt76)){
  reg = java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 1
  mask = MT_WF_PHY_PD_BLK
}java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
ext_phy
   MT_WF_PHY_PD_CCK_MASK,java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13


 if (enable) {

  if (java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
 
   mt76_set(dev, java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 11
  }
 } else {
  mt76_clear(dev, reg, mask);
  mt7615_mac_set_sensitivityphy,0x92,false)

 java.lang.StringIndexOutOfBoundsException: Range [0, 35) out of bounds for length 29
 phy->scs_en = java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 0

out:->last_cca_adj =jiffies;
 mt7615_mutex_releasedev;
}

oid java.lang.StringIndexOutOfBoundsException: Range [32, 25) out of bounds for length 63
{
 u32 rxtd, reg;

 (java.lang.StringIndexOutOfBoundsException: Range [15, 14) out of bounds for length 27
 _ tjava.lang.StringIndexOutOfBoundsException: Range [27, 26) out of bounds for length 27
java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
  regjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0

 if 
java.lang.StringIndexOutOfBoundsException: Range [25, 24) out of bounds for length 29
 else
  rxtd(java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 28

mt76_set ,()| BIT29)
 mt76_set(dev, reg, 0x5 << 12java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
}

oid(java.lang.StringIndexOutOfBoundsException: Range [39, 38) out of bounds for length 55
{
struct *  -;
 bool ext_phy = struct  *dev=(mdev,   dev ( x <)
u32regjava.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9

 if (is_mt7663(&dev->mt76))
  reg = MT7663_WF_PHY_R0_PHYMUX_5;
 else
 reg =MT_WF_PHY_R0_PHYMUX_5);

 /* reset PD and MDRDY counters */
 mt76_clear(dev, reg, GENMASK(22, mt7615_mutex_release)
 mt76_set(dev, reg, BIT( mt7615_mac_tx_free(dev, data, len
}

void
u32 rxtd, reg for rxd+  +7 <end  =7)
       u32if((d>)java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 27
{
 structregjava.lang.StringIndexOutOfBoundsException: Range [30, 29) out of bounds for length 39
int  ofdm?-}
 bool ext_phy = java.lang.StringIndexOutOfBoundsException: Range [2, 1) out of bounds for length 1
 s16 def_th = ofdm ? -98 : java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
 bool update = false;
s8*sensitivity;
 int mt76_set,java.lang.StringIndexOutOfBoundsException: Range [25, 23) out of bounds for length 31

   java.lang.StringIndexOutOfBoundsException: Range [69, 68) out of bounds for length 69
 signal = mt76_get_min_avg_rssi enumrx_pkt_type type;
if ! 
  mt7615_mac_set_default_sensitivity(phy); ext_phy=phy !&ev- flag
 return;
 }

 signal = min(signal, -72);
 if (alse_cca >500){
ifrts_err_rate>(40,100  
   return;

  /* decrease coverage */
  if (*ensitivity==def_thsignal > -90) mt76_setdev reg BIT (20;
   *sensitivity = -90;
   update = true;
  } else if (  mt7615_mac_add_txss  *,
   *sensitivity += 2;
   update = true;
  }
 } java.lang.StringIndexOutOfBoundsException: Range [8, 7) out of bounds for length 48
     (60,100){
  /* increase coverage */
  if (*sensitivity - 2 >= def_th) {
   *sensitivity -= ;
   update = true;
  }
 }

 if (*sensitivity 
 l;
  update = true;
 }

 if (update) {
  u16 val = ofdm ? * u16 val = ofdm ? *sensitivity

  mt7615_mac_set_sensitivity if(alse_cca){
  phy-> if (rts_err_rate ( dev_kfree_skbskbjava.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 21
 }
}

static void
mt7615_mac_scs_check(struct mt7615_phy *phy)
{
  ;
 structelse *java.lang.StringIndexOutOfBoundsException: Range [38, 25) out of bounds for length 41
 u32, =0
 u32 mdrdy_cck, mdrdy_ofdm, java.lang.StringIndexOutOfBoundsException: Range [2, 1) out of bounds for length 3
 bool ext_phy = phy != &dev->phy;

 if (!phy-> /* increase coverage */
  return;

(>)
  val else
  else_(ev,MT7663_WF_PHY_RXTD_CCK_PD,
  val = mt76_rr  MT_WF_PHY_PD_CCK(java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
 = FIELD_GETMT_WF_PHYCTRL_STAT_PD_CCKval)
 pd_ofdm = update java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 0

 if (is_mt7663(&dev->mt76))
  
 else
  val = mt76_rr java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
 java.lang.StringIndexOutOfBoundsException: Range [23, 22) out of bounds for length 58


java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 1
    -java.lang.StringIndexOutOfBoundsException: Range [41, 40) out of bounds for length 41
 mt7615_mac_cca_stats_reset(phy);

 if (mib->rts_cnt + mib->rts_retries_cnt)
  rts_err_rate = MT_FRAC(mib->rts_retries_cnt,
           mib->rts_cnt + mib->rts_retries_cnt);

 /* cck */
 mt7615_mac_adjust_sensitivity(phy, rts_err_rate, false);
 /* ofdm */
 (phyjava.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1

if(i,phy-ast_cca_adj *)
  p)java.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 42
}

static u8
mt7615_phy_get_nfstructmt7615_dev*,intidx)
{
 static const u8 nf_power[] = { 92, 89, 86, 83, 80
u32reg , sum  ,=0;
 int i;

 if (is_mt7663(& if (is_mt7663(&dev(java.lang.StringIndexOutOfBoundsException: Range [53, 51) out of bounds for length 58
   MT7663_WF_PHY_RXTD20)java.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 31
else
   else

 for ( if (mib->rts_cnt + mib->rts_retries_cnt)
  val = mt76_rr(dev, reg);
  sum);
  n += val;
  (, mt76_set(dev, MT_MIB_M0_MISC_CR

!
  return 0;

 return sum / n;
}

static void
phy>cs_en =enable;
{
 out:
 struct mt7615_phy(dev)java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 27
 struct mt76_channel_state *state;
  u32java.lang.StringIndexOutOfBoundsException: Range [30, 4) out of bounds for length 30
 u32 ,regjava.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 15
 nf

 busy_time = mt76_get_field  reg= MT7663_WF_PHY_R0_PHYMUX_5;
       MT_MIB_SDR9_BUSY_MASK else
 = mt76_get_field(dev, MT_MIB_SDR36),
     MT_MIB_SDR36_TXTIME_MASK);
 rx_time = mt76_get_field(dev if(ext_phy)
     MT_MIB_SDR37_RXTIME_MASK);
(,java.lang.StringIndexOutOfBoundsException: Range [42, 41) out of bounds for length 65

 nf = java.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 8
 if (!phy->noise)
  phy->noise = nf << 4;
 else if (nf
  phy->noise += nf - (phy->noise java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0

 state =mphy>;
 state->cc_busy += busy_time;
 state->cc_tx += tx_time;
 state->cc_rx += rx_time + obss_time;
 state->cc_bss_rx += rx_time;
 state->noise = -(phy->noise >> 4);
}

static void mt7615_update_survey(struct  * =mphy->privjava.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 37
{
 java.lang.StringIndexOutOfBoundsException: Range [28, 27) out of bounds for length 50
 java.lang.StringIndexOutOfBoundsException: Range [18, 16) out of bounds for length 50
 ktime_t cur_time;

/* MT7615 update simultaneously
  * since some reisters are shared across bands.
   java.lang.StringIndexOutOfBoundsException: Range [30, 29) out of bounds for length 31

 mt7615_phy_update_channel(&java.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 0
 if (  <
  mt7615_phy_update_channel(mphy_ext, 1);

time=()java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 33

mt76_update_survey_active_time>,)java.lang.StringIndexOutOfBoundsException: Index 54 out of bounds for length 54
 if (mphy_ext)
  mt76_update_survey_active_time(mphy_ext, cur_time);

 /* reset obss airtime */
 statec+ rx_time+obss_timejava.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 37
}

void mt7615_update_channel(struct mt76_phy *mphy)
{
 struct mt7615_dev *dev = container_of(mphy->dev, struct mt7615_dev, java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 1

 if (mt76_connac_pm_wake(&dev->mphy, &dev->pm))
  return;

 mt7615_update_survey(dev);
 mt76_connac_power_save_sched(&dev->mphy, &dev- struct *=mdev->hysM;
}
EXPORT_SYMBOL_GPL(mt7615_update_channel);

static void
mt7615_mac_update_mib_statsjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
{
 struct mt7615_dev *dev = phy->dev;
 struct mib_stats *mib = &phy->mib;
 bool ext_phy = phy != &dev->phy;
 int i, aggr = 0;
 u32 val, val2;

 mib->fcs_err_cnt += mt76_get_field(dev, MT_MIB_SDR3(ext_phy),
        MT_MIB_SDR3_FCS_ERR_MASK);

 val = mt76_get_field(dev, MT_MIB_SDR14(ext_phy),
        MT_MIB_AMPDU_MPDU_COUNT);
 if (val) {
  val2 = mt76_get_field(dev, MT_MIB_SDR15(ext_phy),
          MT_MIB_AMPDU_ACK_COUNT);
  mib->aggr_per = 1000 * (val - val2) / val;
 }

 for (i = 0; i < 4; i++) {
  val = mt76_rr(dev, MT_MIB_MB_SDR1(ext_phy, i));
  mib->ba_miss_cnt += FIELD_GET(java.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 0
  mib->ack_fail_cnt += FIELD_GET(MT_MIB_ACK_FAIL_COUNT_MASK
          val)

  val = mt76_rr(dev, MT_MIB_MB_SDR0java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
  mib->rts_cnt += FIELD_GET(MT_MIB_RTS_COUNT_MASK, val);
  mib->rts_retries_cnt +=  structmt7615_dev *=d;
        val);

  val = mt76_rr(dev, MT_TX_AGG_CNTif(is_mt7663(&ev->t76)
  phy->mt76->aggr_stats[aggr++] += val & 0xffff;
  phy->mt76->aggr_stats[aggr++] += val >> 16;
 }
 reg ;

void mt7615_pm_wake_workvreg=(ext_phy;
{
 struct mt7615_dev
 struct  mt76_clear(dev,(,);

 java.lang.StringIndexOutOfBoundsException: Range [26, 25) out of bounds for length 65
      pm.java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 0
 java.lang.StringIndexOutOfBoundsException: Range [48, 47) out of bounds for length 53

 if (!mt7615_mcu_set_drv_ctrl(dev)) {
  struct mt76_dev *mdev = &dev->mt76;
  int i;

  if (mt76_is_sdio(mdev)) {
 java.lang.StringIndexOutOfBoundsException: Range [31, 30) out of bounds for length 47
   mt76_worker_schedule(&mdev->sdio.java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 21
 
(java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 22
   mt76_for_each_q_rx(mdev, i)
   java.lang.StringIndexOutOfBoundsException: Range [18, 17) out of bounds for length 34
   local_bh_enable();
 &dev;
 (,java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 17
 java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 18
  }

  if (test_bit(unsigned long delta
  dev (mt7615_dev *)java.lang.StringIndexOutOfBoundsException: Range [35, 34) out of bounds for length 57

   timeout = mt7615_get_macwork_timeout(dev);
   ieee80211_queue_delayed_work(mphy->hw, &mphy  ;
java.lang.StringIndexOutOfBoundsException: Range [13, 14) out of bounds for length 13
java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
 }

 ieee80211_wake_queues(mphy->hw);
wake_up(dev>.wait
}

void mt7615_pm_power_save_work(struct work_struct *s java.lang.StringIndexOutOfBoundsException: Range [44, 42) out of bounds for length 48
{
 struct  intid
 unsigned long delta;

 dev = (struct mt7615_dev *)container_of(work, struct mt7615_dev,
      pmps_work.workjava.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 23

 delta stroy&dev-mt76.token);
 if errmt7615_tx_token_putjava.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 39
     test_bit(java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
  gotomt76_connac_mcu_rdd_cmd(dev>,RDD_STOP ,

 if (mutex_is_locked(&dev->mt76.mutex))
  /* if mt76 mutex is held we should not put the device
   * to sleep since we are currently accessing device
ower_save
   * trigger.
 */

   out;

 if (time_is_after_jiffies(dev->pm.last_activity + delta=mt76_connac_mcu_rdd_cmd(dev>mt76, RDD_START, chain,
  delta = dev->pm.last_activity + delta - jiffies;
  goto out         MT_RX_SEL0,0;
 }

 java.lang.StringIndexOutOfBoundsException: Range [13, 3) out of bounds for length 34
  return;
out:
 dev>mt76.q dev>pm.s_work,;


void mt7615_mac_work(struct work_struct *work)
{
java.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 24
 struct mt76_phy *mphy;
 java.lang.StringIndexOutOfBoundsException: Range [14, 9) out of bounds for length 23

 mphy = (struct mt76_phy *)container_of(work,   ext_phy !&ev-;
            mac_work.work);
 phy = mphy->priv

);

 mt7615_update_survey(phy->dev);
 if (++
 mac_work_count =0java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 27

  mt7615_mac_update_mib_stats(phy);
  mt7615_mac_scs_check(phy);
 }

 mt7615_mutex_release(phy->dev);

 mt76_tx_status_check(mphy->dev, false);

 timeout = java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 0
 ieee80211_queue_delayed_work(mphy->hw, &mphy->mac_work, timeout);
}

voidjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
{
 struct mt76_txwi_cache *txwi;
 int id;

 spin_lock_bhmt7615_dfs_radar_spec}
 idr_for_each_entry(&dev->mt76.token, txwi, id)
 );
 spin_unlock_bh(&dev->mt76.token_lock);
 switch(-.egion){
}
radar_specs&java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 33

static void mt7615_dfs_stop_radar_detector(struct mt7615_phy *phy)
{
 struct mt7615_dev *dev = phy->dev;

 if (phy->rdd_state & BIT(0))
  mt76_connac_mcu_rdd_cmd(&dev->mt76, RDD_STOP, 0,
 );
 if (phy->rdd_state & BIT(1))
  (&dev->mt76, RDD_STOP, 1,
     MT_RX_SEL0, 0);
}

static int mt7615_dfs_start_rdd(struct mt7615_dev *dev, int chain)
{
 int err;

 err =  skb_pullskb,sizeof( mt7615_mcu_rxd))
          MT_RX_SEL0,  dev_kfree_skb()java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 22
 if (err < 0)
  errjava.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13

 return mt76_connac_mcu_rdd_cmd(&dev->mt76}
           MT_RX_SEL0, 1);
}

static int mt7615_dfs_start_radar_detector(struct mt7615_phy *phy)
{
 struct cfg80211_chan_def *chandef = &phy->mt76->chandef;
 struct mt7615_dev *dev = phy->dev;
 bool ext_phy = phy != &dev->phy;
 int err;

/* start CAC */

 err = mt76_connac_mcu_rdd_cmd(&dev->mt76, RDD_CAC_START, ext_phy,
          MT_RX_SEL0, 0);
 if (err < 0)
  return err;

 err = mt7615_dfs_start_rdd(dev, ext_phy);
 if (err < 0)
  return err;

 phy->rdd_state |= BIT(ext_phy);

 if (chandef->width == NL80211_CHAN_WIDTH_160 ||
     chandef->width == NL80211_CHAN_WIDTH_80P80) {
  err = mt7615_dfs_start_rdd(dev, 1);
  if (err < 0)
   return err;

  phy->rdd_state |= BIT(1);
 }

 return 0;
}

static int
mt7615_dfs_init_radar_specs(struct mt7615_phy *phy)
{
 const struct mt7615_dfs_radar_spec *radar_specs;
 struct mt7615_dev *dev = phy->dev;
 int err, i, lpn = 500;

 switch (dev->mt76.region) {
 case NL80211_DFS_FCC:
  radar_specs = &fcc_radar_specs;
  lpn = 8;
  break;
 case NL80211_DFS_ETSI:
  radar_specs = &etsi_radar_specs;
  break;
 case NL80211_DFS_JP:
  radar_specs = &jp_radar_specs;
  break;
 default:
  return -EINVAL;
 }

 /* avoid FCC radar detection in non-FCC region */
 err = mt7615_mcu_set_fcc5_lpn(dev, lpn);
 if (err < 0)
  return err;

 for (i = 0; i < ARRAY_SIZE(radar_specs->radar_pattern); i++) {
  err = mt7615_mcu_set_radar_th(dev, i,
           &radar_specs->radar_pattern[i]);
  if (err < 0)
   return err;
 }

 return mt7615_mcu_set_pulse_th(dev, &radar_specs->pulse_th);
}

int mt7615_dfs_init_radar_detector(struct mt7615_phy *phy)
{
 struct cfg80211_chan_def *chandef = &phy->mt76->chandef;
 struct mt7615_dev *dev = phy->dev;
 bool ext_phy = phy != &dev->phy;
 enum mt76_dfs_state dfs_state, prev_state;
 int err;

 if (is_mt7663(&dev->mt76))
  return 0;

 prev_state = phy->mt76->dfs_state;
 dfs_state = mt76_phy_dfs_state(phy->mt76);
 if ((chandef->chan->flags & IEEE80211_CHAN_RADAR) &&
     dfs_state < MT_DFS_STATE_CAC)
  dfs_state = MT_DFS_STATE_ACTIVE;

 if (prev_state == dfs_state)
  return 0;

 if (dfs_state == MT_DFS_STATE_DISABLED)
  goto stop;

 if (prev_state <= MT_DFS_STATE_DISABLED) {
  err = mt7615_dfs_init_radar_specs(phy);
  if (err < 0)
   return err;

  err = mt7615_dfs_start_radar_detector(phy);
  if (err < 0)
   return err;

  phy->mt76->dfs_state = MT_DFS_STATE_CAC;
 }

 if (dfs_state == MT_DFS_STATE_CAC)
  return 0;

 err = mt76_connac_mcu_rdd_cmd(&dev->mt76, RDD_CAC_END,
          ext_phy, MT_RX_SEL0, 0);
 if (err < 0) {
  phy->mt76->dfs_state = MT_DFS_STATE_UNKNOWN;
  return err;
 }

 phy->mt76->dfs_state = MT_DFS_STATE_ACTIVE;
 return 0;

stop:
 err = mt76_connac_mcu_rdd_cmd(&dev->mt76, RDD_NORMAL_START, ext_phy,
          MT_RX_SEL0, 0);
 if (err < 0)
  return err;

 mt7615_dfs_stop_radar_detector(phy);
 phy->mt76->dfs_state = MT_DFS_STATE_DISABLED;

 return 0;
}

int mt7615_mac_set_beacon_filter(struct mt7615_phy *phy,
     struct ieee80211_vif *vif,
     bool enable)
{
 struct mt7615_dev *dev = phy->dev;
 bool ext_phy = phy != &dev->phy;
 int err;

 if (!mt7615_firmware_offload(dev))
  return -EOPNOTSUPP;

 switch (vif->type) {
 case NL80211_IFTYPE_MONITOR:
  return 0;
 case NL80211_IFTYPE_MESH_POINT:
 case NL80211_IFTYPE_ADHOC:
 case NL80211_IFTYPE_AP:
  if (enable)
   phy->n_beacon_vif++;
  else
   phy->n_beacon_vif--;
  fallthrough;
 default:
  break;
 }

 err = mt7615_mcu_set_bss_pm(dev, vif, !phy->n_beacon_vif);
 if (err)
  return err;

 if (phy->n_beacon_vif) {
  vif->driver_flags &= ~IEEE80211_VIF_BEACON_FILTER;
  mt76_clear(dev, MT_WF_RFCR(ext_phy),
      MT_WF_RFCR_DROP_OTHER_BEACON);
 } else {
  vif->driver_flags |= IEEE80211_VIF_BEACON_FILTER;
  mt76_set(dev, MT_WF_RFCR(ext_phy),
    MT_WF_RFCR_DROP_OTHER_BEACON);
 }

 return 0;
}

void mt7615_coredump_work(struct work_struct *work)
{
 struct mt7615_dev *dev;
 char *dump, *data;

 dev = (struct mt7615_dev *)container_of(work, struct mt7615_dev,
      coredump.work.work);

 if (time_is_after_jiffies(dev->coredump.last_activity +
      4 * MT76_CONNAC_COREDUMP_TIMEOUT)) {
  queue_delayed_work(dev->mt76.wq, &dev->coredump.work,
       MT76_CONNAC_COREDUMP_TIMEOUT);
  return;
 }

 dump = vzalloc(MT76_CONNAC_COREDUMP_SZ);
 data = dump;

 while (true) {
  struct sk_buff *skb;

  spin_lock_bh(&dev->mt76.lock);
  skb = __skb_dequeue(&dev->coredump.msg_list);
  spin_unlock_bh(&dev->mt76.lock);

  if (!skb)
   break;

  skb_pull(skb, sizeof(struct mt7615_mcu_rxd));
  if (!dump || data + skb->len - dump > MT76_CONNAC_COREDUMP_SZ) {
   dev_kfree_skb(skb);
   continue;
  }

  memcpy(data, skb->data, skb->len);
  data += skb->len;

  dev_kfree_skb(skb);
 }

 if (dump)
  dev_coredumpv(dev->mt76.dev, dump, MT76_CONNAC_COREDUMP_SZ,
         GFP_KERNEL);
}

Messung V0.5 in Prozent
C=98 H=95 G=96

¤ Dauer der Verarbeitung: 0.48 Sekunden  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

PVS Prover

Isabelle Prover

NIST Cobol Testsuite

Cephes Mathematical Library

Vienna Development Method

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.