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