return 0;
if (dev->hif2 &&
- ((is_mt7996(&dev->mt76) && band == MT_BAND2) ||
- (is_mt7992(&dev->mt76) && band == MT_BAND1))) {
+ ((is_mt7992(&dev->mt76) && band == MT_BAND1) ||
+ (is_mt7996(&dev->mt76) && band == MT_BAND2 &&
+ !mt76_npu_device_active(&dev->mt76)))) {
hif1_ofs = MT_WFDMA0_PCIE1(0) - MT_WFDMA0(0);
wed = &dev->mt76.mmio.wed_hif2;
}
/* init wiphy according to mphy and phy */
mt7996_init_wiphy_band(mphy->hw, phy);
- if (is_mt7996(&dev->mt76) && !dev->hif2 && band == MT_BAND1) {
+ if (is_mt7996(&dev->mt76) &&
+ ((band == MT_BAND1 && !dev->hif2) ||
+ (band == MT_BAND2 && mt76_npu_device_active(&dev->mt76)))) {
int i;
for (i = 0; i <= MT_TXQ_PSD; i++)
- mphy->q_tx[i] = dev->mt76.phys[MT_BAND0]->q_tx[0];
+ mphy->q_tx[i] = dev->mt76.phys[band - 1]->q_tx[0];
} else {
- ret = mt7996_init_tx_queues(mphy->priv, MT_TXQ_ID(band),
- MT7996_TX_RING_SIZE,
+ int size = is_mt7996(&dev->mt76) &&
+ mt76_npu_device_active(&dev->mt76)
+ ? MT7996_NPU_TX_RING_SIZE / 2 : MT7996_TX_RING_SIZE;
+
+ ret = mt7996_init_tx_queues(mphy->priv, MT_TXQ_ID(band), size,
MT_TXQ_RING_BASE(band) + hif1_ofs,
wed);
if (ret)
#define MT7996_RX_RING_SIZE 1536
#define MT7996_RX_MCU_RING_SIZE 512
#define MT7996_RX_MCU_RING_SIZE_WA 1024
+#define MT7996_NPU_TX_RING_SIZE 1024
/* scatter-gather of mcu event is not supported in connac3 */
#define MT7996_RX_MCU_BUF_SIZE (2048 + \
SKB_DATA_ALIGN(sizeof(struct skb_shared_info)))