Hi Stanislaw,

I love your patch! Perhaps something to improve:

[auto build test WARNING on wireless-drivers-next/master]
[also build test WARNING on v4.18-rc3 next-20180706]
[if your patch is applied to the wrong git tree, please drop us a note to help 
improve the system]

url:    
https://github.com/0day-ci/linux/commits/Stanislaw-Gruszka/mt76-add-more-states/20180706-200412
base:   
https://git.kernel.org/pub/scm/linux/kernel/git/kvalo/wireless-drivers-next.git 
master
reproduce:
        # apt-get install sparse
        make ARCH=x86_64 allmodconfig
        make C=1 CF=-D__CHECK_ENDIAN__


sparse warnings: (new ones prefixed by >>)

>> drivers/net/wireless/mediatek/mt76/mt76x0/mcu.c:253:15: sparse: expression 
>> using sizeof(void)
>> drivers/net/wireless/mediatek/mt76/mt76x0/mcu.c:253:15: sparse: expression 
>> using sizeof(void)
   drivers/net/wireless/mediatek/mt76/mt76x0/mcu.c:282:15: sparse: expression 
using sizeof(void)
   drivers/net/wireless/mediatek/mt76/mt76x0/mcu.c:282:15: sparse: expression 
using sizeof(void)
   drivers/net/wireless/mediatek/mt76/mt76x0/mcu.c:325:15: sparse: expression 
using sizeof(void)
   drivers/net/wireless/mediatek/mt76/mt76x0/mcu.c:325:15: sparse: expression 
using sizeof(void)
   drivers/net/wireless/mediatek/mt76/mt76x0/mcu.c:354:15: sparse: expression 
using sizeof(void)
   drivers/net/wireless/mediatek/mt76/mt76x0/mcu.c:354:15: sparse: expression 
using sizeof(void)
>> drivers/net/wireless/mediatek/mt76/mt76x0/mcu.c:344:5: sparse: symbol 
>> 'mt76x0_burst_read_regs' was not declared. Should it be static?
   drivers/net/wireless/mediatek/mt76/mt76x0/mcu.c:463:13: sparse: expression 
using sizeof(void)
--
>> drivers/net/wireless/mediatek/mt76/mt76x0/eeprom.c:88:27: sparse: Variable 
>> length array is used.
--
>> drivers/net/wireless/mediatek/mt76/mt76x0/phy.c:969:34: sparse: expression 
>> using sizeof(void)
>> drivers/net/wireless/mediatek/mt76/mt76x0/phy.c:989:6: sparse: symbol 
>> 'mt76x0_ant_select' was not declared. Should it be static?
--
>> drivers/net/wireless/mediatek/mt76/mt76x0/mac.c:88:21: sparse: expression 
>> using sizeof(void)
   drivers/net/wireless/mediatek/mt76/mt76x0/mac.c:97:31: sparse: expression 
using sizeof(void)
>> drivers/net/wireless/mediatek/mt76/mt76x0/mac.c:166:16: sparse: incorrect 
>> type in return expression (different base types) @@    expected unsigned 
>> short @@    got restricted __leunsigned short @@
   drivers/net/wireless/mediatek/mt76/mt76x0/mac.c:166:16:    expected unsigned 
short
   drivers/net/wireless/mediatek/mt76/mt76x0/mac.c:166:16:    got restricted 
__le16 [usertype] <noident>
>> drivers/net/wireless/mediatek/mt76/mt76x0/mac.c:175:23: sparse: incorrect 
>> type in assignment (different base types) @@    expected restricted __le16 
>> [usertype] tx_rate @@    got 16 [usertype] tx_rate @@
   drivers/net/wireless/mediatek/mt76/mt76x0/mac.c:175:23:    expected 
restricted __le16 [usertype] tx_rate
   drivers/net/wireless/mediatek/mt76/mt76x0/mac.c:175:23:    got unsigned short
   drivers/net/wireless/mediatek/mt76/mt76x0/mac.c:438:30: sparse: expression 
