tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 
master
head:   2c87f7a38f930ef6f6a7bdd04aeb82ce3971b54b
commit: 3f0caa3cbf941cb962212770326649c21a527028 mt76: mt7915: add support for 
continuous tx in testmode
date:   4 weeks ago
config: arm-randconfig-r036-20210226 (attached as .config)
compiler: clang version 13.0.0 (https://github.com/llvm/llvm-project 
b889ef4214bc6dc8880fdd4badc0dcd9a3197753)
reproduce (this is a W=1 build):
        wget 
https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O 
~/bin/make.cross
        chmod +x ~/bin/make.cross
        # install arm cross compiling tool for clang build
        # apt-get install binutils-arm-linux-gnueabi
        # 
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=3f0caa3cbf941cb962212770326649c21a527028
        git remote add linus 
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
        git fetch --no-tags linus master
        git checkout 3f0caa3cbf941cb962212770326649c21a527028
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=arm 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <l...@intel.com>

All warnings (new ones prefixed by >>):

>> drivers/net/wireless/mediatek/mt76/mt7915/testmode.c:591:2: warning: 
>> variable 'mode' is used uninitialized whenever switch default is taken 
>> [-Wsometimes-uninitialized]
           default:
           ^~~~~~~
   drivers/net/wireless/mediatek/mt76/mt7915/testmode.c:595:13: note: 
uninitialized use occurs here
           rateval =  mode << 6 | rate_idx;
                      ^~~~
   drivers/net/wireless/mediatek/mt76/mt7915/testmode.c:504:37: note: 
initialize the variable 'mode' to silence this warning
           u8 rate_idx = td->tx_rate_idx, mode;
                                              ^
                                               = '\0'
   1 warning generated.


vim +/mode +591 drivers/net/wireless/mediatek/mt76/mt7915/testmode.c

   493  
   494  static int
   495  mt7915_tm_set_tx_cont(struct mt7915_phy *phy, bool en)
   496  {
   497  #define TX_CONT_START   0x05
   498  #define TX_CONT_STOP    0x06
   499          struct mt7915_dev *dev = phy->dev;
   500          struct cfg80211_chan_def *chandef = &phy->mt76->chandef;
   501          int freq1 = 
ieee80211_frequency_to_channel(chandef->center_freq1);
   502          struct mt76_testmode_data *td = &phy->mt76->test;
   503          u32 func_idx = en ? TX_CONT_START : TX_CONT_STOP;
   504          u8 rate_idx = td->tx_rate_idx, mode;
   505          u16 rateval;
   506          struct mt7915_tm_rf_test req = {
   507                  .action = 1,
   508                  .icap_len = 120,
   509                  .op.rf.func_idx = cpu_to_le32(func_idx),
   510          };
   511          struct tm_tx_cont *tx_cont = &req.op.rf.param.tx_cont;
   512  
   513          tx_cont->control_ch = chandef->chan->hw_value;
   514          tx_cont->center_ch = freq1;
   515          tx_cont->tx_ant = td->tx_antenna_mask;
   516          tx_cont->band = phy != &dev->phy;
   517  
   518          switch (chandef->width) {
   519          case NL80211_CHAN_WIDTH_40:
   520                  tx_cont->bw = CMD_CBW_40MHZ;
   521                  break;
   522          case NL80211_CHAN_WIDTH_80:
   523                  tx_cont->bw = CMD_CBW_80MHZ;
   524                  break;
   525          case NL80211_CHAN_WIDTH_80P80:
   526                  tx_cont->bw = CMD_CBW_8080MHZ;
   527                  break;
   528          case NL80211_CHAN_WIDTH_160:
   529                  tx_cont->bw = CMD_CBW_160MHZ;
   530                  break;
   531          case NL80211_CHAN_WIDTH_5:
   532                  tx_cont->bw = CMD_CBW_5MHZ;
   533                  break;
   534          case NL80211_CHAN_WIDTH_10:
   535                  tx_cont->bw = CMD_CBW_10MHZ;
   536                  break;
   537          case NL80211_CHAN_WIDTH_20:
   538                  tx_cont->bw = CMD_CBW_20MHZ;
   539                  break;
   540          case NL80211_CHAN_WIDTH_20_NOHT:
   541                  tx_cont->bw = CMD_CBW_20MHZ;
   542                  break;
   543          default:
   544                  break;
   545          }
   546  
   547          if (!en) {
   548                  req.op.rf.param.func_data = cpu_to_le32(phy != 
&dev->phy);
   549                  goto out;
   550          }
   551  
   552          if (td->tx_rate_mode <= MT76_TM_TX_MODE_OFDM) {
   553                  struct ieee80211_supported_band *sband;
   554                  u8 idx = rate_idx;
   555  
   556                  if (chandef->chan->band == NL80211_BAND_5GHZ)
   557                          sband = &phy->mt76->sband_5g.sband;
   558                  else
   559                          sband = &phy->mt76->sband_2g.sband;
   560  
   561                  if (td->tx_rate_mode == MT76_TM_TX_MODE_OFDM)
   562                          idx += 4;
   563                  rate_idx = sband->bitrates[idx].hw_value & 0xff;
   564          }
   565  
   566          switch (td->tx_rate_mode) {
   567          case MT76_TM_TX_MODE_CCK:
   568                  mode = MT_PHY_TYPE_CCK;
   569                  break;
   570          case MT76_TM_TX_MODE_OFDM:
   571                  mode = MT_PHY_TYPE_OFDM;
   572                  break;
   573          case MT76_TM_TX_MODE_HT:
   574                  mode = MT_PHY_TYPE_HT;
   575                  break;
   576          case MT76_TM_TX_MODE_VHT:
   577                  mode = MT_PHY_TYPE_VHT;
   578                  break;
   579          case MT76_TM_TX_MODE_HE_SU:
   580                  mode = MT_PHY_TYPE_HE_SU;
   581                  break;
   582          case MT76_TM_TX_MODE_HE_EXT_SU:
   583                  mode = MT_PHY_TYPE_HE_EXT_SU;
   584                  break;
   585          case MT76_TM_TX_MODE_HE_TB:
   586                  mode = MT_PHY_TYPE_HE_TB;
   587                  break;
   588          case MT76_TM_TX_MODE_HE_MU:
   589                  mode = MT_PHY_TYPE_HE_MU;
   590                  break;
 > 591          default:
   592                  break;
   593          }
   594  
   595          rateval =  mode << 6 | rate_idx;
   596          tx_cont->rateval = cpu_to_le16(rateval);
   597  
   598  out:
   599          if (!en) {
   600                  int ret;
   601  
   602                  ret = mt76_mcu_send_msg(&dev->mt76, 
MCU_EXT_CMD_RF_TEST, &req,
   603                                          sizeof(req), true);
   604                  if (ret)
   605                          return ret;
   606  
   607                  return mt7915_tm_rf_switch_mode(dev, RF_OPER_NORMAL);
   608          }
   609  
   610          mt7915_tm_rf_switch_mode(dev, RF_OPER_RF_TEST);
   611          mt7915_tm_update_channel(phy);
   612  
   613          return mt76_mcu_send_msg(&dev->mt76, MCU_EXT_CMD_RF_TEST, &req,
   614                                   sizeof(req), true);
   615  }
   616  

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-...@lists.01.org

Attachment: .config.gz
Description: application/gzip

Reply via email to