Search Linux Wireless

Re: [PATCH v2] mt76: mmio: introduce mt76x02_check_tx_hang watchdog

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Lorenzo,

I love your patch! Yet something to improve:

[auto build test ERROR on wireless-drivers-next/master]
[also build test ERROR on next-20181224]
[cannot apply to v4.20]
[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/Lorenzo-Bianconi/mt76-mmio-introduce-mt76x02_check_tx_hang-watchdog/20181228-224737
base:   https://git.kernel.org/pub/scm/linux/kernel/git/kvalo/wireless-drivers-next.git master
config: i386-randconfig-sb0-12290140 (attached as .config)
compiler: gcc-4.9 (Debian 4.9.4-2) 4.9.4
reproduce:
        # save the attached .config to linux build tree
        make ARCH=i386 

All errors (new ones prefixed by >>):

   In file included from drivers/net/wireless/mediatek/mt76/mt76x02.h:23:0,
                    from drivers/net/wireless/mediatek/mt76/mt76x02_mmio.c:21:
   drivers/net/wireless/mediatek/mt76/mt76x02_mmio.c: In function 'mt76x02_watchdog_reset':
>> drivers/net/wireless/mediatek/mt76/mt76x02_mmio.c:435:36: error: 'MT_TXOP_ED_CCA_EN' undeclared (first use in this function)
     mt76_clear(dev, MT_TXOP_CTRL_CFG, MT_TXOP_ED_CCA_EN);
                                       ^
   drivers/net/wireless/mediatek/mt76/mt76.h:507:65: note: in definition of macro 'mt76_rmw'
    #define mt76_rmw(dev, ...) (dev)->mt76.bus->rmw(&((dev)->mt76), __VA_ARGS__)
                                                                    ^
   drivers/net/wireless/mediatek/mt76/mt76x02_mmio.c:435:2: note: in expansion of macro 'mt76_clear'
     mt76_clear(dev, MT_TXOP_CTRL_CFG, MT_TXOP_ED_CCA_EN);
     ^
   drivers/net/wireless/mediatek/mt76/mt76x02_mmio.c:435:36: note: each undeclared identifier is reported only once for each function it appears in
     mt76_clear(dev, MT_TXOP_CTRL_CFG, MT_TXOP_ED_CCA_EN);
                                       ^
   drivers/net/wireless/mediatek/mt76/mt76.h:507:65: note: in definition of macro 'mt76_rmw'
    #define mt76_rmw(dev, ...) (dev)->mt76.bus->rmw(&((dev)->mt76), __VA_ARGS__)
                                                                    ^
   drivers/net/wireless/mediatek/mt76/mt76x02_mmio.c:435:2: note: in expansion of macro 'mt76_clear'
     mt76_clear(dev, MT_TXOP_CTRL_CFG, MT_TXOP_ED_CCA_EN);
     ^
   drivers/net/wireless/mediatek/mt76/mt76x02_mmio.c:455:9: error: 'struct mt76x02_dev' has no member named 'ed_monitor'
     if (dev->ed_monitor)
            ^

vim +/MT_TXOP_ED_CCA_EN +435 drivers/net/wireless/mediatek/mt76/mt76x02_mmio.c

   410	
   411	static void mt76x02_watchdog_reset(struct mt76x02_dev *dev)
   412	{
   413		u32 mask = dev->mt76.mmio.irqmask;
   414		int i;
   415	
   416		ieee80211_stop_queues(dev->mt76.hw);
   417		set_bit(MT76_RESET, &dev->mt76.state);
   418	
   419		tasklet_disable(&dev->pre_tbtt_tasklet);
   420		tasklet_disable(&dev->tx_tasklet);
   421	
   422		for (i = 0; i < ARRAY_SIZE(dev->mt76.napi); i++)
   423			napi_disable(&dev->mt76.napi[i]);
   424	
   425		mutex_lock(&dev->mt76.mutex);
   426	
   427		if (dev->beacon_mask)
   428			mt76_clear(dev, MT_BEACON_TIME_CFG,
   429				   MT_BEACON_TIME_CFG_BEACON_TX |
   430				   MT_BEACON_TIME_CFG_TBTT_EN);
   431	
   432		mt76x02_irq_disable(dev, mask);
   433	
   434		/* perform device reset */
 > 435		mt76_clear(dev, MT_TXOP_CTRL_CFG, MT_TXOP_ED_CCA_EN);
   436		mt76_wr(dev, MT_MAC_SYS_CTRL, 0);
   437		mt76_clear(dev, MT_WPDMA_GLO_CFG,
   438			   MT_WPDMA_GLO_CFG_TX_DMA_EN | MT_WPDMA_GLO_CFG_RX_DMA_EN);
   439		usleep_range(5000, 10000);
   440		mt76_wr(dev, MT_INT_SOURCE_CSR, 0xffffffff);
   441	
   442		/* let fw reset DMA */
   443		mt76_set(dev, 0x734, 0x3);
   444	
   445		for (i = 0; i < ARRAY_SIZE(dev->mt76.q_tx); i++)
   446			mt76_queue_tx_cleanup(dev, i, true);
   447	
   448		for (i = 0; i < ARRAY_SIZE(dev->mt76.q_rx); i++)
   449			mt76_queue_rx_reset(dev, i);
   450	
   451		mt76_wr(dev, MT_MAC_SYS_CTRL,
   452			MT_MAC_SYS_CTRL_ENABLE_TX | MT_MAC_SYS_CTRL_ENABLE_RX);
   453		mt76_set(dev, MT_WPDMA_GLO_CFG,
   454			 MT_WPDMA_GLO_CFG_TX_DMA_EN | MT_WPDMA_GLO_CFG_RX_DMA_EN);
   455		if (dev->ed_monitor)
   456			mt76_set(dev, MT_TXOP_CTRL_CFG, MT_TXOP_ED_CCA_EN);
   457	
   458		if (dev->beacon_mask)
   459			mt76_set(dev, MT_BEACON_TIME_CFG,
   460				 MT_BEACON_TIME_CFG_BEACON_TX |
   461				 MT_BEACON_TIME_CFG_TBTT_EN);
   462	
   463		mt76x02_irq_enable(dev, mask);
   464	
   465		mutex_unlock(&dev->mt76.mutex);
   466	
   467		clear_bit(MT76_RESET, &dev->mt76.state);
   468	
   469		tasklet_enable(&dev->tx_tasklet);
   470		tasklet_schedule(&dev->tx_tasklet);
   471	
   472		tasklet_enable(&dev->pre_tbtt_tasklet);
   473	
   474		for (i = 0; i < ARRAY_SIZE(dev->mt76.napi); i++) {
   475			napi_enable(&dev->mt76.napi[i]);
   476			napi_schedule(&dev->mt76.napi[i]);
   477		}
   478	
   479		ieee80211_wake_queues(dev->mt76.hw);
   480	
   481		mt76_txq_schedule_all(&dev->mt76);
   482	}
   483	

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

Attachment: .config.gz
Description: application/gzip


[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Wireless Personal Area Network]     [Linux Bluetooth]     [Wireless Regulations]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite Hiking]     [MIPS Linux]     [ARM Linux]     [Linux RAID]

  Powered by Linux