mirror of
https://git.openwrt.org/openwrt/openwrt.git
synced 2024-05-19 14:06:29 +02:00
fb2c6e9d4d
Removed because they are upstream: generic/backport-5.15/704-15-v5.19-net-mtk_eth_soc-move-MAC_MCR-setting-to-mac_finish.patch https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=linux-5.15.y&id=c5c0760adc260d55265c086b9efb350ea6dda38b generic/pending-5.15/735-net-mediatek-mtk_eth_soc-release-MAC_MCR_FORCE_LINK-.patch https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=linux-5.15.y&id=448cc8b5f743985f6d1d98aa4efb386fef4c3bf2 generic/pending-5.15/736-net-ethernet-mtk_eth_soc-fix-PPE-hanging-issue.patch https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=linux-5.15.y&id=9fcadd125044007351905d40c405fadc2d3bb6d6 Add new configuration symbols for tegra target. Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
128 lines
4.2 KiB
Diff
128 lines
4.2 KiB
Diff
From patchwork Thu Sep 8 19:33:38 2022
|
|
Content-Type: text/plain; charset="utf-8"
|
|
MIME-Version: 1.0
|
|
Content-Transfer-Encoding: 7bit
|
|
X-Patchwork-Submitter: Lorenzo Bianconi <lorenzo@kernel.org>
|
|
X-Patchwork-Id: 12970556
|
|
X-Patchwork-Delegate: kuba@kernel.org
|
|
From: Lorenzo Bianconi <lorenzo@kernel.org>
|
|
To: netdev@vger.kernel.org
|
|
Cc: nbd@nbd.name, john@phrozen.org, sean.wang@mediatek.com,
|
|
Mark-MC.Lee@mediatek.com, davem@davemloft.net, edumazet@google.com,
|
|
kuba@kernel.org, pabeni@redhat.com, matthias.bgg@gmail.com,
|
|
linux-mediatek@lists.infradead.org, lorenzo.bianconi@redhat.com,
|
|
Bo.Jiao@mediatek.com, sujuan.chen@mediatek.com,
|
|
ryder.Lee@mediatek.com, evelyn.tsai@mediatek.com,
|
|
devicetree@vger.kernel.org, robh@kernel.org
|
|
Subject: [PATCH net-next 03/12] net: ethernet: mtk_eth_soc: move gdma_to_ppe
|
|
and ppe_base definitions in mtk register map
|
|
Date: Thu, 8 Sep 2022 21:33:37 +0200
|
|
Message-Id:
|
|
<95938fc9cbe0223714be2658a49ca58e9baace00.1662661555.git.lorenzo@kernel.org>
|
|
X-Mailer: git-send-email 2.37.3
|
|
In-Reply-To: <cover.1662661555.git.lorenzo@kernel.org>
|
|
References: <cover.1662661555.git.lorenzo@kernel.org>
|
|
MIME-Version: 1.0
|
|
Precedence: bulk
|
|
List-ID: <netdev.vger.kernel.org>
|
|
X-Mailing-List: netdev@vger.kernel.org
|
|
X-Patchwork-Delegate: kuba@kernel.org
|
|
|
|
This is a preliminary patch to introduce mt7986 hw packet engine.
|
|
|
|
Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
|
|
---
|
|
drivers/net/ethernet/mediatek/mtk_eth_soc.c | 15 +++++++++++----
|
|
drivers/net/ethernet/mediatek/mtk_eth_soc.h | 3 ++-
|
|
drivers/net/ethernet/mediatek/mtk_ppe.h | 2 --
|
|
3 files changed, 13 insertions(+), 7 deletions(-)
|
|
|
|
--- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
|
|
+++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
|
|
@@ -73,6 +73,8 @@ static const struct mtk_reg_map mtk_reg_
|
|
.fq_blen = 0x1b2c,
|
|
},
|
|
.gdm1_cnt = 0x2400,
|
|
+ .gdma_to_ppe0 = 0x4444,
|
|
+ .ppe_base = 0x0c00,
|
|
};
|
|
|
|
static const struct mtk_reg_map mt7628_reg_map = {
|
|
@@ -126,6 +128,8 @@ static const struct mtk_reg_map mt7986_r
|
|
.fq_blen = 0x472c,
|
|
},
|
|
.gdm1_cnt = 0x1c00,
|
|
+ .gdma_to_ppe0 = 0x3333,
|
|
+ .ppe_base = 0x2000,
|
|
};
|
|
|
|
/* strings used by ethtool */
|
|
@@ -2927,6 +2931,7 @@ static int mtk_open(struct net_device *d
|
|
|
|
/* we run 2 netdevs on the same dma ring so we only bring it up once */
|
|
if (!refcount_read(ð->dma_refcnt)) {
|
|
+ const struct mtk_soc_data *soc = eth->soc;
|
|
u32 gdm_config = MTK_GDMA_TO_PDMA;
|
|
int err;
|
|
|
|
@@ -2936,15 +2941,15 @@ static int mtk_open(struct net_device *d
|
|
return err;
|
|
}
|
|
|
|
- if (eth->soc->offload_version && mtk_ppe_start(eth->ppe) == 0)
|
|
- gdm_config = MTK_GDMA_TO_PPE;
|
|
+ if (soc->offload_version && mtk_ppe_start(eth->ppe) == 0)
|
|
+ gdm_config = soc->reg_map->gdma_to_ppe0;
|
|
|
|
mtk_gdm_config(eth, gdm_config);
|
|
|
|
napi_enable(ð->tx_napi);
|
|
napi_enable(ð->rx_napi);
|
|
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(ð->dma_refcnt, 1);
|
|
}
|
|
else
|
|
@@ -4043,7 +4048,9 @@ static int mtk_probe(struct platform_dev
|
|
}
|
|
|
|
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) {
|
|
err = -ENOMEM;
|
|
goto err_free_dev;
|
|
--- a/drivers/net/ethernet/mediatek/mtk_eth_soc.h
|
|
+++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.h
|
|
@@ -105,7 +105,6 @@
|
|
#define MTK_GDMA_TCS_EN BIT(21)
|
|
#define MTK_GDMA_UCS_EN BIT(20)
|
|
#define MTK_GDMA_TO_PDMA 0x0
|
|
-#define MTK_GDMA_TO_PPE 0x4444
|
|
#define MTK_GDMA_DROP_ALL 0x7777
|
|
|
|
/* Unicast Filter MAC Address Register - Low */
|
|
@@ -953,6 +952,8 @@ struct mtk_reg_map {
|
|
u32 fq_blen; /* fq free page buffer length */
|
|
} qdma;
|
|
u32 gdm1_cnt;
|
|
+ u32 gdma_to_ppe0;
|
|
+ u32 ppe_base;
|
|
};
|
|
|
|
/* struct mtk_eth_data - This is the structure holding all differences
|
|
--- a/drivers/net/ethernet/mediatek/mtk_ppe.h
|
|
+++ b/drivers/net/ethernet/mediatek/mtk_ppe.h
|
|
@@ -8,8 +8,6 @@
|
|
#include <linux/bitfield.h>
|
|
#include <linux/rhashtable.h>
|
|
|
|
-#define MTK_ETH_PPE_BASE 0xc00
|
|
-
|
|
#define MTK_PPE_ENTRIES_SHIFT 3
|
|
#define MTK_PPE_ENTRIES (1024 << MTK_PPE_ENTRIES_SHIFT)
|
|
#define MTK_PPE_HASH_MASK (MTK_PPE_ENTRIES - 1)
|