Hi, I love your patch! Perhaps something to improve: [auto build test WARNING on net-next/master] url: https://github.com/0day-ci/linux/commits/sean-wang-mediatek-com/mt76-mt7921-introduce-mt7921e-support/20201210-190523 base: https://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next.git a7105e3472bf6bb3099d1293ea7d70e7783aa582 config: parisc-allyesconfig (attached as .config) compiler: hppa-linux-gcc (GCC) 9.3.0 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 # https://github.com/0day-ci/linux/commit/c3c0bafc670577a5135220f8c35fd845b9fbdd90 git remote add linux-review https://github.com/0day-ci/linux git fetch --no-tags linux-review sean-wang-mediatek-com/mt76-mt7921-introduce-mt7921e-support/20201210-190523 git checkout c3c0bafc670577a5135220f8c35fd845b9fbdd90 # save the attached .config to linux build tree COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=parisc If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <lkp@xxxxxxxxx> All warnings (new ones prefixed by >>): drivers/net/wireless/mediatek/mt76/mt7921/mcu.c: In function 'mt7921_mcu_send_message': drivers/net/wireless/mediatek/mt76/mt7921/mcu.c:338:25: error: 'MT_MCUQ_WM' undeclared (first use in this function); did you mean 'MT_MCU_CMD'? 338 | enum mt76_txq_id txq = MT_MCUQ_WM; | ^~~~~~~~~~ | MT_MCU_CMD drivers/net/wireless/mediatek/mt76/mt7921/mcu.c:338:25: note: each undeclared identifier is reported only once for each function it appears in drivers/net/wireless/mediatek/mt76/mt7921/mcu.c:346:11: error: 'struct mt76_mcu' has no member named 'timeout' 346 | mdev->mcu.timeout = 20 * HZ; | ^ drivers/net/wireless/mediatek/mt76/mt7921/mcu.c:353:9: error: 'MT_MCUQ_FWDL' undeclared (first use in this function); did you mean 'MT_TXQ_FWDL'? 353 | txq = MT_MCUQ_FWDL; | ^~~~~~~~~~~~ | MT_TXQ_FWDL In file included from drivers/net/wireless/mediatek/mt76/mt7921/mt7921.h:9, from drivers/net/wireless/mediatek/mt76/mt7921/mcu.c:6: drivers/net/wireless/mediatek/mt76/mt7921/mcu.c:429:42: error: 'struct mt76_dev' has no member named 'q_mcu'; did you mean 'mcu'? 429 | return mt76_tx_queue_skb_raw(dev, mdev->q_mcu[txq], skb, 0); | ^~~~~ drivers/net/wireless/mediatek/mt76/mt7921/../mt76.h:752:97: note: in definition of macro 'mt76_tx_queue_skb_raw' 752 | #define mt76_tx_queue_skb_raw(dev, ...) (dev)->mt76.queue_ops->tx_queue_skb_raw(&((dev)->mt76), __VA_ARGS__) | ^~~~~~~~~~~ >> drivers/net/wireless/mediatek/mt76/mt7921/mcu.c:338:19: warning: variable 'txq' set but not used [-Wunused-but-set-variable] 338 | enum mt76_txq_id txq = MT_MCUQ_WM; | ^~~ drivers/net/wireless/mediatek/mt76/mt7921/mcu.c: In function 'mt7921_mcu_add_key': drivers/net/wireless/mediatek/mt76/mt7921/mcu.c:882:9: error: implicit declaration of function 'mt76_mcu_skb_send_msg'; did you mean 'mt76_mcu_send_msg'? [-Werror=implicit-function-declaration] 882 | return mt76_mcu_skb_send_msg(&dev->mt76, skb, | ^~~~~~~~~~~~~~~~~~~~~ | mt76_mcu_send_msg drivers/net/wireless/mediatek/mt76/mt7921/mcu.c: In function 'mt7921_mcu_wtbl_hdr_trans_tlv': drivers/net/wireless/mediatek/mt76/mt7921/mcu.c:1433:15: error: 'MT_WCID_FLAG_4ADDR' undeclared (first use in this function); did you mean 'MT_WCID_FLAG_PS'? 1433 | if (test_bit(MT_WCID_FLAG_4ADDR, &msta->wcid.flags)) { | ^~~~~~~~~~~~~~~~~~ | MT_WCID_FLAG_PS In file included from drivers/net/wireless/mediatek/mt76/mt7921/mt7921.h:9, from drivers/net/wireless/mediatek/mt76/mt7921/mcu.c:6: drivers/net/wireless/mediatek/mt76/mt7921/mcu.c: In function 'mt7921_mcu_start_firmware': drivers/net/wireless/mediatek/mt76/mt7921/../mt76.h:693:42: error: 'struct mt76_dev' has no member named 'mt76' 693 | #define mt76_mcu_send_msg(dev, ...) (dev)->mt76.mcu_ops->mcu_send_msg(&((dev)->mt76), __VA_ARGS__) | ^~ drivers/net/wireless/mediatek/mt76/mt7921/mcu.c:1469:9: note: in expansion of macro 'mt76_mcu_send_msg' 1469 | return mt76_mcu_send_msg(&dev->mt76, MCU_CMD_FW_START_REQ, &req, | ^~~~~~~~~~~~~~~~~ drivers/net/wireless/mediatek/mt76/mt7921/../mt76.h:693:78: error: 'struct mt76_dev' has no member named 'mt76' 693 | #define mt76_mcu_send_msg(dev, ...) (dev)->mt76.mcu_ops->mcu_send_msg(&((dev)->mt76), __VA_ARGS__) | ^~ drivers/net/wireless/mediatek/mt76/mt7921/mcu.c:1469:9: note: in expansion of macro 'mt76_mcu_send_msg' 1469 | return mt76_mcu_send_msg(&dev->mt76, MCU_CMD_FW_START_REQ, &req, | ^~~~~~~~~~~~~~~~~ drivers/net/wireless/mediatek/mt76/mt7921/mcu.c: In function 'mt7921_mcu_restart': drivers/net/wireless/mediatek/mt76/mt7921/../mt76.h:693:42: error: 'struct mt76_dev' has no member named 'mt76' 693 | #define mt76_mcu_send_msg(dev, ...) (dev)->mt76.mcu_ops->mcu_send_msg(&((dev)->mt76), __VA_ARGS__) | ^~ drivers/net/wireless/mediatek/mt76/mt7921/mcu.c:1482:9: note: in expansion of macro 'mt76_mcu_send_msg' 1482 | return mt76_mcu_send_msg(dev, MCU_CMD_NIC_POWER_CTRL, &req, | ^~~~~~~~~~~~~~~~~ drivers/net/wireless/mediatek/mt76/mt7921/../mt76.h:693:78: error: 'struct mt76_dev' has no member named 'mt76' 693 | #define mt76_mcu_send_msg(dev, ...) (dev)->mt76.mcu_ops->mcu_send_msg(&((dev)->mt76), __VA_ARGS__) | ^~ drivers/net/wireless/mediatek/mt76/mt7921/mcu.c:1482:9: note: in expansion of macro 'mt76_mcu_send_msg' 1482 | return mt76_mcu_send_msg(dev, MCU_CMD_NIC_POWER_CTRL, &req, | ^~~~~~~~~~~~~~~~~ drivers/net/wireless/mediatek/mt76/mt7921/mcu.c: In function 'mt7921_mcu_patch_sem_ctrl': drivers/net/wireless/mediatek/mt76/mt7921/../mt76.h:693:42: error: 'struct mt76_dev' has no member named 'mt76' 693 | #define mt76_mcu_send_msg(dev, ...) (dev)->mt76.mcu_ops->mcu_send_msg(&((dev)->mt76), __VA_ARGS__) | ^~ drivers/net/wireless/mediatek/mt76/mt7921/mcu.c:1494:9: note: in expansion of macro 'mt76_mcu_send_msg' 1494 | return mt76_mcu_send_msg(&dev->mt76, MCU_CMD_PATCH_SEM_CONTROL, &req, | ^~~~~~~~~~~~~~~~~ drivers/net/wireless/mediatek/mt76/mt7921/../mt76.h:693:78: error: 'struct mt76_dev' has no member named 'mt76' 693 | #define mt76_mcu_send_msg(dev, ...) (dev)->mt76.mcu_ops->mcu_send_msg(&((dev)->mt76), __VA_ARGS__) | ^~ drivers/net/wireless/mediatek/mt76/mt7921/mcu.c:1494:9: note: in expansion of macro 'mt76_mcu_send_msg' 1494 | return mt76_mcu_send_msg(&dev->mt76, MCU_CMD_PATCH_SEM_CONTROL, &req, | ^~~~~~~~~~~~~~~~~ drivers/net/wireless/mediatek/mt76/mt7921/mcu.c: In function 'mt7921_mcu_start_patch': drivers/net/wireless/mediatek/mt76/mt7921/../mt76.h:693:42: error: 'struct mt76_dev' has no member named 'mt76' 693 | #define mt76_mcu_send_msg(dev, ...) (dev)->mt76.mcu_ops->mcu_send_msg(&((dev)->mt76), __VA_ARGS__) | ^~ drivers/net/wireless/mediatek/mt76/mt7921/mcu.c:1507:9: note: in expansion of macro 'mt76_mcu_send_msg' 1507 | return mt76_mcu_send_msg(&dev->mt76, MCU_CMD_PATCH_FINISH_REQ, &req, | ^~~~~~~~~~~~~~~~~ drivers/net/wireless/mediatek/mt76/mt7921/../mt76.h:693:78: error: 'struct mt76_dev' has no member named 'mt76' 693 | #define mt76_mcu_send_msg(dev, ...) (dev)->mt76.mcu_ops->mcu_send_msg(&((dev)->mt76), __VA_ARGS__) | ^~ drivers/net/wireless/mediatek/mt76/mt7921/mcu.c:1507:9: note: in expansion of macro 'mt76_mcu_send_msg' 1507 | return mt76_mcu_send_msg(&dev->mt76, MCU_CMD_PATCH_FINISH_REQ, &req, | ^~~~~~~~~~~~~~~~~ drivers/net/wireless/mediatek/mt76/mt7921/mcu.c: In function 'mt7921_mcu_init_download': drivers/net/wireless/mediatek/mt76/mt7921/../mt76.h:693:42: error: 'struct mt76_dev' has no member named 'mt76' 693 | #define mt76_mcu_send_msg(dev, ...) (dev)->mt76.mcu_ops->mcu_send_msg(&((dev)->mt76), __VA_ARGS__) | ^~ drivers/net/wireless/mediatek/mt76/mt7921/mcu.c:1544:9: note: in expansion of macro 'mt76_mcu_send_msg' 1544 | return mt76_mcu_send_msg(&dev->mt76, attr, &req, sizeof(req), true); | ^~~~~~~~~~~~~~~~~ drivers/net/wireless/mediatek/mt76/mt7921/../mt76.h:693:78: error: 'struct mt76_dev' has no member named 'mt76' 693 | #define mt76_mcu_send_msg(dev, ...) (dev)->mt76.mcu_ops->mcu_send_msg(&((dev)->mt76), __VA_ARGS__) | ^~ drivers/net/wireless/mediatek/mt76/mt7921/mcu.c:1544:9: note: in expansion of macro 'mt76_mcu_send_msg' 1544 | return mt76_mcu_send_msg(&dev->mt76, attr, &req, sizeof(req), true); | ^~~~~~~~~~~~~~~~~ drivers/net/wireless/mediatek/mt76/mt7921/mcu.c: In function 'mt7921_load_patch': drivers/net/wireless/mediatek/mt76/mt7921/mcu.c:1603:9: error: implicit declaration of function 'mt76_mcu_send_firmware'; did you mean 'mt7921_mcu_start_firmware'? [-Werror=implicit-function-declaration] 1603 | ret = mt76_mcu_send_firmware(&dev->mt76, MCU_CMD_FW_SCATTER, | ^~~~~~~~~~~~~~~~~~~~~~ | mt7921_mcu_start_firmware In file included from drivers/net/wireless/mediatek/mt76/mt7921/mt7921.h:9, from drivers/net/wireless/mediatek/mt76/mt7921/mcu.c:6: drivers/net/wireless/mediatek/mt76/mt7921/mcu.c: In function 'mt7921_load_firmware': drivers/net/wireless/mediatek/mt76/mt7921/mcu.c:1756:39: error: 'struct mt76_dev' has no member named 'q_mcu'; did you mean 'mcu'? 1756 | mt76_queue_tx_cleanup(dev, dev->mt76.q_mcu[MT_MCUQ_FWDL], false); | ^~~~~ drivers/net/wireless/mediatek/mt76/mt7921/../mt76.h:755:91: note: in definition of macro 'mt76_queue_tx_cleanup' 755 | #define mt76_queue_tx_cleanup(dev, ...) (dev)->mt76.queue_ops->tx_cleanup(&((dev)->mt76), __VA_ARGS__) | ^~~~~~~~~~~ drivers/net/wireless/mediatek/mt76/mt7921/mcu.c:1756:45: error: 'MT_MCUQ_FWDL' undeclared (first use in this function); did you mean 'MT_TXQ_FWDL'? 1756 | mt76_queue_tx_cleanup(dev, dev->mt76.q_mcu[MT_MCUQ_FWDL], false); | ^~~~~~~~~~~~ drivers/net/wireless/mediatek/mt76/mt7921/../mt76.h:755:91: note: in definition of macro 'mt76_queue_tx_cleanup' 755 | #define mt76_queue_tx_cleanup(dev, ...) (dev)->mt76.queue_ops->tx_cleanup(&((dev)->mt76), __VA_ARGS__) | ^~~~~~~~~~~ drivers/net/wireless/mediatek/mt76/mt7921/mcu.c: In function 'mt7921_mcu_fw_log_2_host': -- drivers/net/wireless/mediatek/mt76/mt7921/mac.c: In function 'mt7921_set_tx_blocked': drivers/net/wireless/mediatek/mt76/mt7921/mac.c:779:10: error: 'struct mt76_phy' has no member named 'q_tx' 779 | q = mphy->q_tx[0]; | ^~ drivers/net/wireless/mediatek/mt76/mt7921/mac.c:780:20: error: 'struct mt76_queue' has no member named 'blocked'; did you mean 'lock'? 780 | if (blocked == q->blocked) | ^~~~~~~ | lock drivers/net/wireless/mediatek/mt76/mt7921/mac.c:783:5: error: 'struct mt76_queue' has no member named 'blocked'; did you mean 'lock'? 783 | q->blocked = blocked; | ^~~~~~~ | lock drivers/net/wireless/mediatek/mt76/mt7921/mac.c:785:13: error: 'struct mt76_phy' has no member named 'q_tx' 785 | q2 = mphy2->q_tx[0]; | ^~ drivers/net/wireless/mediatek/mt76/mt7921/mac.c:786:7: error: 'struct mt76_queue' has no member named 'blocked'; did you mean 'lock'? 786 | q2->blocked = blocked; | ^~~~~~~ | lock In file included from drivers/net/wireless/mediatek/mt76/mt7921/mt7921.h:9, from drivers/net/wireless/mediatek/mt76/mt7921/mac.c:6: drivers/net/wireless/mediatek/mt76/mt7921/mac.c: In function 'mt7921_mac_tx_free': drivers/net/wireless/mediatek/mt76/mt7921/mac.c:925:38: error: 'struct mt76_phy' has no member named 'q_tx' 925 | mt76_queue_tx_cleanup(dev, dev->mphy.q_tx[MT_TXQ_PSD], false); | ^ drivers/net/wireless/mediatek/mt76/mt7921/../mt76.h:755:91: note: in definition of macro 'mt76_queue_tx_cleanup' 755 | #define mt76_queue_tx_cleanup(dev, ...) (dev)->mt76.queue_ops->tx_cleanup(&((dev)->mt76), __VA_ARGS__) | ^~~~~~~~~~~ drivers/net/wireless/mediatek/mt76/mt7921/mac.c:926:38: error: 'struct mt76_phy' has no member named 'q_tx' 926 | mt76_queue_tx_cleanup(dev, dev->mphy.q_tx[MT_TXQ_BE], false); | ^ drivers/net/wireless/mediatek/mt76/mt7921/../mt76.h:755:91: note: in definition of macro 'mt76_queue_tx_cleanup' 755 | #define mt76_queue_tx_cleanup(dev, ...) (dev)->mt76.queue_ops->tx_cleanup(&((dev)->mt76), __VA_ARGS__) | ^~~~~~~~~~~ drivers/net/wireless/mediatek/mt76/mt7921/mac.c:928:38: error: 'struct mt76_phy' has no member named 'q_tx' 928 | mt76_queue_tx_cleanup(dev, mphy_ext->q_tx[MT_TXQ_PSD], false); | ^~ drivers/net/wireless/mediatek/mt76/mt7921/../mt76.h:755:91: note: in definition of macro 'mt76_queue_tx_cleanup' 755 | #define mt76_queue_tx_cleanup(dev, ...) (dev)->mt76.queue_ops->tx_cleanup(&((dev)->mt76), __VA_ARGS__) | ^~~~~~~~~~~ drivers/net/wireless/mediatek/mt76/mt7921/mac.c:929:38: error: 'struct mt76_phy' has no member named 'q_tx' 929 | mt76_queue_tx_cleanup(dev, mphy_ext->q_tx[MT_TXQ_BE], false); | ^~ drivers/net/wireless/mediatek/mt76/mt7921/../mt76.h:755:91: note: in definition of macro 'mt76_queue_tx_cleanup' 755 | #define mt76_queue_tx_cleanup(dev, ...) (dev)->mt76.queue_ops->tx_cleanup(&((dev)->mt76), __VA_ARGS__) | ^~~~~~~~~~~ >> drivers/net/wireless/mediatek/mt76/mt7921/mac.c:946:23: warning: variable 'phy' set but not used [-Wunused-but-set-variable] 946 | struct mt7921_phy *phy; | ^~~ drivers/net/wireless/mediatek/mt76/mt7921/mac.c:974:16: error: 'struct mt76_phy' has no member named 'q_tx' 974 | dev->mphy.q_tx[0]->blocked) | ^ In file included from drivers/net/wireless/mediatek/mt76/mt7921/mt7921.h:9, from drivers/net/wireless/mediatek/mt76/mt7921/mac.c:6: drivers/net/wireless/mediatek/mt76/mt7921/mac.c: In function 'mt7921_dma_reset': drivers/net/wireless/mediatek/mt76/mt7921/mac.c:1224:39: error: 'struct mt76_dev' has no member named 'q_mcu'; did you mean 'mcu'? 1224 | mt76_queue_tx_cleanup(dev, dev->mt76.q_mcu[MT_MCUQ_WA], true); | ^~~~~ drivers/net/wireless/mediatek/mt76/mt7921/../mt76.h:755:91: note: in definition of macro 'mt76_queue_tx_cleanup' 755 | #define mt76_queue_tx_cleanup(dev, ...) (dev)->mt76.queue_ops->tx_cleanup(&((dev)->mt76), __VA_ARGS__) | ^~~~~~~~~~~ drivers/net/wireless/mediatek/mt76/mt7921/mac.c:1224:45: error: 'MT_MCUQ_WA' undeclared (first use in this function); did you mean 'MT_RXQ_MCU_WA'? 1224 | mt76_queue_tx_cleanup(dev, dev->mt76.q_mcu[MT_MCUQ_WA], true); | ^~~~~~~~~~ drivers/net/wireless/mediatek/mt76/mt7921/../mt76.h:755:91: note: in definition of macro 'mt76_queue_tx_cleanup' 755 | #define mt76_queue_tx_cleanup(dev, ...) (dev)->mt76.queue_ops->tx_cleanup(&((dev)->mt76), __VA_ARGS__) | ^~~~~~~~~~~ drivers/net/wireless/mediatek/mt76/mt7921/mac.c:1224:45: note: each undeclared identifier is reported only once for each function it appears in 1224 | mt76_queue_tx_cleanup(dev, dev->mt76.q_mcu[MT_MCUQ_WA], true); | ^~~~~~~~~~ drivers/net/wireless/mediatek/mt76/mt7921/../mt76.h:755:91: note: in definition of macro 'mt76_queue_tx_cleanup' 755 | #define mt76_queue_tx_cleanup(dev, ...) (dev)->mt76.queue_ops->tx_cleanup(&((dev)->mt76), __VA_ARGS__) | ^~~~~~~~~~~ drivers/net/wireless/mediatek/mt76/mt7921/mac.c:1226:39: error: 'struct mt76_phy' has no member named 'q_tx' 1226 | mt76_queue_tx_cleanup(dev, phy->mt76->q_tx[i], true); | ^~ drivers/net/wireless/mediatek/mt76/mt7921/../mt76.h:755:91: note: in definition of macro 'mt76_queue_tx_cleanup' 755 | #define mt76_queue_tx_cleanup(dev, ...) (dev)->mt76.queue_ops->tx_cleanup(&((dev)->mt76), __VA_ARGS__) | ^~~~~~~~~~~ drivers/net/wireless/mediatek/mt76/mt7921/mac.c:1228:39: error: 'struct mt76_phy' has no member named 'q_tx' 1228 | mt76_queue_tx_cleanup(dev, mphy_ext->q_tx[i], true); | ^~ drivers/net/wireless/mediatek/mt76/mt7921/../mt76.h:755:91: note: in definition of macro 'mt76_queue_tx_cleanup' 755 | #define mt76_queue_tx_cleanup(dev, ...) (dev)->mt76.queue_ops->tx_cleanup(&((dev)->mt76), __VA_ARGS__) | ^~~~~~~~~~~ vim +/txq +338 drivers/net/wireless/mediatek/mt76/mt7921/mcu.c 331 332 static int 333 mt7921_mcu_send_message(struct mt76_dev *mdev, struct sk_buff *skb, 334 int cmd, int *wait_seq) 335 { 336 struct mt7921_dev *dev = container_of(mdev, struct mt7921_dev, mt76); 337 int txd_len, mcu_cmd = cmd & MCU_CMD_MASK; > 338 enum mt76_txq_id txq = MT_MCUQ_WM; 339 struct mt7921_uni_txd *uni_txd; 340 struct mt7921_mcu_txd *mcu_txd; 341 u8 seq, pkt_fmt, qidx; 342 __le32 *txd; 343 u32 val; 344 345 /* TODO: make dynamic based on msg type */ 346 mdev->mcu.timeout = 20 * HZ; 347 348 seq = ++dev->mt76.mcu.msg_seq & 0xf; 349 if (!seq) 350 seq = ++dev->mt76.mcu.msg_seq & 0xf; 351 352 if (cmd == MCU_CMD_FW_SCATTER) { 353 txq = MT_MCUQ_FWDL; 354 goto exit; 355 } 356 357 txd_len = cmd & MCU_UNI_PREFIX ? sizeof(*uni_txd) : sizeof(*mcu_txd); 358 txd = (__le32 *)skb_push(skb, txd_len); 359 360 if (test_bit(MT76_STATE_MCU_RUNNING, &dev->mphy.state)) { 361 qidx = MT_TX_MCU_PORT_RX_Q0; 362 pkt_fmt = MT_TX_TYPE_CMD; 363 } else { 364 qidx = MT_TX_MCU_PORT_RX_Q0; 365 pkt_fmt = MT_TX_TYPE_CMD; 366 } 367 368 val = FIELD_PREP(MT_TXD0_TX_BYTES, skb->len) | 369 FIELD_PREP(MT_TXD0_PKT_FMT, pkt_fmt) | 370 FIELD_PREP(MT_TXD0_Q_IDX, qidx); 371 txd[0] = cpu_to_le32(val); 372 373 val = MT_TXD1_LONG_FORMAT | 374 FIELD_PREP(MT_TXD1_HDR_FORMAT, MT_HDR_FORMAT_CMD); 375 txd[1] = cpu_to_le32(val); 376 377 if (cmd & MCU_UNI_PREFIX) { 378 uni_txd = (struct mt7921_uni_txd *)txd; 379 uni_txd->len = cpu_to_le16(skb->len - sizeof(uni_txd->txd)); 380 uni_txd->option = MCU_CMD_UNI_EXT_ACK; 381 uni_txd->cid = cpu_to_le16(mcu_cmd); 382 uni_txd->s2d_index = MCU_S2D_H2N; 383 uni_txd->pkt_type = MCU_PKT_ID; 384 uni_txd->seq = seq; 385 386 goto exit; 387 } 388 389 mcu_txd = (struct mt7921_mcu_txd *)txd; 390 mcu_txd->len = cpu_to_le16(skb->len - sizeof(mcu_txd->txd)); 391 mcu_txd->pq_id = cpu_to_le16(MCU_PQ_ID(MT_TX_PORT_IDX_MCU, qidx)); 392 mcu_txd->pkt_type = MCU_PKT_ID; 393 mcu_txd->seq = seq; 394 395 switch (cmd & ~MCU_CMD_MASK) { 396 case MCU_FW_PREFIX: 397 mcu_txd->set_query = MCU_Q_NA; 398 mcu_txd->cid = mcu_cmd; 399 break; 400 case MCU_CE_PREFIX: 401 if (cmd & MCU_QUERY_MASK) 402 mcu_txd->set_query = MCU_Q_QUERY; 403 else 404 mcu_txd->set_query = MCU_Q_SET; 405 mcu_txd->cid = mcu_cmd; 406 break; 407 default: 408 mcu_txd->cid = MCU_CMD_EXT_CID; 409 if (cmd & MCU_QUERY_PREFIX || cmd == MCU_EXT_CMD_EFUSE_ACCESS) 410 mcu_txd->set_query = MCU_Q_QUERY; 411 else 412 mcu_txd->set_query = MCU_Q_SET; 413 mcu_txd->ext_cid = mcu_cmd; 414 mcu_txd->ext_cid_ack = 1; 415 break; 416 } 417 418 if (cmd == MCU_EXT_CMD_MWDS_SUPPORT) 419 mcu_txd->s2d_index = MCU_S2D_H2C; 420 else 421 mcu_txd->s2d_index = MCU_S2D_H2N; 422 WARN_ON(cmd == MCU_EXT_CMD_EFUSE_ACCESS && 423 mcu_txd->set_query != MCU_Q_QUERY); 424 425 exit: 426 if (wait_seq) 427 *wait_seq = seq; 428 429 return mt76_tx_queue_skb_raw(dev, mdev->q_mcu[txq], skb, 0); 430 } 431 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx
Attachment:
.config.gz
Description: application/gzip