Commit 329bce51 authored by Lorenzo Bianconi's avatar Lorenzo Bianconi Committed by Paolo Abeni

net: ethernet: mtk_eth_soc: move gdma_to_ppe and ppe_base definitions in mtk register map

This is a preliminary patch to introduce mt7986 hw packet engine.
Tested-by: default avatarDaniel Golle <daniel@makrotopia.org>
Signed-off-by: default avatarLorenzo Bianconi <lorenzo@kernel.org>
Signed-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
parent 22ecfce1
...@@ -73,6 +73,8 @@ static const struct mtk_reg_map mtk_reg_map = { ...@@ -73,6 +73,8 @@ static const struct mtk_reg_map mtk_reg_map = {
.fq_blen = 0x1b2c, .fq_blen = 0x1b2c,
}, },
.gdm1_cnt = 0x2400, .gdm1_cnt = 0x2400,
.gdma_to_ppe = 0x4444,
.ppe_base = 0x0c00,
}; };
static const struct mtk_reg_map mt7628_reg_map = { static const struct mtk_reg_map mt7628_reg_map = {
...@@ -126,6 +128,8 @@ static const struct mtk_reg_map mt7986_reg_map = { ...@@ -126,6 +128,8 @@ static const struct mtk_reg_map mt7986_reg_map = {
.fq_blen = 0x472c, .fq_blen = 0x472c,
}, },
.gdm1_cnt = 0x1c00, .gdm1_cnt = 0x1c00,
.gdma_to_ppe = 0x3333,
.ppe_base = 0x2000,
}; };
/* strings used by ethtool */ /* strings used by ethtool */
...@@ -2978,21 +2982,22 @@ static int mtk_open(struct net_device *dev) ...@@ -2978,21 +2982,22 @@ static int mtk_open(struct net_device *dev)
/* we run 2 netdevs on the same dma ring so we only bring it up once */ /* we run 2 netdevs on the same dma ring so we only bring it up once */
if (!refcount_read(&eth->dma_refcnt)) { if (!refcount_read(&eth->dma_refcnt)) {
const struct mtk_soc_data *soc = eth->soc;
u32 gdm_config = MTK_GDMA_TO_PDMA; u32 gdm_config = MTK_GDMA_TO_PDMA;
err = mtk_start_dma(eth); err = mtk_start_dma(eth);
if (err) if (err)
return err; return err;
if (eth->soc->offload_version && mtk_ppe_start(eth->ppe) == 0) if (soc->offload_version && mtk_ppe_start(eth->ppe) == 0)
gdm_config = MTK_GDMA_TO_PPE; gdm_config = soc->reg_map->gdma_to_ppe;
mtk_gdm_config(eth, gdm_config); mtk_gdm_config(eth, gdm_config);
napi_enable(&eth->tx_napi); napi_enable(&eth->tx_napi);
napi_enable(&eth->rx_napi); napi_enable(&eth->rx_napi);
mtk_tx_irq_enable(eth, MTK_TX_DONE_INT); mtk_tx_irq_enable(eth, MTK_TX_DONE_INT);
mtk_rx_irq_enable(eth, eth->soc->txrx.rx_irq_done_mask); mtk_rx_irq_enable(eth, soc->txrx.rx_irq_done_mask);
refcount_set(&eth->dma_refcnt, 1); refcount_set(&eth->dma_refcnt, 1);
} }
else else
...@@ -4098,7 +4103,9 @@ static int mtk_probe(struct platform_device *pdev) ...@@ -4098,7 +4103,9 @@ static int mtk_probe(struct platform_device *pdev)
} }
if (eth->soc->offload_version) { if (eth->soc->offload_version) {
eth->ppe = mtk_ppe_init(eth, eth->base + MTK_ETH_PPE_BASE, 2); u32 ppe_addr = eth->soc->reg_map->ppe_base;
eth->ppe = mtk_ppe_init(eth, eth->base + ppe_addr, 2);
if (!eth->ppe) { if (!eth->ppe) {
err = -ENOMEM; err = -ENOMEM;
goto err_free_dev; goto err_free_dev;
......
...@@ -105,7 +105,6 @@ ...@@ -105,7 +105,6 @@
#define MTK_GDMA_TCS_EN BIT(21) #define MTK_GDMA_TCS_EN BIT(21)
#define MTK_GDMA_UCS_EN BIT(20) #define MTK_GDMA_UCS_EN BIT(20)
#define MTK_GDMA_TO_PDMA 0x0 #define MTK_GDMA_TO_PDMA 0x0
#define MTK_GDMA_TO_PPE 0x4444
#define MTK_GDMA_DROP_ALL 0x7777 #define MTK_GDMA_DROP_ALL 0x7777
/* Unicast Filter MAC Address Register - Low */ /* Unicast Filter MAC Address Register - Low */
...@@ -955,6 +954,8 @@ struct mtk_reg_map { ...@@ -955,6 +954,8 @@ struct mtk_reg_map {
u32 fq_blen; /* fq free page buffer length */ u32 fq_blen; /* fq free page buffer length */
} qdma; } qdma;
u32 gdm1_cnt; u32 gdm1_cnt;
u32 gdma_to_ppe;
u32 ppe_base;
}; };
/* struct mtk_eth_data - This is the structure holding all differences /* struct mtk_eth_data - This is the structure holding all differences
......
...@@ -8,8 +8,6 @@ ...@@ -8,8 +8,6 @@
#include <linux/bitfield.h> #include <linux/bitfield.h>
#include <linux/rhashtable.h> #include <linux/rhashtable.h>
#define MTK_ETH_PPE_BASE 0xc00
#define MTK_PPE_ENTRIES_SHIFT 3 #define MTK_PPE_ENTRIES_SHIFT 3
#define MTK_PPE_ENTRIES (1024 << MTK_PPE_ENTRIES_SHIFT) #define MTK_PPE_ENTRIES (1024 << MTK_PPE_ENTRIES_SHIFT)
#define MTK_PPE_HASH_MASK (MTK_PPE_ENTRIES - 1) #define MTK_PPE_HASH_MASK (MTK_PPE_ENTRIES - 1)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment