mt76: introduce MT_RXQ_BAND2 and MT_RXQ_BAND2_WA in mt76_rxq_id
Rename MT_RXQ_EXT in MT_RXQ_BAND1. Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org> Signed-off-by: Felix Fietkau <nbd@nbd.name>
This commit is contained in:
parent
b146f238d1
commit
fc8f841bac
|
@ -99,9 +99,11 @@ enum mt76_rxq_id {
|
|||
MT_RXQ_MAIN,
|
||||
MT_RXQ_MCU,
|
||||
MT_RXQ_MCU_WA,
|
||||
MT_RXQ_EXT,
|
||||
MT_RXQ_EXT_WA,
|
||||
MT_RXQ_BAND1,
|
||||
MT_RXQ_BAND1_WA,
|
||||
MT_RXQ_MAIN_WA,
|
||||
MT_RXQ_BAND2,
|
||||
MT_RXQ_BAND2_WA,
|
||||
__MT_RXQ_MAX
|
||||
};
|
||||
|
||||
|
|
|
@ -49,8 +49,8 @@ static void mt7915_dma_config(struct mt7915_dev *dev)
|
|||
RXQ_CONFIG(MT_RXQ_MAIN, WFDMA0, MT_INT_RX_DONE_BAND0, MT7915_RXQ_BAND0);
|
||||
RXQ_CONFIG(MT_RXQ_MCU, WFDMA1, MT_INT_RX_DONE_WM, MT7915_RXQ_MCU_WM);
|
||||
RXQ_CONFIG(MT_RXQ_MCU_WA, WFDMA1, MT_INT_RX_DONE_WA, MT7915_RXQ_MCU_WA);
|
||||
RXQ_CONFIG(MT_RXQ_EXT, WFDMA0, MT_INT_RX_DONE_BAND1, MT7915_RXQ_BAND1);
|
||||
RXQ_CONFIG(MT_RXQ_EXT_WA, WFDMA1, MT_INT_RX_DONE_WA_EXT, MT7915_RXQ_MCU_WA_EXT);
|
||||
RXQ_CONFIG(MT_RXQ_BAND1, WFDMA0, MT_INT_RX_DONE_BAND1, MT7915_RXQ_BAND1);
|
||||
RXQ_CONFIG(MT_RXQ_BAND1_WA, WFDMA1, MT_INT_RX_DONE_WA_EXT, MT7915_RXQ_MCU_WA_EXT);
|
||||
RXQ_CONFIG(MT_RXQ_MAIN_WA, WFDMA1, MT_INT_RX_DONE_WA_MAIN, MT7915_RXQ_MCU_WA);
|
||||
TXQ_CONFIG(0, WFDMA1, MT_INT_TX_DONE_BAND0, MT7915_TXQ_BAND0);
|
||||
TXQ_CONFIG(1, WFDMA1, MT_INT_TX_DONE_BAND1, MT7915_TXQ_BAND1);
|
||||
|
@ -61,8 +61,8 @@ static void mt7915_dma_config(struct mt7915_dev *dev)
|
|||
RXQ_CONFIG(MT_RXQ_MAIN, WFDMA0, MT_INT_RX_DONE_BAND0_MT7916, MT7916_RXQ_BAND0);
|
||||
RXQ_CONFIG(MT_RXQ_MCU, WFDMA0, MT_INT_RX_DONE_WM, MT7916_RXQ_MCU_WM);
|
||||
RXQ_CONFIG(MT_RXQ_MCU_WA, WFDMA0, MT_INT_RX_DONE_WA, MT7916_RXQ_MCU_WA);
|
||||
RXQ_CONFIG(MT_RXQ_EXT, WFDMA0, MT_INT_RX_DONE_BAND1_MT7916, MT7916_RXQ_BAND1);
|
||||
RXQ_CONFIG(MT_RXQ_EXT_WA, WFDMA0, MT_INT_RX_DONE_WA_EXT_MT7916, MT7916_RXQ_MCU_WA_EXT);
|
||||
RXQ_CONFIG(MT_RXQ_BAND1, WFDMA0, MT_INT_RX_DONE_BAND1_MT7916, MT7916_RXQ_BAND1);
|
||||
RXQ_CONFIG(MT_RXQ_BAND1_WA, WFDMA0, MT_INT_RX_DONE_WA_EXT_MT7916, MT7916_RXQ_MCU_WA_EXT);
|
||||
RXQ_CONFIG(MT_RXQ_MAIN_WA, WFDMA0, MT_INT_RX_DONE_WA_MAIN_MT7916, MT7916_RXQ_MCU_WA_MAIN);
|
||||
TXQ_CONFIG(0, WFDMA0, MT_INT_TX_DONE_BAND0, MT7915_TXQ_BAND0);
|
||||
TXQ_CONFIG(1, WFDMA0, MT_INT_TX_DONE_BAND1, MT7915_TXQ_BAND1);
|
||||
|
@ -84,24 +84,33 @@ static void __mt7915_dma_prefetch(struct mt7915_dev *dev, u32 ofs)
|
|||
mt76_wr(dev, MT_TXQ_EXT_CTRL(1) + ofs, PREFETCH(0xc0, 0x4));
|
||||
mt76_wr(dev, MT_MCUQ_EXT_CTRL(MT_MCUQ_WA) + ofs, PREFETCH(0x100, 0x4));
|
||||
|
||||
mt76_wr(dev, MT_RXQ_EXT_CTRL(MT_RXQ_MCU) + ofs, PREFETCH(0x140, 0x4));
|
||||
mt76_wr(dev, MT_RXQ_EXT_CTRL(MT_RXQ_MCU_WA) + ofs, PREFETCH(0x180, 0x4));
|
||||
mt76_wr(dev, MT_RXQ_BAND1_CTRL(MT_RXQ_MCU) + ofs,
|
||||
PREFETCH(0x140, 0x4));
|
||||
mt76_wr(dev, MT_RXQ_BAND1_CTRL(MT_RXQ_MCU_WA) + ofs,
|
||||
PREFETCH(0x180, 0x4));
|
||||
if (!is_mt7915(&dev->mt76)) {
|
||||
mt76_wr(dev, MT_RXQ_EXT_CTRL(MT_RXQ_MAIN_WA) + ofs, PREFETCH(0x1c0, 0x4));
|
||||
mt76_wr(dev, MT_RXQ_BAND1_CTRL(MT_RXQ_MAIN_WA) + ofs,
|
||||
PREFETCH(0x1c0, 0x4));
|
||||
base = 0x40;
|
||||
}
|
||||
mt76_wr(dev, MT_RXQ_EXT_CTRL(MT_RXQ_EXT_WA) + ofs, PREFETCH(0x1c0 + base, 0x4));
|
||||
mt76_wr(dev, MT_RXQ_EXT_CTRL(MT_RXQ_MAIN) + ofs, PREFETCH(0x200 + base, 0x4));
|
||||
mt76_wr(dev, MT_RXQ_EXT_CTRL(MT_RXQ_EXT) + ofs, PREFETCH(0x240 + base, 0x4));
|
||||
mt76_wr(dev, MT_RXQ_BAND1_CTRL(MT_RXQ_BAND1_WA) + ofs,
|
||||
PREFETCH(0x1c0 + base, 0x4));
|
||||
mt76_wr(dev, MT_RXQ_BAND1_CTRL(MT_RXQ_MAIN) + ofs,
|
||||
PREFETCH(0x200 + base, 0x4));
|
||||
mt76_wr(dev, MT_RXQ_BAND1_CTRL(MT_RXQ_BAND1) + ofs,
|
||||
PREFETCH(0x240 + base, 0x4));
|
||||
|
||||
/* for mt7915, the ring which is next the last
|
||||
* used ring must be initialized.
|
||||
*/
|
||||
if (is_mt7915(&dev->mt76)) {
|
||||
ofs += 0x4;
|
||||
mt76_wr(dev, MT_MCUQ_EXT_CTRL(MT_MCUQ_WA) + ofs, PREFETCH(0x140, 0x0));
|
||||
mt76_wr(dev, MT_RXQ_EXT_CTRL(MT_RXQ_EXT_WA) + ofs, PREFETCH(0x200 + base, 0x0));
|
||||
mt76_wr(dev, MT_RXQ_EXT_CTRL(MT_RXQ_EXT) + ofs, PREFETCH(0x280 + base, 0x0));
|
||||
mt76_wr(dev, MT_MCUQ_EXT_CTRL(MT_MCUQ_WA) + ofs,
|
||||
PREFETCH(0x140, 0x0));
|
||||
mt76_wr(dev, MT_RXQ_BAND1_CTRL(MT_RXQ_BAND1_WA) + ofs,
|
||||
PREFETCH(0x200 + base, 0x0));
|
||||
mt76_wr(dev, MT_RXQ_BAND1_CTRL(MT_RXQ_BAND1) + ofs,
|
||||
PREFETCH(0x280 + base, 0x0));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -439,20 +448,20 @@ int mt7915_dma_init(struct mt7915_dev *dev, struct mt7915_phy *phy2)
|
|||
|
||||
if (dev->dbdc_support || dev->phy.band_idx) {
|
||||
/* rx data queue for band1 */
|
||||
ret = mt76_queue_alloc(dev, &dev->mt76.q_rx[MT_RXQ_EXT],
|
||||
MT_RXQ_ID(MT_RXQ_EXT),
|
||||
ret = mt76_queue_alloc(dev, &dev->mt76.q_rx[MT_RXQ_BAND1],
|
||||
MT_RXQ_ID(MT_RXQ_BAND1),
|
||||
MT7915_RX_RING_SIZE,
|
||||
MT_RX_BUF_SIZE,
|
||||
MT_RXQ_RING_BASE(MT_RXQ_EXT) + hif1_ofs);
|
||||
MT_RXQ_RING_BASE(MT_RXQ_BAND1) + hif1_ofs);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
/* tx free notify event from WA for band1 */
|
||||
ret = mt76_queue_alloc(dev, &dev->mt76.q_rx[MT_RXQ_EXT_WA],
|
||||
MT_RXQ_ID(MT_RXQ_EXT_WA),
|
||||
ret = mt76_queue_alloc(dev, &dev->mt76.q_rx[MT_RXQ_BAND1_WA],
|
||||
MT_RXQ_ID(MT_RXQ_BAND1_WA),
|
||||
MT7915_RX_MCU_RING_SIZE,
|
||||
MT_RX_BUF_SIZE,
|
||||
MT_RXQ_RING_BASE(MT_RXQ_EXT_WA) + hif1_ofs);
|
||||
MT_RXQ_RING_BASE(MT_RXQ_BAND1_WA) + hif1_ofs);
|
||||
if (ret)
|
||||
return ret;
|
||||
}
|
||||
|
|
|
@ -591,8 +591,8 @@ static void mt7915_irq_tasklet(struct tasklet_struct *t)
|
|||
if (intr & MT_INT_RX(MT_RXQ_MAIN))
|
||||
napi_schedule(&dev->mt76.napi[MT_RXQ_MAIN]);
|
||||
|
||||
if (intr & MT_INT_RX(MT_RXQ_EXT))
|
||||
napi_schedule(&dev->mt76.napi[MT_RXQ_EXT]);
|
||||
if (intr & MT_INT_RX(MT_RXQ_BAND1))
|
||||
napi_schedule(&dev->mt76.napi[MT_RXQ_BAND1]);
|
||||
|
||||
if (intr & MT_INT_RX(MT_RXQ_MCU))
|
||||
napi_schedule(&dev->mt76.napi[MT_RXQ_MCU]);
|
||||
|
@ -604,8 +604,8 @@ static void mt7915_irq_tasklet(struct tasklet_struct *t)
|
|||
(intr & MT_INT_RX(MT_RXQ_MAIN_WA)))
|
||||
napi_schedule(&dev->mt76.napi[MT_RXQ_MAIN_WA]);
|
||||
|
||||
if (intr & MT_INT_RX(MT_RXQ_EXT_WA))
|
||||
napi_schedule(&dev->mt76.napi[MT_RXQ_EXT_WA]);
|
||||
if (intr & MT_INT_RX(MT_RXQ_BAND1_WA))
|
||||
napi_schedule(&dev->mt76.napi[MT_RXQ_BAND1_WA]);
|
||||
|
||||
if (intr & MT_INT_MCU_CMD) {
|
||||
u32 val = mt76_rr(dev, MT_MCU_CMD);
|
||||
|
|
|
@ -66,7 +66,7 @@
|
|||
#define MT7915_MAX_TWT_AGRT 16
|
||||
#define MT7915_MAX_STA_TWT_AGRT 8
|
||||
#define MT7915_MIN_TWT_DUR 64
|
||||
#define MT7915_MAX_QUEUE (__MT_RXQ_MAX + __MT_MCUQ_MAX + 2)
|
||||
#define MT7915_MAX_QUEUE (MT_RXQ_BAND2 + __MT_MCUQ_MAX + 2)
|
||||
|
||||
struct mt7915_vif;
|
||||
struct mt7915_sta;
|
||||
|
|
|
@ -623,7 +623,7 @@ enum offs_rev {
|
|||
|
||||
/* WFDMA COMMON */
|
||||
#define __RXQ(q) ((q) + __MT_MCUQ_MAX)
|
||||
#define __TXQ(q) (__RXQ(q) + __MT_RXQ_MAX)
|
||||
#define __TXQ(q) (__RXQ(q) + MT_RXQ_BAND2)
|
||||
|
||||
#define MT_Q_ID(q) (dev->q_id[(q)])
|
||||
#define MT_Q_BASE(q) ((dev->wfdma_mask >> (q)) & 0x1 ? \
|
||||
|
@ -639,7 +639,7 @@ enum offs_rev {
|
|||
|
||||
#define MT_MCUQ_EXT_CTRL(q) (MT_Q_BASE(q) + 0x600 + \
|
||||
MT_MCUQ_ID(q)* 0x4)
|
||||
#define MT_RXQ_EXT_CTRL(q) (MT_Q_BASE(__RXQ(q)) + 0x680 + \
|
||||
#define MT_RXQ_BAND1_CTRL(q) (MT_Q_BASE(__RXQ(q)) + 0x680 + \
|
||||
MT_RXQ_ID(q)* 0x4)
|
||||
#define MT_TXQ_EXT_CTRL(q) (MT_Q_BASE(__TXQ(q)) + 0x600 + \
|
||||
MT_TXQ_ID(q)* 0x4)
|
||||
|
@ -671,8 +671,8 @@ enum offs_rev {
|
|||
#define MT_INT_BAND0_RX_DONE (MT_INT_RX(MT_RXQ_MAIN) | \
|
||||
MT_INT_RX(MT_RXQ_MAIN_WA))
|
||||
|
||||
#define MT_INT_BAND1_RX_DONE (MT_INT_RX(MT_RXQ_EXT) | \
|
||||
MT_INT_RX(MT_RXQ_EXT_WA) | \
|
||||
#define MT_INT_BAND1_RX_DONE (MT_INT_RX(MT_RXQ_BAND1) | \
|
||||
MT_INT_RX(MT_RXQ_BAND1_WA) | \
|
||||
MT_INT_RX(MT_RXQ_MAIN_WA))
|
||||
|
||||
#define MT_INT_RX_DONE_ALL (MT_INT_RX_DONE_MCU | \
|
||||
|
|
|
@ -775,7 +775,7 @@ mt7915_tm_dump_stats(struct mt76_phy *mphy, struct sk_buff *msg)
|
|||
fcs_err = is_mt7915(&dev->mt76) ? FIELD_GET(MT_MIB_SDR3_FCS_ERR_MASK, cnt) :
|
||||
FIELD_GET(MT_MIB_SDR3_FCS_ERR_MASK_MT7916, cnt);
|
||||
|
||||
q = phy->band_idx ? MT_RXQ_EXT : MT_RXQ_MAIN;
|
||||
q = phy->band_idx ? MT_RXQ_BAND1 : MT_RXQ_MAIN;
|
||||
mphy->test.rx_stats.packets[q] += fcs_err;
|
||||
mphy->test.rx_stats.fcs_error[q] += fcs_err;
|
||||
|
||||
|
|
Loading…
Reference in New Issue