using sizeof(void)
   drivers/net/wireless/mediatek/mt76/mt76x0/mac.c:438:30: sparse: expression 
using sizeof(void)
--
>> drivers/net/wireless/mediatek/mt76/mt76x0/tx.c:93:26: sparse: incorrect type 
>> in assignment (different base types) @@    expected unsigned short 
>> [unsigned] [usertype] rate_ctl @@    got  short [unsigned] [usertype] 
>> rate_ctl @@
   drivers/net/wireless/mediatek/mt76/mt76x0/tx.c:93:26:    expected unsigned 
short [unsigned] [usertype] rate_ctl
   drivers/net/wireless/mediatek/mt76/mt76x0/tx.c:93:26:    got restricted 
__le16 [usertype] tx_rate
>> drivers/net/wireless/mediatek/mt76/mt76x0/tx.c:126:27: sparse: expression 
>> using sizeof(void)

Please review and possibly fold the followup patch.

vim +253 drivers/net/wireless/mediatek/mt76/mt76x0/mcu.c

9b00fd07 Stanislaw Gruszka 2018-07-06  242  
9b00fd07 Stanislaw Gruszka 2018-07-06  243  int mt76x0_write_reg_pairs(struct 
mt76x0_dev *dev, u32 base,
9b00fd07 Stanislaw Gruszka 2018-07-06  244                         const struct 
mt76_reg_pair *data, int n)
9b00fd07 Stanislaw Gruszka 2018-07-06  245  {
9b00fd07 Stanislaw Gruszka 2018-07-06  246      const int max_vals_per_cmd = 
INBAND_PACKET_MAX_LEN / 8;
9b00fd07 Stanislaw Gruszka 2018-07-06  247      struct sk_buff *skb;
9b00fd07 Stanislaw Gruszka 2018-07-06  248      int cnt, i, ret;
9b00fd07 Stanislaw Gruszka 2018-07-06  249  
9b00fd07 Stanislaw Gruszka 2018-07-06  250      if (!n)
9b00fd07 Stanislaw Gruszka 2018-07-06  251              return 0;
9b00fd07 Stanislaw Gruszka 2018-07-06  252  
9b00fd07 Stanislaw Gruszka 2018-07-06 @253      cnt = min(max_vals_per_cmd, n);
9b00fd07 Stanislaw Gruszka 2018-07-06  254  
9b00fd07 Stanislaw Gruszka 2018-07-06  255      skb = alloc_skb(cnt * 8 + 
MT_DMA_HDR_LEN + 4, GFP_KERNEL);
9b00fd07 Stanislaw Gruszka 2018-07-06  256      if (!skb)
9b00fd07 Stanislaw Gruszka 2018-07-06  257              return -ENOMEM;
9b00fd07 Stanislaw Gruszka 2018-07-06  258      skb_reserve(skb, 
MT_DMA_HDR_LEN);
9b00fd07 Stanislaw Gruszka 2018-07-06  259  
9b00fd07 Stanislaw Gruszka 2018-07-06  260      for (i = 0; i < cnt; i++) {
9b00fd07 Stanislaw Gruszka 2018-07-06  261              skb_put_le32(skb, base 
+ data[i].reg);
9b00fd07 Stanislaw Gruszka 2018-07-06  262              skb_put_le32(skb, 
data[i].value);
9b00fd07 Stanislaw Gruszka 2018-07-06  263      }
9b00fd07 Stanislaw Gruszka 2018-07-06  264  
9b00fd07 Stanislaw Gruszka 2018-07-06  265      ret = mt76x0_mcu_msg_send(dev, 
skb, CMD_RANDOM_WRITE, cnt == n);
9b00fd07 Stanislaw Gruszka 2018-07-06  266      if (ret)
9b00fd07 Stanislaw Gruszka 2018-07-06  267              return ret;
9b00fd07 Stanislaw Gruszka 2018-07-06  268  
9b00fd07 Stanislaw Gruszka 2018-07-06  269      return 
mt76x0_write_reg_pairs(dev, base, data + cnt, n - cnt);
9b00fd07 Stanislaw Gruszka 2018-07-06  270  }
9b00fd07 Stanislaw Gruszka 2018-07-06  271  
9b00fd07 Stanislaw Gruszka 2018-07-06  272  int mt76x0_read_reg_pairs(struct 
mt76x0_dev *dev, u32 base,
9b00fd07 Stanislaw Gruszka 2018-07-06  273                        struct 
mt76_reg_pair *data, int n)
9b00fd07 Stanislaw Gruszka 2018-07-06  274  {
9b00fd07 Stanislaw Gruszka 2018-07-06  275      const int max_vals_per_cmd = 
INBAND_PACKET_MAX_LEN / 8;
9b00fd07 Stanislaw Gruszka 2018-07-06  276      struct sk_buff *skb;
9b00fd07 Stanislaw Gruszka 2018-07-06  277      int cnt, i, ret;
9b00fd07 Stanislaw Gruszka 2018-07-06  278  
9b00fd07 Stanislaw Gruszka 2018-07-06  279      if (!n)
9b00fd07 Stanislaw Gruszka 2018-07-06  280              return 0;
9b00fd07 Stanislaw Gruszka 2018-07-06  281  
9b00fd07 Stanislaw Gruszka 2018-07-06  282      cnt = min(max_vals_per_cmd, n);
9b00fd07 Stanislaw Gruszka 2018-07-06  283      if (cnt != n)
9b00fd07 Stanislaw Gruszka 2018-07-06  284              return -EINVAL;
9b00fd07 Stanislaw Gruszka 2018-07-06  285  
9b00fd07 Stanislaw Gruszka 2018-07-06  286      skb = alloc_skb(cnt * 8 + 
MT_DMA_HDR_LEN + 4, GFP_KERNEL);
9b00fd07 Stanislaw Gruszka 2018-07-06  287      if (!skb)
9b00fd07 Stanislaw Gruszka 2018-07-06  288              return -ENOMEM;
9b00fd07 Stanislaw Gruszka 2018-07-06  289      skb_reserve(skb, 
MT_DMA_HDR_LEN);
9b00fd07 Stanislaw Gruszka 2018-07-06  290  
9b00fd07 Stanislaw Gruszka 2018-07-06  291      for (i = 0; i < cnt; i++) {
9b00fd07 Stanislaw Gruszka 2018-07-06  292              skb_put_le32(skb, base 
+ data[i].reg);
9b00fd07 Stanislaw Gruszka 2018-07-06  293              skb_put_le32(skb, 
data[i].value);
9b00fd07 Stanislaw Gruszka 2018-07-06  294      }
9b00fd07 Stanislaw Gruszka 2018-07-06  295  
9b00fd07 Stanislaw Gruszka 2018-07-06  296      mutex_lock(&dev->mcu.mutex);
9b00fd07 Stanislaw Gruszka 2018-07-06  297  
9b00fd07 Stanislaw Gruszka 2018-07-06  298      dev->mcu.reg_pairs = data;
9b00fd07 Stanislaw Gruszka 2018-07-06  299      dev->mcu.reg_pairs_len = n;
9b00fd07 Stanislaw Gruszka 2018-07-06  300      dev->mcu.reg_base = base;
9b00fd07 Stanislaw Gruszka 2018-07-06  301      dev->mcu.burst_read = false;
9b00fd07 Stanislaw Gruszka 2018-07-06  302  
9b00fd07 Stanislaw Gruszka 2018-07-06  303      ret = 
__mt76x0_mcu_msg_send(dev, skb, CMD_RANDOM_READ, true);
9b00fd07 Stanislaw Gruszka 2018-07-06  304  
9b00fd07 Stanislaw Gruszka 2018-07-06  305      dev->mcu.reg_pairs = NULL;
9b00fd07 Stanislaw Gruszka 2018-07-06  306  
9b00fd07 Stanislaw Gruszka 2018-07-06  307      mutex_unlock(&dev->mcu.mutex);
9b00fd07 Stanislaw Gruszka 2018-07-06  308  
9b00fd07 Stanislaw Gruszka 2018-07-06  309      consume_skb(skb);
9b00fd07 Stanislaw Gruszka 2018-07-06  310  
9b00fd07 Stanislaw Gruszka 2018-07-06  311      return ret;
9b00fd07 Stanislaw Gruszka 2018-07-06  312  
9b00fd07 Stanislaw Gruszka 2018-07-06  313  }
9b00fd07 Stanislaw Gruszka 2018-07-06  314  
9b00fd07 Stanislaw Gruszka 2018-07-06  315  int mt76x0_burst_write_regs(struct 
mt76x0_dev *dev, u32 offset,
9b00fd07 Stanislaw Gruszka 2018-07-06  316                           const u32 
*data, int n)
9b00fd07 Stanislaw Gruszka 2018-07-06  317  {
9b00fd07 Stanislaw Gruszka 2018-07-06  318      const int max_regs_per_cmd = 
INBAND_PACKET_MAX_LEN / 4 - 1;
9b00fd07 Stanislaw Gruszka 2018-07-06  319      struct sk_buff *skb;
9b00fd07 Stanislaw Gruszka 2018-07-06  320      int cnt, i, ret;
9b00fd07 Stanislaw Gruszka 2018-07-06  321  
9b00fd07 Stanislaw Gruszka 2018-07-06  322      if (!n)
9b00fd07 Stanislaw Gruszka 2018-07-06  323              return 0;
9b00fd07 Stanislaw Gruszka 2018-07-06  324  
9b00fd07 Stanislaw Gruszka 2018-07-06  325      cnt = min(max_regs_per_cmd, n);
9b00fd07 Stanislaw Gruszka 2018-07-06  326  
9b00fd07 Stanislaw Gruszka 2018-07-06  327      skb = alloc_skb(cnt * 4 + 
MT_DMA_HDR_LEN + 4, GFP_KERNEL);
9b00fd07 Stanislaw Gruszka 2018-07-06  328      if (!skb)
9b00fd07 Stanislaw Gruszka 2018-07-06  329              return -ENOMEM;
9b00fd07 Stanislaw Gruszka 2018-07-06  330      skb_reserve(skb, 
MT_DMA_HDR_LEN);
9b00fd07 Stanislaw Gruszka 2018-07-06  331  
9b00fd07 Stanislaw Gruszka 2018-07-06  332      skb_put_le32(skb, 
MT_MCU_MEMMAP_WLAN + offset);
9b00fd07 Stanislaw Gruszka 2018-07-06  333      for (i = 0; i < cnt; i++)
9b00fd07 Stanislaw Gruszka 2018-07-06  334              skb_put_le32(skb, 
data[i]);
9b00fd07 Stanislaw Gruszka 2018-07-06  335  
9b00fd07 Stanislaw Gruszka 2018-07-06  336      ret = mt76x0_mcu_msg_send(dev, 
skb, CMD_BURST_WRITE, cnt == n);
9b00fd07 Stanislaw Gruszka 2018-07-06  337      if (ret)
9b00fd07 Stanislaw Gruszka 2018-07-06  338              return ret;
9b00fd07 Stanislaw Gruszka 2018-07-06  339  
9b00fd07 Stanislaw Gruszka 2018-07-06  340      return 
mt76x0_burst_write_regs(dev, offset + cnt * 4,
9b00fd07 Stanislaw Gruszka 2018-07-06  341                                      
data + cnt, n - cnt);
9b00fd07 Stanislaw Gruszka 2018-07-06  342  }
9b00fd07 Stanislaw Gruszka 2018-07-06  343  
9b00fd07 Stanislaw Gruszka 2018-07-06 @344  int mt76x0_burst_read_regs(struct 
mt76x0_dev *dev, u32 base,
9b00fd07 Stanislaw Gruszka 2018-07-06  345                         struct 
mt76_reg_pair *data, int n)
9b00fd07 Stanislaw Gruszka 2018-07-06  346  {
9b00fd07 Stanislaw Gruszka 2018-07-06  347      const int max_vals_per_cmd = 
INBAND_PACKET_MAX_LEN / 4 - 1;
9b00fd07 Stanislaw Gruszka 2018-07-06  348      struct sk_buff *skb;
9b00fd07 Stanislaw Gruszka 2018-07-06  349      int cnt, ret;
9b00fd07 Stanislaw Gruszka 2018-07-06  350  
9b00fd07 Stanislaw Gruszka 2018-07-06  351      if (!n)
9b00fd07 Stanislaw Gruszka 2018-07-06  352              return 0;
9b00fd07 Stanislaw Gruszka 2018-07-06  353  
9b00fd07 Stanislaw Gruszka 2018-07-06  354      cnt = min(max_vals_per_cmd, n);
9b00fd07 Stanislaw Gruszka 2018-07-06  355      if (cnt != n)
9b00fd07 Stanislaw Gruszka 2018-07-06  356              return -EINVAL;
9b00fd07 Stanislaw Gruszka 2018-07-06  357  
9b00fd07 Stanislaw Gruszka 2018-07-06  358      skb = alloc_skb(cnt * 4 + 
MT_DMA_HDR_LEN + 4, GFP_KERNEL);
9b00fd07 Stanislaw Gruszka 2018-07-06  359      if (!skb)
9b00fd07 Stanislaw Gruszka 2018-07-06  360              return -ENOMEM;
9b00fd07 Stanislaw Gruszka 2018-07-06  361      skb_reserve(skb, 
MT_DMA_HDR_LEN);
9b00fd07 Stanislaw Gruszka 2018-07-06  362  
9b00fd07 Stanislaw Gruszka 2018-07-06  363      skb_put_le32(skb, base + 
data[0].reg);
9b00fd07 Stanislaw Gruszka 2018-07-06  364      skb_put_le32(skb, n);
9b00fd07 Stanislaw Gruszka 2018-07-06  365  
9b00fd07 Stanislaw Gruszka 2018-07-06  366      mutex_lock(&dev->mcu.mutex);
9b00fd07 Stanislaw Gruszka 2018-07-06  367  
9b00fd07 Stanislaw Gruszka 2018-07-06  368      dev->mcu.reg_pairs = data;
9b00fd07 Stanislaw Gruszka 2018-07-06  369      dev->mcu.reg_pairs_len = n;
9b00fd07 Stanislaw Gruszka 2018-07-06  370      dev->mcu.reg_base = base;
9b00fd07 Stanislaw Gruszka 2018-07-06  371      dev->mcu.burst_read = true;
9b00fd07 Stanislaw Gruszka 2018-07-06  372  
9b00fd07 Stanislaw Gruszka 2018-07-06  373      ret = 
__mt76x0_mcu_msg_send(dev, skb, CMD_BURST_READ, true);
9b00fd07 Stanislaw Gruszka 2018-07-06  374  
9b00fd07 Stanislaw Gruszka 2018-07-06  375      dev->mcu.reg_pairs = NULL;
9b00fd07 Stanislaw Gruszka 2018-07-06  376  
9b00fd07 Stanislaw Gruszka 2018-07-06  377      mutex_unlock(&dev->mcu.mutex);
9b00fd07 Stanislaw Gruszka 2018-07-06  378  
9b00fd07 Stanislaw Gruszka 2018-07-06  379      consume_skb(skb);
9b00fd07 Stanislaw Gruszka 2018-07-06  380  
9b00fd07 Stanislaw Gruszka 2018-07-06  381      return ret;
9b00fd07 Stanislaw Gruszka 2018-07-06  382  }
9b00fd07 Stanislaw Gruszka 2018-07-06  383  

:::::: The code at line 253 was first introduced by commit
:::::: 9b00fd07b938453189c6be7d366c71bc7528f7ce mt76x0: mcu files

:::::: TO: Stanislaw Gruszka <sgrus...@redhat.com>
:::::: CC: 0day robot <l...@intel.com>

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

Reply via email to