|
@@ -302,7 +302,7 @@ Signed-off-by: Paolo Abeni <[email protected]>
|
|
|
}
|
|
|
|
|
|
mtk_wed_set_512_support(dev, false);
|
|
|
-@@ -652,6 +699,14 @@ mtk_wed_deinit(struct mtk_wed_device *de
|
|
|
+@@ -651,6 +698,14 @@ mtk_wed_deinit(struct mtk_wed_device *de
|
|
|
MTK_WED_CTRL_RX_ROUTE_QM_EN |
|
|
|
MTK_WED_CTRL_WED_RX_BM_EN |
|
|
|
MTK_WED_CTRL_RX_RRO_QM_EN);
|
|
@@ -317,7 +317,7 @@ Signed-off-by: Paolo Abeni <[email protected]>
|
|
|
}
|
|
|
|
|
|
static void
|
|
|
-@@ -701,21 +756,37 @@ mtk_wed_detach(struct mtk_wed_device *de
|
|
|
+@@ -700,21 +755,37 @@ mtk_wed_detach(struct mtk_wed_device *de
|
|
|
mutex_unlock(&hw_lock);
|
|
|
}
|
|
|
|
|
@@ -362,7 +362,7 @@ Signed-off-by: Paolo Abeni <[email protected]>
|
|
|
|
|
|
wed_w32(dev, MTK_WED_PCIE_INT_CTRL,
|
|
|
FIELD_PREP(MTK_WED_PCIE_INT_CTRL_POLL_EN, 2));
|
|
|
-@@ -723,19 +794,9 @@ mtk_wed_bus_init(struct mtk_wed_device *
|
|
|
+@@ -722,19 +793,9 @@ mtk_wed_bus_init(struct mtk_wed_device *
|
|
|
/* pcie interrupt control: pola/source selection */
|
|
|
wed_set(dev, MTK_WED_PCIE_INT_CTRL,
|
|
|
MTK_WED_PCIE_INT_CTRL_MSK_EN_POLA |
|
|
@@ -385,7 +385,7 @@ Signed-off-by: Paolo Abeni <[email protected]>
|
|
|
break;
|
|
|
}
|
|
|
case MTK_WED_BUS_AXI:
|
|
|
-@@ -773,18 +834,19 @@ mtk_wed_set_wpdma(struct mtk_wed_device
|
|
|
+@@ -772,18 +833,19 @@ mtk_wed_set_wpdma(struct mtk_wed_device
|
|
|
static void
|
|
|
mtk_wed_hw_init_early(struct mtk_wed_device *dev)
|
|
|
{
|
|
@@ -412,7 +412,7 @@ Signed-off-by: Paolo Abeni <[email protected]>
|
|
|
wed_m32(dev, MTK_WED_WDMA_GLO_CFG, mask, set);
|
|
|
|
|
|
if (mtk_wed_is_v1(dev->hw)) {
|
|
|
-@@ -932,11 +994,18 @@ mtk_wed_route_qm_hw_init(struct mtk_wed_
|
|
|
+@@ -931,11 +993,18 @@ mtk_wed_route_qm_hw_init(struct mtk_wed_
|
|
|
}
|
|
|
|
|
|
/* configure RX_ROUTE_QM */
|
|
@@ -436,7 +436,7 @@ Signed-off-by: Paolo Abeni <[email protected]>
|
|
|
/* enable RX_ROUTE_QM */
|
|
|
wed_set(dev, MTK_WED_CTRL, MTK_WED_CTRL_RX_ROUTE_QM_EN);
|
|
|
}
|
|
|
-@@ -949,22 +1018,30 @@ mtk_wed_hw_init(struct mtk_wed_device *d
|
|
|
+@@ -948,22 +1017,30 @@ mtk_wed_hw_init(struct mtk_wed_device *d
|
|
|
|
|
|
dev->init_done = true;
|
|
|
mtk_wed_set_ext_int(dev, false);
|
|
@@ -475,7 +475,7 @@ Signed-off-by: Paolo Abeni <[email protected]>
|
|
|
wed_w32(dev, MTK_WED_TX_BM_DYN_THR,
|
|
|
FIELD_PREP(MTK_WED_TX_BM_DYN_THR_LO_V2, 0) |
|
|
|
MTK_WED_TX_BM_DYN_THR_HI_V2);
|
|
|
-@@ -974,9 +1051,6 @@ mtk_wed_hw_init(struct mtk_wed_device *d
|
|
|
+@@ -973,9 +1050,6 @@ mtk_wed_hw_init(struct mtk_wed_device *d
|
|
|
dev->tx_buf_ring.size / 128) |
|
|
|
FIELD_PREP(MTK_WED_TX_TKID_CTRL_RSV_GRP_NUM,
|
|
|
dev->tx_buf_ring.size / 128));
|
|
@@ -485,7 +485,7 @@ Signed-off-by: Paolo Abeni <[email protected]>
|
|
|
}
|
|
|
|
|
|
wed_w32(dev, dev->hw->soc->regmap.tx_bm_tkid,
|
|
|
-@@ -986,26 +1060,62 @@ mtk_wed_hw_init(struct mtk_wed_device *d
|
|
|
+@@ -985,26 +1059,62 @@ mtk_wed_hw_init(struct mtk_wed_device *d
|
|
|
|
|
|
mtk_wed_reset(dev, MTK_WED_RESET_TX_BM);
|
|
|
|
|
@@ -561,7 +561,7 @@ Signed-off-by: Paolo Abeni <[email protected]>
|
|
|
}
|
|
|
|
|
|
static void
|
|
|
-@@ -1303,6 +1413,24 @@ mtk_wed_wdma_tx_ring_setup(struct mtk_we
|
|
|
+@@ -1302,6 +1412,24 @@ mtk_wed_wdma_tx_ring_setup(struct mtk_we
|
|
|
dev->hw->soc->wdma_desc_size, true))
|
|
|
return -ENOMEM;
|
|
|
|
|
@@ -586,7 +586,7 @@ Signed-off-by: Paolo Abeni <[email protected]>
|
|
|
wdma_w32(dev, MTK_WDMA_RING_TX(idx) + MTK_WED_RING_OFS_BASE,
|
|
|
wdma->desc_phys);
|
|
|
wdma_w32(dev, MTK_WDMA_RING_TX(idx) + MTK_WED_RING_OFS_COUNT,
|
|
|
-@@ -1368,6 +1496,9 @@ mtk_wed_configure_irq(struct mtk_wed_dev
|
|
|
+@@ -1367,6 +1495,9 @@ mtk_wed_configure_irq(struct mtk_wed_dev
|
|
|
|
|
|
wed_clr(dev, MTK_WED_WDMA_INT_CTRL, wdma_mask);
|
|
|
} else {
|
|
@@ -596,7 +596,7 @@ Signed-off-by: Paolo Abeni <[email protected]>
|
|
|
/* initail tx interrupt trigger */
|
|
|
wed_w32(dev, MTK_WED_WPDMA_INT_CTRL_TX,
|
|
|
MTK_WED_WPDMA_INT_CTRL_TX0_DONE_EN |
|
|
|
-@@ -1420,33 +1551,60 @@ mtk_wed_dma_enable(struct mtk_wed_device
|
|
|
+@@ -1419,33 +1550,60 @@ mtk_wed_dma_enable(struct mtk_wed_device
|
|
|
{
|
|
|
int i;
|
|
|
|
|
@@ -668,7 +668,7 @@ Signed-off-by: Paolo Abeni <[email protected]>
|
|
|
wed_clr(dev, MTK_WED_WPDMA_GLO_CFG,
|
|
|
MTK_WED_WPDMA_GLO_CFG_TX_TKID_KEEP |
|
|
|
MTK_WED_WPDMA_GLO_CFG_TX_DMAD_DW3_PREV);
|
|
|
-@@ -1458,11 +1616,22 @@ mtk_wed_dma_enable(struct mtk_wed_device
|
|
|
+@@ -1457,11 +1615,22 @@ mtk_wed_dma_enable(struct mtk_wed_device
|
|
|
MTK_WED_WDMA_GLO_CFG_TX_DRV_EN |
|
|
|
MTK_WED_WDMA_GLO_CFG_TX_DDONE_CHK);
|
|
|
|
|
@@ -693,7 +693,7 @@ Signed-off-by: Paolo Abeni <[email protected]>
|
|
|
|
|
|
for (i = 0; i < MTK_WED_RX_QUEUES; i++)
|
|
|
mtk_wed_check_wfdma_rx_fill(dev, i);
|
|
|
-@@ -1502,6 +1671,12 @@ mtk_wed_start(struct mtk_wed_device *dev
|
|
|
+@@ -1501,6 +1670,12 @@ mtk_wed_start(struct mtk_wed_device *dev
|
|
|
wed_r32(dev, MTK_WED_EXT_INT_MASK1);
|
|
|
wed_r32(dev, MTK_WED_EXT_INT_MASK2);
|
|
|
|
|
@@ -706,7 +706,7 @@ Signed-off-by: Paolo Abeni <[email protected]>
|
|
|
if (mtk_wed_rro_cfg(dev))
|
|
|
return;
|
|
|
}
|
|
|
-@@ -1553,6 +1728,7 @@ mtk_wed_attach(struct mtk_wed_device *de
|
|
|
+@@ -1552,6 +1727,7 @@ mtk_wed_attach(struct mtk_wed_device *de
|
|
|
dev->irq = hw->irq;
|
|
|
dev->wdma_idx = hw->index;
|
|
|
dev->version = hw->version;
|
|
@@ -714,7 +714,7 @@ Signed-off-by: Paolo Abeni <[email protected]>
|
|
|
|
|
|
if (hw->eth->dma_dev == hw->eth->dev &&
|
|
|
of_dma_is_coherent(hw->eth->dev->of_node))
|
|
|
-@@ -1620,6 +1796,23 @@ mtk_wed_tx_ring_setup(struct mtk_wed_dev
|
|
|
+@@ -1619,6 +1795,23 @@ mtk_wed_tx_ring_setup(struct mtk_wed_dev
|
|
|
ring->reg_base = MTK_WED_RING_TX(idx);
|
|
|
ring->wpdma = regs;
|
|
|
|
|
@@ -738,7 +738,7 @@ Signed-off-by: Paolo Abeni <[email protected]>
|
|
|
/* WED -> WPDMA */
|
|
|
wpdma_tx_w32(dev, idx, MTK_WED_RING_OFS_BASE, ring->desc_phys);
|
|
|
wpdma_tx_w32(dev, idx, MTK_WED_RING_OFS_COUNT, MTK_WED_TX_RING_SIZE);
|
|
|
-@@ -1694,15 +1887,13 @@ mtk_wed_rx_ring_setup(struct mtk_wed_dev
|
|
|
+@@ -1693,15 +1886,13 @@ mtk_wed_rx_ring_setup(struct mtk_wed_dev
|
|
|
static u32
|
|
|
mtk_wed_irq_get(struct mtk_wed_device *dev, u32 mask)
|
|
|
{
|
|
@@ -759,7 +759,7 @@ Signed-off-by: Paolo Abeni <[email protected]>
|
|
|
|
|
|
val = wed_r32(dev, MTK_WED_EXT_INT_STATUS);
|
|
|
wed_w32(dev, MTK_WED_EXT_INT_STATUS, val);
|
|
|
-@@ -1943,6 +2134,9 @@ void mtk_wed_add_hw(struct device_node *
|
|
|
+@@ -1939,6 +2130,9 @@ void mtk_wed_add_hw(struct device_node *
|
|
|
case 2:
|
|
|
hw->soc = &mt7986_data;
|
|
|
break;
|