blob: 9e64c3603f43bbae42c606e2faa2970ad8d2d70c [file] [log] [blame]
developer66e89bc2024-04-23 14:50:01 +08001From d5ccc55676b9a010e69111f73ecea5d2305c17f5 Mon Sep 17 00:00:00 2001
2From: "sujuan.chen" <sujuan.chen@mediatek.com>
3Date: Fri, 6 Oct 2023 14:01:41 +0800
4Subject: [PATCH 062/116] mtk: wifi: mt76: wed: change pcie0 R5 to pcie1 to get
5 6G ICS
6
7Change-Id: I23a94e3e4b797b513a303b13e4c50e0a0d72bffb
8---
9 mt7996/dma.c | 4 ++++
10 mt7996/init.c | 6 ++----
11 mt7996/mmio.c | 5 ++++-
12 3 files changed, 10 insertions(+), 5 deletions(-)
13
14diff --git a/mt7996/dma.c b/mt7996/dma.c
15index 759a58e8e..5d85e9ea2 100644
16--- a/mt7996/dma.c
17+++ b/mt7996/dma.c
18@@ -538,6 +538,10 @@ int mt7996_dma_init(struct mt7996_dev *dev)
19 if (mt7996_band_valid(dev, MT_BAND2)) {
20 /* rx data queue for mt7996 band2 */
21 rx_base = MT_RXQ_RING_BASE(MT_RXQ_BAND2) + hif1_ofs;
22+ if (mtk_wed_device_active(wed_hif2) && mtk_wed_get_rx_capa(wed_hif2)) {
23+ dev->mt76.q_rx[MT_RXQ_BAND2].flags = MT_WED_Q_RX(0);
24+ dev->mt76.q_rx[MT_RXQ_BAND2].wed = wed_hif2;
25+ }
26 ret = mt76_queue_alloc(dev, &dev->mt76.q_rx[MT_RXQ_BAND2],
27 MT_RXQ_ID(MT_RXQ_BAND2),
28 MT7996_RX_RING_SIZE,
29diff --git a/mt7996/init.c b/mt7996/init.c
30index c10f6675d..de5122f7d 100644
31--- a/mt7996/init.c
32+++ b/mt7996/init.c
33@@ -649,10 +649,8 @@ static int mt7996_register_phy(struct mt7996_dev *dev, struct mt7996_phy *phy,
34 goto error;
35
36 if (wed == &dev->mt76.mmio.wed_hif2 && mtk_wed_device_active(wed)) {
37- u32 irq_mask = dev->mt76.mmio.irqmask | MT_INT_TX_DONE_BAND2;
38-
39- mt76_wr(dev, MT_INT1_MASK_CSR, irq_mask);
40- mtk_wed_device_start(&dev->mt76.mmio.wed_hif2, irq_mask);
41+ mt76_wr(dev, MT_INT_PCIE1_MASK_CSR, MT_INT_TX_RX_DONE_EXT);
42+ mtk_wed_device_start(&dev->mt76.mmio.wed_hif2, MT_INT_TX_RX_DONE_EXT);
43 }
44
45 return 0;
46diff --git a/mt7996/mmio.c b/mt7996/mmio.c
47index 8fe56ed96..a082ccae8 100644
48--- a/mt7996/mmio.c
49+++ b/mt7996/mmio.c
50@@ -527,12 +527,15 @@ static void mt7996_irq_tasklet(struct tasklet_struct *t)
51 dev->mt76.mmio.irqmask);
52 if (intr1 & MT_INT_RX_TXFREE_EXT)
53 napi_schedule(&dev->mt76.napi[MT_RXQ_TXFREE_BAND2]);
54+
55+ if (intr1 & MT_INT_RX_DONE_BAND2_EXT)
56+ napi_schedule(&dev->mt76.napi[MT_RXQ_BAND2]);
57 }
58
59 if (mtk_wed_device_active(wed)) {
60 mtk_wed_device_irq_set_mask(wed, 0);
61 intr = mtk_wed_device_irq_get(wed, dev->mt76.mmio.irqmask);
62- intr |= (intr1 & ~MT_INT_RX_TXFREE_EXT);
63+ intr |= (intr1 & ~MT_INT_TX_RX_DONE_EXT);
64 } else {
65 mt76_wr(dev, MT_INT_MASK_CSR, 0);
66 if (dev->hif2)
67--
682.39.2
69