Search Linux Wireless

Re: [PATCH net-next v1] mt76: mt7921: introduce mt7921e support

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

 



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


[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